Derecho  0.9
Distributed systems toolkit for RDMA
Classes | Namespaces | Macros | Typedefs | Functions
Persistent.hpp File Reference
#include "detail/FilePersistLog.hpp"
#include "HLC.hpp"
#include "PersistException.hpp"
#include "detail/PersistLog.hpp"
#include "PersistNoLog.hpp"
#include "PersistentTypenames.hpp"
#include <derecho/mutils-serialization/SerializationSupport.hpp>
#include <functional>
#include <inttypes.h>
#include <iostream>
#include <map>
#include <memory>
#include <pthread.h>
#include <string>
#include <sys/types.h>
#include <time.h>
#include <typeindex>
#include <derecho/utils/logger.hpp>
#include "detail/Persistent_impl.hpp"
Include dependency graph for Persistent.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  persistent::ITemporalQueryFrontierProvider
 
class  persistent::PersistentRegistry
 PersistentRegistry is a book for all the Persistent<T> or Volatile<T> variables. More...
 
class  persistent::IDeltaObjectFactory< DeltaObjectType >
 
class  persistent::IDeltaSupport< ObjectType >
 
class  persistent::_NameMaker< ObjectType, storageType >
 
class  persistent::Persistent< ObjectType, storageType >
 
class  persistent::Volatile< ObjectType >
 

Namespaces

 persistent
 This file include all common types internal to derecho and not necessarily being known by a client program.
 

Macros

#define PERSISTENT_HPP
 
#define DEFINE_PERSIST_VAR(_t, _n, _s)   Persistent<_t, _s> _n(#_n)
 
#define DECLARE_PERSIST_VAR(_t, _n, _s)   extern DEFINE_PERSIST_VAR(_t, _n, _s)
 

Typedefs

using persistent::DeltaFinalizer = std::function< void(char const *const, std::size_t)>
 

Functions

template<typename int_type >
version_t persistent::combine_int32s (const int_type high_bits, const int_type low_bits)
 Helper function for creating Persistent version numbers out of MulticastGroup sequence numbers and View IDs. More...
 
template<typename int_type >
std::pair< int_type, int_type > persistent::unpack_version (const version_t packed_int)
 Helper function for unpacking a Persistent version number into two signed or unsigned int32 values. More...
 
template<typename ObjectType , StorageType storageType>
void persistent::saveObject (ObjectType &obj, const char *object_name=nullptr) noexcept(false)
 saveObject() saves a serializable object More...
 
template<typename ObjectType , StorageType storageType>
std::unique_ptr< ObjectType > persistent::loadObject (const char *object_name=nullptr) noexcept(false)
 loadObject() loads a serializable object from a persistent store More...
 
template<StorageType storageType>
const std::enable_if<(storageType==ST_FILE||storageType==ST_MEM), version_t >::type persistent::getMinimumLatestPersistedVersion (const std::type_index &subgroup_type, uint32_t subgroup_index, uint32_t shard_num)
 get the minmum latest persisted version for a Replicated<T> identified by More...
 

Macro Definition Documentation

◆ DECLARE_PERSIST_VAR

#define DECLARE_PERSIST_VAR (   _t,
  _n,
  _s 
)    extern DEFINE_PERSIST_VAR(_t, _n, _s)

Definition at line 39 of file Persistent.hpp.

◆ DEFINE_PERSIST_VAR

#define DEFINE_PERSIST_VAR (   _t,
  _n,
  _s 
)    Persistent<_t, _s> _n(#_n)

Definition at line 37 of file Persistent.hpp.

◆ PERSISTENT_HPP

#define PERSISTENT_HPP

Definition at line 3 of file Persistent.hpp.