![]() |
AnyConnect Secure Mobility Client 4.4.00243
|
00001 /************************************************************************** 00002 * Copyright © 2008, Cisco Systems, All Rights Reserved 00003 *************************************************************************** 00004 * 00005 * File: Preference.h 00006 * Date: 7/2008 00007 * 00008 *************************************************************************** 00009 * 00010 * Preference class declaration for the Client API. 00011 * 00012 ***************************************************************************/ 00013 00014 #ifndef _PREFERENCE_ 00015 #define _PREFERENCE_ 00016 00017 /** 00018 * The Preference class represents a single preference setting that is read 00019 * from disk. Some preferences can be controlled by the user, as specified 00020 * by administrator policy. In these instances, the UI layer will represent 00021 * the controls/widgets used to modify a preference by rendering an associated 00022 * PromptEntry object, accessible via the getPromptEntry() method, similar to 00023 * the mechanism used to obtain user input in a ClientIfc::UserPromptCB call. 00024 */ 00025 00026 #include "PreferenceBase.h" 00027 00028 class VPN_VPNAPI Preference : public PreferenceBase 00029 { 00030 00031 public: 00032 00033 /** 00034 * Sets the value associated with this preference. Returns true on 00035 * success, false if the value is not in the range of allowed values 00036 * for this preference (e.g. setting a value of "fish" for a true/false 00037 * preference). 00038 */ 00039 bool setPreferenceValue(const tstring& value); 00040 00041 00042 /** 00043 * Returns the current value of this preference as returned by 00044 * PromptEntry::getTrueValue(). The values "true" and "false" are 00045 * returned for preferences represented by a checkbox. 00046 */ 00047 const tstring& getPreferenceValue() const; 00048 00049 00050 /** 00051 * Returns the ID of this Preference. For a complete list of preference 00052 * ID's see the ::PreferenceId enum in api.h. 00053 */ 00054 const PreferenceId& getPreferenceId() const; 00055 00056 00057 /** 00058 * Returns a reference to an internal list of child preferences for this 00059 * class. Callers may modify the value of the Preference objects contained 00060 * within, but should not alter the list or delete individual objects. 00061 */ 00062 const std::list<Preference*>& getChildren() const; 00063 00064 00065 /** 00066 * Returns a pointer to an internal PromptEntry used to modify the value 00067 * of this Preference. By checking the type of the PromptEntry, an 00068 * appropriate UI layer control/widget should be created that can be 00069 * used to update the value of the preference. The caller should not 00070 * delete the returned pointer. 00071 * 00072 * From the ::PromptType enum in api.h, Prompt_Combo and Prompt_Checkbox 00073 * are used by this class. 00074 * 00075 * @see PromptEntry 00076 */ 00077 PromptEntry* getPromptEntry() const; 00078 00079 00080 Preference(PreferenceId preferenceId, 00081 const tstring& label, 00082 PromptType prefType, 00083 const tstring& initialValue, 00084 ApiStringMap* pOptions = NULL, 00085 Preference* pParent = NULL); 00086 00087 }; 00088 00089 #endif // _PREFERENCE_