| AnyConnect Secure Mobility Client 5.1.2.42

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

# include/PreferenceInfoBase.h

    00001 /**************************************************************************
    00002 *   Copyright (c) 2008, 2022 Cisco Systems, Inc.
    00003 *   All Rights Reserved. Cisco Highly Confidential.
    00004 ***************************************************************************
    00005 *
    00006 *   File:   PreferenceInfoBase.h
    00007 *   Date:   07/2008
    00008 *
    00009 ***************************************************************************
    00010 *   Preference Info Base class declaration for the Client API.
    00011 ***************************************************************************/
    00012
    00013 // The PreferenceInfoBase class contains the majority of private methods and
    00014 // members. The purpose of this class is to hide all but the necessary methods
    00015 // from being exposed.
    00016 //
    00017
    00018 #ifndef _PREFERENCEINFOBASE_
    00019 #define _PREFERENCEINFOBASE_
    00020
    00021 #include "api.h"
    00022 #include <vector>
    00023 #include <list>
    00024 #include <map>
    00025
    00026 class Preference;
    00027 class PreferenceInfo;
    00028
    00029 typedef std::vector<Preference*> PreferenceVector;
    00030 typedef std::map<PreferenceId, unsigned int> PrefIdToPrefPositionMap;
    00031 typedef std::map<PreferenceId, Preference*> PrefIdToPrefPtrMap;
    00032
    00033 typedef std::pair<Preference *, unsigned int> PrefWithDepth;
    00034 typedef std::list<PrefWithDepth> PrefWithDepthList;
    00035
    00036
    00037 class VPN_VPNAPI PreferenceInfoBase
    00038 {
    00039 protected:
    00040
    00041     PreferenceInfoBase();
    00042
    00043 public:
    00044
    00045     PreferenceScope getPreferencesType() const;
    00046     void setPreferencesType(const PreferenceScope scope);
    00047
    00048     unsigned int countPreferences() const;
    00049
    00050     static PreferenceInfo* createDefaultPreferenceInfo();
    00051
    00052     const PreferenceVector& getListPreferences() const;
    00053
    00054     PreferenceVector getAllPreferences() const;
    00055
    00056     void getAllPreferencesSorted(OUT PrefWithDepthList &outSortedPrefs) const;
    00057
    00058     bool getPreference(const PreferenceId preferenceId,
    00059                         OUT Preference*& rpPreference) const;
    00060
    00061     bool addPreference(Preference* pPreference);
    00062     bool addNewPreference(const tstring& name,
    00063                             const tstring& value,
    00064                             ApiStringMap& attributes,
    00065                             const tstring& parent = EmptyString);
    00066     bool movePreference(Preference* pPreference, unsigned int& position);
    00067
    00068     bool removeAndDeletePreference(const PreferenceId& preferenceId, bool bDontRemoveFromParent = false);
    00069     void removeAllPreferences();
    00070
    00071     void setPreferenceHeading(const tstring& preferenceHeading);
    00072     const tstring getPreferenceHeading() const;
    00073
    00074     PreferenceInfoBase& operator=(const PreferenceInfoBase& existingPrefInfo)
    00075     {
    00076         return deepCopy(existingPrefInfo);
    00077     }
    00078     explicit PreferenceInfoBase(const PreferenceInfoBase& existingPrefInfo)
    00079     {
    00080         deepCopy(existingPrefInfo);
    00081     }
    00082     virtual ~PreferenceInfoBase();
    00083
    00084     tstring getString();
    00085
    00086 private:
    00087     PreferenceInfoBase& deepCopy(const PreferenceInfoBase& existingPrefInfo);
    00088
    00089     PreferenceVector m_ParentPrefPtrVector;
    00090     PrefIdToPrefPositionMap m_ParentPrefIdToPositionMap;
    00091     PrefIdToPrefPtrMap m_PrefIdToPrefPtrMap;
    00092     PreferenceScope m_PreferenceScope;
    00093     tstring m_preferenceHeading;
    00094
    00095     static tstring EmptyString;
    00096
    00097 };
    00098
    00099
    00100 #endif // _PREFERENCEINFOBASE_