Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | List of all members
objectstore::ObjectStoreService Class Reference
Inheritance diagram for objectstore::ObjectStoreService:
Inheritance graph
[legend]
Collaboration diagram for objectstore::ObjectStoreService:
Collaboration graph
[legend]

Public Member Functions

 ObjectStoreService (const ObjectWatcher &ow)
 
virtual const bool isReplica ()
 
template<typename T >
derecho::rpc::QueryResults< std::tuple< version_t, uint64_t > > _aio_put (const Object &object, const bool &force_client)
 
template<typename T >
std::tuple< version_t, uint64_t > _bio_put (const Object &object, const bool &force_client)
 
virtual std::tuple< version_t, uint64_t > bio_put (const Object &object, const bool &force_client)
 
virtual derecho::rpc::QueryResults< std::tuple< version_t, uint64_t > > aio_put (const Object &object, const bool &force_client)
 
template<typename T >
derecho::rpc::QueryResults< std::tuple< version_t, uint64_t > > _aio_remove (const OID &oid, const bool &force_client)
 
template<typename T >
std::tuple< version_t, uint64_t > _bio_remove (const OID &oid, const bool &force_client)
 
virtual std::tuple< version_t, uint64_t > bio_remove (const OID &oid, const bool &force_client)
 
virtual derecho::rpc::QueryResults< std::tuple< version_t, uint64_t > > aio_remove (const OID &oid, const bool &force_client)
 
template<typename T >
derecho::rpc::QueryResults< const Object_aio_get (const OID &oid, const version_t &ver, const bool &force_client)
 
template<typename T >
derecho::rpc::QueryResults< const Object_aio_get (const OID &oid, const uint64_t &ts_us)
 
template<typename T >
Object _bio_get (const OID &oid, const version_t &ver, const bool &force_client)
 
template<typename T >
Object _bio_get (const OID &oid, const uint64_t &ts_us)
 
virtual Object bio_get (const OID &oid, const version_t &ver, const bool &force_client)
 
virtual Object bio_get (const OID &oid, const uint64_t &ts_us)
 
virtual derecho::rpc::QueryResults< const Objectaio_get (const OID &oid, const version_t &ver, const bool &force_client)
 
virtual derecho::rpc::QueryResults< const Objectaio_get (const OID &oid, const uint64_t &ts_us)
 
virtual void leave (bool group_shutdown)
 
virtual const ObjectWatchergetObjectWatcher ()
 
- Public Member Functions inherited from mutils::RemoteDeserializationContext
 RemoteDeserializationContext (const RemoteDeserializationContext &)=delete
 
 RemoteDeserializationContext (const RemoteDeserializationContext &&)=delete
 
virtual ~RemoteDeserializationContext ()
 
 RemoteDeserializationContext ()
 

Static Public Member Functions

static IObjectStoreServiceget (int argc, char **argv, const ObjectWatcher &ow={})
 
- Static Public Member Functions inherited from objectstore::IObjectStoreService
static IObjectStoreServicegetObjectStoreService (int argc, char **argv, const ObjectWatcher &ow={})
 

Private Types

enum  OSSMode { VOLATILE_UNLOGGED, VOLATILE_LOGGED, PERSISTENT_UNLOGGED, PERSISTENT_LOGGED }
 

Private Attributes

OSSMode mode
 
const ObjectWatcherobject_watcher
 
std::vector< node_id_treplicas
 
const bool bReplica
 
const node_id_t myid
 
derecho::Group< VolatileUnloggedObjectStore, PersistentLoggedObjectStoregroup
 
std::mutex write_mutex
 

Detailed Description

Definition at line 646 of file ObjectStore.cpp.

Member Enumeration Documentation

◆ OSSMode

Enumerator
VOLATILE_UNLOGGED 
VOLATILE_LOGGED 
PERSISTENT_UNLOGGED 
PERSISTENT_LOGGED 

Definition at line 648 of file ObjectStore.cpp.

Constructor & Destructor Documentation

◆ ObjectStoreService()

objectstore::ObjectStoreService::ObjectStoreService ( const ObjectWatcher ow)
inline

Definition at line 666 of file ObjectStore.cpp.

Member Function Documentation

◆ _aio_get() [1/2]

template<typename T >
derecho::rpc::QueryResults<const Object> objectstore::ObjectStoreService::_aio_get ( const OID oid,
const version_t ver,
const bool &  force_client 
)
inline

Definition at line 837 of file ObjectStore.cpp.

◆ _aio_get() [2/2]

template<typename T >
derecho::rpc::QueryResults<const Object> objectstore::ObjectStoreService::_aio_get ( const OID oid,
const uint64_t &  ts_us 
)
inline

Definition at line 857 of file ObjectStore.cpp.

◆ _aio_put()

template<typename T >
derecho::rpc::QueryResults<std::tuple<version_t,uint64_t> > objectstore::ObjectStoreService::_aio_put ( const Object object,
const bool &  force_client 
)
inline

