10 #define EVENTSTORE_VERSION 0
50 DO_NOT_DELETE = 0x0001,
52 JET_WRITE_VERTEX = 0x1000
57 _observerList.push_back(observer);
60 _observerList.remove(observer);
64 int Count(
const char* name)
const;
68 bool IsExist(
const char* name,
const char* classname)
const;
71 const char* GetClassName(
const char* name,
int idx = 0)
const;
72 void* GetObject(
const char* name,
const char* classname =
"")
const;
73 template<
typename T>
bool Get(
const char* name,
const vector<const T*>*& buf)
const;
74 template<
typename T>
bool Get(
const char* name,
const vector<T*>*& buf)
const;
75 template<
typename T>
bool Get(
const char* name,
const vector<T>*& buf)
const;
76 template<
typename T>
bool Get(
const char* name,
const T*& buf)
const;
79 void* RegisterObject(
const char* name,
const char* classname,
int flags = 0);
80 template<
typename T>
bool Register(
const char* name, vector<T*>*& buf,
int flags = 0);
81 template<
typename T>
bool Register(
const char* name, vector<T>*& buf,
int flags = 0);
82 template<
typename T>
bool Register(
const char* name, T*& buf,
int flags = 0);
100 StoredEntry(
string cn =
string(
""),
void* ob = 0,
int fl = 0) : classname(cn), obj(ob), flag(fl) {}
104 const multimap<string, lcfiplus::EventStore::StoredEntry >&
GetObjectMap()
const {
110 void*
const& GetObjectRef(
const char* name,
const char* classname =
"")
const;
115 multimap<string, lcfiplus::EventStore::StoredEntry > _objectMap;
116 mutable multimap<string, lcfiplus::EventStore::StoredEntry >::const_iterator _itMap;
118 list<EventStoreObserver*> _observerList;
123 template<
typename T>
bool EventStore::Get(
const char* name,
const T*& buf)
const {
124 buf =
static_cast<const T*
>(GetObject(name, TClass::GetClass(
typeid(T))->GetName()));
128 template<
typename T>
bool EventStore::Get(
const char* name,
const vector<T>*& buf)
const {
129 const char* elemclasname = TClass::GetClass(
typeid(T))->GetName();
130 string vectclasname =
"vector<";
131 vectclasname += elemclasname;
134 buf =
static_cast<const vector<T>*
>(GetObject(name, vectclasname.c_str()));
139 template<
typename T>
bool EventStore::Get(
const char* name,
const vector<T*>*& buf)
const {
141 throw (
"EventStore::Get: non-const pointer-vector prohibited");
146 template<
typename T>
bool EventStore::Get(
const char* name,
const vector<const T*>*& buf)
const {
147 const char* elemclasname = TClass::GetClass(
typeid(T))->GetName();
148 string vectclasname =
"vector<";
149 vectclasname += elemclasname;
150 vectclasname +=
"*>";
152 buf =
static_cast<const vector<const T*>*
>(GetObject(name, vectclasname.c_str()));
156 template<
typename T>
bool EventStore::Register(
const char* name, T*& buf,
int flags) {
157 string classname = TClass::GetClass(
typeid(T))->GetName();
159 buf =
static_cast<T*
>(RegisterObject(name, classname.c_str(), flags));
162 template<
typename T>
bool EventStore::Register(
const char* name, vector<T>*& buf,
int flags) {
163 const char* elemclasname = TClass::GetClass(
typeid(T))->GetName();
164 string vectclasname =
"vector<";
165 vectclasname += elemclasname;
167 buf =
static_cast<vector<T>*
>(RegisterObject(name, vectclasname.c_str(), flags));
170 template<
typename T>
bool EventStore::Register(
const char* name, vector<T*>*& buf,
int flags) {
171 const char* elemclasname = TClass::GetClass(
typeid(T))->GetName();
172 string vectclasname =
"vector<";
173 vectclasname += elemclasname;
174 vectclasname +=
"*>";
176 buf =
static_cast<vector<T*>*
>(RegisterObject(name, vectclasname.c_str(), flags));
StoredEntry(string cn=string(""), void *ob=0, int fl=0)
Definition: EventStore.h:100
void UnregisterObserver(EventStoreObserver *observer)
Definition: EventStore.h:59
string classname
Definition: EventStore.h:96
Definition: EventStore.h:95
const multimap< string, lcfiplus::EventStore::StoredEntry > & GetObjectMap() const
Definition: EventStore.h:104
virtual void RegisterCallback(const char *, const char *, int)
Definition: EventStore.h:23
virtual void GetCallback(const char *, const char *)
Definition: EventStore.h:22
Definition: EventStore.h:17
virtual ~EventStoreObserver()
Definition: EventStore.h:20
A simple named storage for event data.
Definition: EventStore.h:42
void * obj
Definition: EventStore.h:97
bool IsExist(const char *name) const
Definition: EventStore.h:65
EventStoreObserver()
Definition: EventStore.h:19
void RegisterObserver(EventStoreObserver *observer)
Definition: EventStore.h:56
int flag
Definition: EventStore.h:98