| 
    rippled
    
   | 
 
Remembers manifests with the highest sequence number. More...
#include <Manifest.h>

Public Member Functions | |
| ManifestCache (beast::Journal j=beast::Journal(beast::Journal::getNullSink())) | |
| std::uint32_t | sequence () const | 
| A monotonically increasing number used to detect new manifests.   | |
| std::optional< PublicKey > | getSigningKey (PublicKey const &pk) const | 
| Returns master key's current signing key.   | |
| PublicKey | getMasterKey (PublicKey const &pk) const | 
| Returns ephemeral signing key's master public key.   | |
| std::optional< std::uint32_t > | getSequence (PublicKey const &pk) const | 
| Returns master key's current manifest sequence.   | |
| std::optional< std::string > | getDomain (PublicKey const &pk) const | 
| Returns domain claimed by a given public key.   | |
| std::optional< std::string > | getManifest (PublicKey const &pk) const | 
| Returns mainfest corresponding to a given public key.   | |
| bool | revoked (PublicKey const &pk) const | 
Returns true if master key has been revoked in a manifest.   | |
| ManifestDisposition | applyManifest (Manifest m) | 
| Add manifest to cache.   | |
| bool | load (DatabaseCon &dbCon, std::string const &dbTable, std::string const &configManifest, std::vector< std::string > const &configRevocation) | 
| Populate manifest cache with manifests in database and config.   | |
| void | load (DatabaseCon &dbCon, std::string const &dbTable) | 
| Populate manifest cache with manifests in database.   | |
| void | save (DatabaseCon &dbCon, std::string const &dbTable, std::function< bool(PublicKey const &)> const &isTrusted) | 
| Save cached manifests to database.   | |
| template<class Function > | |
| void | for_each_manifest (Function &&f) const | 
| Invokes the callback once for every populated manifest.   | |
| template<class PreFun , class EachFun > | |
| void | for_each_manifest (PreFun &&pf, EachFun &&f) const | 
| Invokes the callback once for every populated manifest.   | |
Private Attributes | |
| beast::Journal | j_ | 
| std::shared_mutex | mutex_ | 
| hash_map< PublicKey, Manifest > | map_ | 
| Active manifests stored by master public key.   | |
| hash_map< PublicKey, PublicKey > | signingToMasterKeys_ | 
| Master public keys stored by current ephemeral public key.   | |
| std::atomic< std::uint32_t > | seq_ {0} | 
Remembers manifests with the highest sequence number.
Definition at line 255 of file Manifest.h.
      
  | 
  explicit | 
Definition at line 270 of file Manifest.h.
| std::uint32_t ripple::ManifestCache::sequence | ( | ) | const | 
A monotonically increasing number used to detect new manifests.
Definition at line 278 of file Manifest.h.
| std::optional< PublicKey > ripple::ManifestCache::getSigningKey | ( | PublicKey const & | pk | ) | const | 
Returns master key's current signing key.
| pk | Master public key | 
May be called concurrently
Definition at line 311 of file Manifest.cpp.
Returns ephemeral signing key's master public key.
| pk | Ephemeral signing public key | 
May be called concurrently
Definition at line 323 of file Manifest.cpp.
| std::optional< std::uint32_t > ripple::ManifestCache::getSequence | ( | PublicKey const & | pk | ) | const | 
Returns master key's current manifest sequence.
Definition at line 335 of file Manifest.cpp.
| std::optional< std::string > ripple::ManifestCache::getDomain | ( | PublicKey const & | pk | ) | const | 
Returns domain claimed by a given public key.
Definition at line 347 of file Manifest.cpp.
| std::optional< std::string > ripple::ManifestCache::getManifest | ( | PublicKey const & | pk | ) | const | 
Returns mainfest corresponding to a given public key.
Definition at line 359 of file Manifest.cpp.
| bool ripple::ManifestCache::revoked | ( | PublicKey const & | pk | ) | const | 
Returns true if master key has been revoked in a manifest. 
| pk | Master public key | 
May be called concurrently
Definition at line 371 of file Manifest.cpp.
| ManifestDisposition ripple::ManifestCache::applyManifest | ( | Manifest | m | ) | 
Add manifest to cache.
| m | Manifest to add | 
ManifestDisposition::accepted if successful, or stale or invalid otherwiseMay be called concurrently
Definition at line 383 of file Manifest.cpp.
| bool ripple::ManifestCache::load | ( | DatabaseCon & | dbCon, | 
| std::string const & | dbTable, | ||
| std::string const & | configManifest, | ||
| std::vector< std::string > const & | configRevocation | ||
| ) | 
Populate manifest cache with manifests in database and config.
| dbCon | Database connection with dbTable | 
| dbTable | Database table | 
| configManifest | Base64 encoded manifest for local node's validator keys | 
| configRevocation | Base64 encoded validator key revocation from the config | 
May be called concurrently
Definition at line 551 of file Manifest.cpp.
| void ripple::ManifestCache::load | ( | DatabaseCon & | dbCon, | 
| std::string const & | dbTable | ||
| ) | 
Populate manifest cache with manifests in database.
| dbCon | Database connection with dbTable | 
| dbTable | Database table | 
May be called concurrently
Definition at line 544 of file Manifest.cpp.
| void ripple::ManifestCache::save | ( | DatabaseCon & | dbCon, | 
| std::string const & | dbTable, | ||
| std::function< bool(PublicKey const &)> const & | isTrusted | ||
| ) | 
Save cached manifests to database.
| dbCon | Database connection with ValidatorManifests table | 
| isTrusted | Function that returns true if manifest is trusted | 
May be called concurrently
Definition at line 608 of file Manifest.cpp.
| void ripple::ManifestCache::for_each_manifest | ( | Function && | f | ) | const | 
Invokes the callback once for every populated manifest.
| f | Function called for each manifest | 
May be called concurrently
Definition at line 425 of file Manifest.h.
| void ripple::ManifestCache::for_each_manifest | ( | PreFun && | pf, | 
| EachFun && | f | ||
| ) | const | 
Invokes the callback once for every populated manifest.
| pf | Pre-function called with the maximum number of times f will be called (useful for memory allocations) | 
| f | Function called for each manifest | 
May be called concurrently
Definition at line 453 of file Manifest.h.
      
  | 
  private | 
Definition at line 258 of file Manifest.h.
      
  | 
  mutableprivate | 
Definition at line 259 of file Manifest.h.
Active manifests stored by master public key.
Definition at line 262 of file Manifest.h.
Master public keys stored by current ephemeral public key.
Definition at line 265 of file Manifest.h.
      
  | 
  private | 
Definition at line 267 of file Manifest.h.