|
limal-ca-mgm
|
00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | _ _ _ _ __ _ | 00004 | | | | | | \_/ | / \ | | | 00005 | | | | | | |_| | / /\ \ | | | 00006 | | |__ | | | | | | / ____ \ | |__ | 00007 | |____||_| |_| |_|/ / \ \|____| | 00008 | | 00009 | ca-mgm library | 00010 | | 00011 | (C) SUSE Linux Products GmbH | 00012 \----------------------------------------------------------------------/ 00013 00014 File: ExtensionBase.hpp 00015 00016 Author: <Michael Calmer> <mc@suse.de> 00017 Maintainer: <Michael Calmer> <mc@suse.de> 00018 00019 Purpose: 00020 00021 /-*/ 00022 #ifndef LIMAL_CA_MGM_EXTENSION_BASE_HPP 00023 #define LIMAL_CA_MGM_EXTENSION_BASE_HPP 00024 00025 #include <limal/ca-mgm/config.h> 00026 #include <limal/ca-mgm/CommonData.hpp> 00027 #include <blocxx/COWIntrusiveReference.hpp> 00028 00029 namespace LIMAL_NAMESPACE { 00030 00031 namespace CA_MGM_NAMESPACE { 00032 00033 class CA; 00034 class ExtensionBaseImpl; 00035 00036 class ExtensionBase { 00037 00038 public: 00039 ExtensionBase(bool extPresent = false, bool extCritical = false); 00040 00041 ExtensionBase(const ExtensionBase& extension); 00042 00043 virtual ~ExtensionBase(); 00044 00045 #ifndef SWIG 00046 00047 ExtensionBase& operator=(const ExtensionBase& extension); 00048 00049 #endif 00050 00051 void setPresent(bool extPresent); 00052 void setCritical(bool extCritical); 00053 00054 bool isCritical() const; 00055 bool isPresent() const; 00056 00057 virtual void commit2Config(CA& ca, Type type) const = 0; 00058 00059 virtual bool valid() const =0; 00060 virtual blocxx::StringArray verify() const =0; 00061 00062 virtual blocxx::StringArray dump() const; 00063 00064 private: 00065 blocxx::COWIntrusiveReference<ExtensionBaseImpl> m_impl; 00066 }; 00067 00068 } 00069 } 00070 00071 #endif // LIMAL_CA_MGM_EXTENSION_BASE_HPP
1.7.5.1