| AnyConnect Secure Mobility Client 5.0.05040

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

# include/PreferenceBase.h

    00001 /**************************************************************************
    00002 *   Copyright (c) 2008, 2021-2022 Cisco Systems, Inc.
    00003 *   All Rights Reserved. Cisco Highly Confidential.
    00004 ***************************************************************************
    00005 *
    00006 *   File:    PreferenceBase.h
    00007 *   Date:    7/2008
    00008 *
    00009 ***************************************************************************
    00010 *   Preferences Base class declaration for the Client API.
    00011 ***************************************************************************/
    00012
    00013 #ifndef _PREFERENCEBASE_
    00014 #define _PREFERENCEBASE_
    00015
    00016 #include "api.h"
    00017 #include <list>
    00018 #include <vector>
    00019 #include "PromptEntry.h"
    00020
    00021 class Preference;
    00022 struct DEFAULT_PREFERENCE;
    00023
    00024 enum PreferenceAttribute
    00025 {
    00026     Available,
    00027     UserControllable,
    00028     UserControlAllowed,
    00029     PostAuthVerification,
    00030     UnknownAttribute
    00031 };
    00032
    00033 #define PREFERENCE_COUNT UnknownPreference
    00034 #define ATTRIBUTE_COUNT UnknownAttribute
    00035
    00036 typedef std::list<Preference*> PreferenceList;
    00037
    00038 class VPN_VPNAPI PreferenceBase
    00039 {
    00040
    00041 protected:
    00042
    00043     PreferenceBase(PreferenceId preferenceId,
    00044                    const tstring& label,
    00045                    PromptType prefType,
    00046                    const tstring& initialValue,
    00047                    ApiStringMap* pOptions = NULL,
    00048                    Preference* pParent = NULL);
    00049
    00050 public:
    00051
    00052     const PreferenceId& getPreferenceId() const;
    00053     PreferenceScope getPreferenceScope() const;
    00054
    00055     const tstring& getPreferenceValue() const;
    00056     bool setPreferenceValue(const tstring& value);
    00057
    00058     bool getPreferenceAttribute(const PreferenceAttribute& attribute);
    00059     void setPreferenceAttribute(const PreferenceAttribute& attribute, bool value);
    00060
    00061     const PreferenceList& getChildren() const;
    00062
    00063     void addChildPreference(Preference* pPref);
    00064     void removeChildPreference(Preference* pPref);
    00065
    00066     PromptEntry* getPromptEntry() const;
    00067
    00068     static Preference* createPreferenceFromId(PreferenceId prefId);
    00069
    00070     static tstring getPreferenceNameFromId(PreferenceId prefId);
    00071     static PreferenceId getPreferenceIdFromName(const tstring& name);
    00072     static PreferenceAttribute getAttributeIdFromName(const tstring& attributeName);
    00073     static tstring getAttributeNameFromId(const PreferenceAttribute attrId);
    00074     static PreferenceId getParentId(const PreferenceId prefId);
    00075     static PreferenceScope getPreferenceScopeFromId(PreferenceId prefId);
    00076     static tstring getDefaultValue(PreferenceId prefId);
    00077     static bool getDefaultAttribute(PreferenceId prefId,
    00078                                     PreferenceAttribute attribute);
    00079     static bool isParentPreference(const PreferenceId prefId);
    00080     static bool isPreferenceDefined(const PreferenceId prefId);
    00081     static bool isValidPreference(const PreferenceId prefId);
    00082
    00083     /*
    00084     * Deep Copy Assignment Operator
    00085     */
    00086     PreferenceBase& operator=(const PreferenceBase& existingPref)
    00087     {
    00088         return deepCopy(existingPref);
    00089     }
    00090     /*
    00091     * Deep Copy Constructor
    00092     */
    00093     explicit PreferenceBase(const PreferenceBase& existingPref)
    00094     {
    00095         deepCopy(existingPref);
    00096     }
    00097     virtual ~PreferenceBase();
    00098
    00099     static const tstring PreferenceEnabled;
    00100     static const tstring PreferenceDisabled;
    00101
    00102     static const tstring DisconnectOnSuspend;
    00103     static const tstring ReconnectAfterResume;
    00104
    00105     static const tstring AllStores;
    00106     static const tstring MachineStore;
    00107     static const tstring UserStore;
    00108     static const tstring SystemStore;
    00109     static const tstring LoginStore;
    00110     static const tstring UserFirefoxNSS;
    00111     static const tstring UserPEMFile;
    00112
    00113     static const tstring Automatic;
    00114     static const tstring SoftwareToken;
    00115     static const tstring HardwareToken;
    00116
    00117     static const tstring SingleLogon;
    00118     static const tstring SingleLocalLogon;
    00119     static const tstring SingleLogonNoRemote;
    00120
    00121     static const tstring LocalUsersOnly;
    00122     static const tstring AllowRemoteUsers;
    00123
    00124     static const tstring ProxyNative;
    00125     static const tstring ProxyIgnoreProxy;
    00126     static const tstring ProxyOverride;
    00127
    00128     static const tstring PPPExclusionAutomatic;
    00129     static const tstring PPPExclusionDisable;
    00130     static const tstring PPPExclusionOverride;
    00131
    00132     static const tstring Connect;
    00133     static const tstring Pause;
    00134     static const tstring Disconnect;
    00135     static const tstring DoNothing;
    00136
    00137     static const tstring SameUserOnly;
    00138     static const tstring AnyUser;
    00139
    00140     static const tstring PasswordComplexityAlpha;
    00141     static const tstring PasswordComplexityPin;
    00142     static const tstring PasswordComplexityStrong;
    00143
    00144     static const tstring Open;
    00145     static const tstring Closed;
    00146
    00147     static const tstring IPv4;
    00148     static const tstring IPv6;
    00149     static const tstring IPv4_IPv6;
    00150     static const tstring IPv6_IPv4;
    00151
    00152 private:
    00153     PreferenceBase& deepCopy(const PreferenceBase& existingPref);
    00154
    00155     PreferenceId me_preferenceId;
    00156     PromptEntry* m_pPromptEntry;
    00157     PreferenceList m_childPreferences;
    00158     PreferenceScope me_preferenceScope;
    00159     bool mb_attributes[ATTRIBUTE_COUNT];
    00160
    00161     static const char* sm_attributeStrs[];
    00162     static const DEFAULT_PREFERENCE sm_defaultPreferences[];
    00163 };
    00164
    00165 #endif // _PREFERENCEBASE_