limal-ca-mgm
SubjectAlternativeNameExtension.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:       SubjectAlternativeNameExtension.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_SUBJECT_ALTERNATIVE_NAME_EXTENSION_HPP
00023 #define    LIMAL_CA_MGM_SUBJECT_ALTERNATIVE_NAME_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  <limal/ca-mgm/LiteralValues.hpp>
00029 #include  <blocxx/COWIntrusiveReference.hpp>
00030 
00031 namespace LIMAL_NAMESPACE {
00032 
00033 namespace CA_MGM_NAMESPACE {
00034 
00035         class CA;
00036         class CAConfig;
00037         class SubjectAlternativeNameExtImpl;
00038         
00039         class SubjectAlternativeNameExt : public ExtensionBase {
00040         public:
00041                 SubjectAlternativeNameExt();
00042         
00043                 SubjectAlternativeNameExt(CAConfig* caConfig, Type type);
00044         
00045                 SubjectAlternativeNameExt(bool copyEmail,
00046                                           const blocxx::List<LiteralValue> &alternativeNameList = blocxx::List<LiteralValue>());
00047         
00048                 SubjectAlternativeNameExt(const SubjectAlternativeNameExt& extension);
00049                 
00050                 virtual ~SubjectAlternativeNameExt();
00051                 
00052 #ifndef SWIG
00053 
00054                 SubjectAlternativeNameExt&
00055                 operator=(const SubjectAlternativeNameExt& extension);
00056 
00057 #endif
00058                 
00059                 void
00060                 setCopyEmail(bool copyEmail);                                     
00061                 
00062                 void
00063                 setAlternativeNameList(const blocxx::List<LiteralValue> &alternativeNameList = blocxx::List<LiteralValue>());
00064                 
00065                 bool
00066                 getCopyEmail() const;
00067                 
00068                 blocxx::List<LiteralValue>
00069                 getAlternativeNameList() const;
00070                 
00071                 virtual void
00072                 commit2Config(CA& ca, Type type) const;
00073                 
00074                 virtual bool
00075                 valid() const;
00076                 
00077                 virtual blocxx::StringArray
00078                 verify() const;
00079                 
00080                 virtual blocxx::StringArray
00081                 dump() const;
00082                 
00083         private:
00084                 blocxx::COWIntrusiveReference<SubjectAlternativeNameExtImpl> m_impl;
00085         };
00086 
00087 }
00088 }
00089 
00090 #endif // LIMAL_CA_MGM_SUBJECT_ALTERNATIVE_NAME_EXTENSION_HPP