All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
pib-certificate-container.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
23 #ifndef NDN_PIB_CERTIFICATE_CONTAINER_HPP
24 #define NDN_PIB_CERTIFICATE_CONTAINER_HPP
25 
26 #include <set>
27 #include <map>
28 #include "../v2/certificate-v2.hpp"
29 
30 // Give friend access to the tests.
31 class TestPibCertificateContainer_Basic_Test;
32 class TestPibCertificateContainer_Errors_Test;
33 class TestKeyChain_Management_Test;
34 
35 namespace ndn {
36 
37 class PibImpl;
38 class PibKey;
39 
45 public:
50  size_t
51  size() const { return certificateNames_.size(); }
52 
60  void
61  add(const CertificateV2& certificate);
62 
70  void
71  remove(const Name& certificateName);
72 
81  ptr_lib::shared_ptr<CertificateV2>
82  get(const Name& certificateName);
83 
90  bool
91  isConsistent() const;
92 
93 private:
94  friend class PibKeyImpl;
95  // Give friend access to the tests.
96  friend TestPibCertificateContainer_Basic_Test;
97  friend TestPibCertificateContainer_Errors_Test;
98  friend TestKeyChain_Management_Test;
99 
107  (const Name& keyName, const ptr_lib::shared_ptr<PibImpl>& pibImpl);
108 
109  // Disable the copy constructor and assignment operator.
111  PibCertificateContainer& operator=(const PibCertificateContainer& other);
112 
113  Name keyName_;
114  std::set<Name> certificateNames_;
115  // Cache of loaded certificates.
116  std::map<Name, ptr_lib::shared_ptr<CertificateV2>> certificates_;
117 
118  ptr_lib::shared_ptr<PibImpl> pibImpl_;
119 };
120 
121 }
122 
123 #endif
A PibCertificateContainer is used to search/enumerate the certificates of a key.
Definition: pib-certificate-container.hpp:44
CertificateV2 represents a certificate following the certificate format naming convention.
Definition: certificate-v2.hpp:81
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:40
PibKeyImpl provides the backend implementation for PibKey.
Definition: pib-key-impl.hpp:39
size_t size() const
Get the number of certificates in the container.
Definition: pib-certificate-container.hpp:51
bool isConsistent() const
Check if the container is consistent with the backend storage.
Definition: pib-certificate-container.cpp:98
void add(const CertificateV2 &certificate)
Add certificate into the container.
Definition: pib-certificate-container.cpp:42