dcrud  0.0.0
Distributed data and services
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
ICache.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Status.hpp"
4 
5 #include <set>
6 #include <algorithm>
7 
8 namespace dcrud {
9 
10  class ClassID;
11  class GUID;
12  class Shareable;
13 
14  typedef bool ( * shareablePredicate_t)( const Shareable & shareable );
15 
16  typedef std::set<Shareable *> shareables_t;
17  typedef shareables_t::iterator shareablesIter_t;
18 
19  class ICache {
20  public:
21 
22  virtual ~ ICache() {}
23 
24  virtual void setOwnership( bool enabled ) = 0;
25 
26  virtual bool owns( const GUID & id ) const = 0;
27 
28  virtual Status create( Shareable & item ) = 0;
29  virtual Shareable * read ( const GUID & id ) const = 0;
30  virtual Status update( Shareable & item ) = 0;
31  virtual Status deleTe( Shareable & item ) = 0;
32 
33  virtual void values( shareables_t & snapshot ) const = 0;
34  virtual bool select( shareablePredicate_t query, shareables_t & snapshot ) const = 0;
35 
36  virtual void publish( void ) = 0;
37 
38  virtual void subscribe( const ClassID & id ) = 0;
39 
40  virtual void refresh( void ) = 0;
41 
42  template<class T>
43  T * get( const GUID & id ) const {
44  return dynamic_cast<T *>( read( id ));
45  }
46  };
47 }
virtual void publish(void)=0
virtual Status create(Shareable &item)=0
shareables_t::iterator shareablesIter_t
Definition: ICache.hpp:17
bool(* shareablePredicate_t)(const Shareable &shareable)
Definition: ICache.hpp:14
virtual void refresh(void)=0
virtual void subscribe(const ClassID &id)=0
virtual void setOwnership(bool enabled)=0
virtual bool owns(const GUID &id) const =0
virtual Status deleTe(Shareable &item)=0
std::set< Shareable * > shareables_t
Definition: ICache.hpp:16
virtual Shareable * read(const GUID &id) const =0
Status
Definition: Status.hpp:9
virtual Status update(Shareable &item)=0
virtual ~ICache()
Definition: ICache.hpp:22
virtual bool select(shareablePredicate_t query, shareables_t &snapshot) const =0
virtual void values(shareables_t &snapshot) const =0