limal-ca-mgm
BasicConstraintsExtension.hpp
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                     _     _   _   _     __     _                     |
00004 |                    | |   | | | \_/ |   /  \   | |                    |
00005 |                    | |   | | | |_| |  / /\ \  | |                    |
00006 |                    | |__ | | | | | | / ____ \ | |__                  |
00007 |                    |____||_| |_| |_|/ /    \ \|____|                 |
00008 |                                                                      |
00009 |                             ca-mgm library                           |
00010 |                                                                      |
00011 |                                         (C) SUSE Linux Products GmbH |
00012 \----------------------------------------------------------------------/
00013 
00014   File:       BasicConstraintsExtension.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_BASIC_CONSTRAINTS_EXTENSION_HPP
00023 #define    LIMAL_CA_MGM_BASIC_CONSTRAINTS_EXTENSION_HPP
00024 
00025 #include  <limal/ca-mgm/config.h>
00026 #include  <limal/ca-mgm/CommonData.hpp>
00027 #include  <limal/ca-mgm/ExtensionBase.hpp>
00028 #include  <blocxx/COWIntrusiveReference.hpp>
00029 
00030 namespace LIMAL_NAMESPACE {
00031 
00032 namespace CA_MGM_NAMESPACE {
00033 
00034         class CA;
00035         class CAConfig;
00036         class BasicConstraintsExtImpl;
00037         
00044         class BasicConstraintsExt : public ExtensionBase
00045         {
00046         public:
00047                 BasicConstraintsExt();
00048                 BasicConstraintsExt(CAConfig* caConfig, Type type);
00049                 BasicConstraintsExt(bool isCa, blocxx::Int32 pathLength=-1);
00050                 BasicConstraintsExt(const BasicConstraintsExt& extension);
00051                 virtual ~BasicConstraintsExt();
00052 
00053 #ifndef SWIG
00054 
00055                 BasicConstraintsExt& operator=(const BasicConstraintsExt& extension);
00056 
00057 #endif
00058                 
00066                 void           setBasicConstraints(bool isCa, blocxx::Int32 pathLength=-1);
00067 
00071                 bool           isCA() const;
00072 
00076                 blocxx::Int32  getPathLength() const;
00077 
00084                 virtual void commit2Config(CA& ca, Type type) const;
00085 
00091                 virtual bool                 valid() const;  
00092 
00100                 virtual blocxx::StringArray  verify() const; 
00101 
00105                 virtual blocxx::StringArray  dump() const;
00106 
00107         private:
00108                 blocxx::COWIntrusiveReference<BasicConstraintsExtImpl> m_impl;
00109 
00110         };
00111 
00112 }
00113 }
00114 
00115 #endif // LIMAL_CA_MGM_BASIC_CONSTRAINTS_EXTENSION_HPP