Definition at line 723 of file ObjectStore.cpp.

◆ _aio_remove()

template<typename T >
derecho::rpc::QueryResults<std::tuple<version_t,uint64_t> > objectstore::ObjectStoreService::_aio_remove ( const OID oid,
const bool &  force_client 
)
inline

Definition at line 781 of file ObjectStore.cpp.

◆ _bio_get() [1/2]

template<typename T >
Object objectstore::ObjectStoreService::_bio_get ( const OID oid,
const version_t ver,
const bool &  force_client 
)
inline

Definition at line 872 of file ObjectStore.cpp.

◆ _bio_get() [2/2]

template<typename T >
Object objectstore::ObjectStoreService::_bio_get ( const OID oid,
const uint64_t &  ts_us 
)
inline

Definition at line 880 of file ObjectStore.cpp.

◆ _bio_put()

template<typename T >
std::tuple<version_t,uint64_t> objectstore::ObjectStoreService::_bio_put ( const Object object,
const bool &  force_client 
)
inline

Definition at line 738 of file ObjectStore.cpp.

◆ _bio_remove()

template<typename T >
std::tuple<version_t,uint64_t> objectstore::ObjectStoreService::_bio_remove ( const OID oid,
const bool &  force_client 
)
inline

Definition at line 796 of file ObjectStore.cpp.

◆ aio_get() [1/2]

virtual derecho::rpc::QueryResults<const Object> objectstore::ObjectStoreService::aio_get ( const OID oid,
const version_t ver,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 912 of file ObjectStore.cpp.

◆ aio_get() [2/2]

virtual derecho::rpc::QueryResults<const Object> objectstore::ObjectStoreService::aio_get ( const OID oid,
const uint64_t &  ts_us 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 925 of file ObjectStore.cpp.

◆ aio_put()

virtual derecho::rpc::QueryResults<std::tuple<version_t,uint64_t> > objectstore::ObjectStoreService::aio_put ( const Object object,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 767 of file ObjectStore.cpp.

◆ aio_remove()

virtual derecho::rpc::QueryResults<std::tuple<version_t,uint64_t> > objectstore::ObjectStoreService::aio_remove ( const OID oid,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 822 of file ObjectStore.cpp.

◆ bio_get() [1/2]

virtual Object objectstore::ObjectStoreService::bio_get ( const OID oid,
const version_t ver,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 886 of file ObjectStore.cpp.

◆ bio_get() [2/2]

virtual Object objectstore::ObjectStoreService::bio_get ( const OID oid,
const uint64_t &  ts_us 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 899 of file ObjectStore.cpp.

◆ bio_put()

virtual std::tuple<version_t,uint64_t> objectstore::ObjectStoreService::bio_put ( const Object object,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 750 of file ObjectStore.cpp.

◆ bio_remove()

virtual std::tuple<version_t,uint64_t> objectstore::ObjectStoreService::bio_remove ( const OID oid,
const bool &  force_client 
)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 808 of file ObjectStore.cpp.

◆ get()

static IObjectStoreService& objectstore::ObjectStoreService::get ( int  argc,
char **  argv,
const ObjectWatcher ow = {} 
)
static

◆ getObjectWatcher()

virtual const ObjectWatcher& objectstore::ObjectStoreService::getObjectWatcher ( )
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 945 of file ObjectStore.cpp.

◆ isReplica()

virtual const bool objectstore::ObjectStoreService::isReplica ( )
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 718 of file ObjectStore.cpp.

◆ leave()

virtual void objectstore::ObjectStoreService::leave ( bool  group_shutdown)
inlinevirtual

Implements objectstore::IObjectStoreService.

Definition at line 938 of file ObjectStore.cpp.

Member Data Documentation

◆ bReplica

const bool objectstore::ObjectStoreService::bReplica
private

Definition at line 657 of file ObjectStore.cpp.

◆ group

derecho::Group<VolatileUnloggedObjectStore, PersistentLoggedObjectStore> objectstore::ObjectStoreService::group
private

Definition at line 659 of file ObjectStore.cpp.

◆ mode

OSSMode objectstore::ObjectStoreService::mode
private

Definition at line 654 of file ObjectStore.cpp.

◆ myid

const node_id_t objectstore::ObjectStoreService::myid
private

Definition at line 658 of file ObjectStore.cpp.

◆ object_watcher

const ObjectWatcher& objectstore::ObjectStoreService::object_watcher
private

Definition at line 655 of file ObjectStore.cpp.

◆ replicas

std::vector<node_id_t> objectstore::ObjectStoreService::replicas
private

Definition at line 656 of file ObjectStore.cpp.

◆ write_mutex

std::mutex objectstore::ObjectStoreService::write_mutex
private

Definition at line 662 of file ObjectStore.cpp.


The documentation for this class was generated from the following file: