JBoss Data Grid HotRod C++ Client  6.6.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
RemoteCacheBase.h
Go to the documentation of this file.
1 #ifndef ISPN_HOTROD_REMOTECACHEBASE_H
2 #define ISPN_HOTROD_REMOTECACHEBASE_H
3 
4 
5 
10 
11 #include <map>
12 #include <set>
13 
14 namespace infinispan {
15 namespace hotrod {
16 
17 namespace operations {
18 class OperationsFactory;
19 }
20 
21 typedef void (*MarshallHelperFn) (void*, const void*, ScopedBuffer &);
22 typedef void* (*UnmarshallHelperFn) (void*, const ScopedBuffer &);
23 
24 class KeyUnmarshallerFtor;
25 class ValueUnmarshallerFtor;
26 
28 {
29 protected:
30  HR_EXTERN const char *base_getName();
31  HR_EXTERN void *base_get(const void *key);
32  HR_EXTERN void *base_put(const void *key, const void *value, int64_t life, int64_t idle);
33  HR_EXTERN void *base_putIfAbsent(const void *key, const void *value, int64_t life, int64_t idle);
34  HR_EXTERN void *base_replace(const void *key, const void *value, int64_t life, int64_t idle);
35  HR_EXTERN void *base_remove(const void *key);
36  HR_EXTERN bool base_containsKey(const void *key);
37  HR_EXTERN void base_ping();
38  HR_EXTERN bool base_replaceWithVersion(const void *key, const void *value, int64_t version, int64_t life, int64_t idle);
39  HR_EXTERN bool base_removeWithVersion(const void *key, int64_t version);
40  HR_EXTERN void *base_getWithVersion(const void* key, VersionedValue* version);
41  HR_EXTERN void *base_getWithMetadata(const void* key, MetadataValue* metadata);
43  HR_EXTERN void base_keySet(int scope, portable::vector<void*> &sbuf);
45  HR_EXTERN void base_clear();
46  HR_EXTERN void base_withFlags(Flag flag);
47 
50 
51 private:
52  portable::counting_ptr<portable::counted_object> impl; // pointer to RemoteCacheImpl;
53  void *remoteCachePtr; // TODO: pointer to self, is it really necessary?
54  MarshallHelperFn baseKeyMarshallFn;
55  MarshallHelperFn baseValueMarshallFn;
56  HR_EXTERN void baseKeyMarshall(const void* k, ScopedBuffer &buf);
57  HR_EXTERN void baseValueMarshall(const void* v, ScopedBuffer &buf);
58 
59  UnmarshallHelperFn baseKeyUnmarshallFn;
60  UnmarshallHelperFn baseValueUnmarshallFn;
61  HR_EXTERN void* baseKeyUnmarshall(const ScopedBuffer &buf);
62  HR_EXTERN void* baseValueUnmarshall(const ScopedBuffer &buf);
63 
64 friend class RemoteCacheManager;
65 friend class RemoteCacheImpl;
66 friend class KeyUnmarshallerFtor;
67 friend class ValueUnmarshallerFtor;
68 };
69 
70 }} // namespace
71 
72 #endif /* ISPN_HOTROD_REMOTECACHEBASE_H */
HR_EXTERN void * base_replace(const void *key, const void *value, int64_t life, int64_t idle)
friend class RemoteCacheImpl
Definition: RemoteCacheBase.h:65
HR_EXTERN bool base_replaceWithVersion(const void *key, const void *value, int64_t version, int64_t life, int64_t idle)
HR_EXTERN bool base_containsKey(const void *key)
HR_EXTERN void base_withFlags(Flag flag)
HR_EXTERN void setMarshallers(void *rc, MarshallHelperFn kf, MarshallHelperFn vf, UnmarshallHelperFn ukf, UnmarshallHelperFn uvf)
HR_EXTERN void base_getBulk(int size, portable::map< void *, void * > &mbuf)
#define HR_EXTERN
Definition: ImportExport.h:35
HR_EXTERN void * base_remove(const void *key)
HR_EXTERN void * base_put(const void *key, const void *value, int64_t life, int64_t idle)
HR_EXTERN bool base_removeWithVersion(const void *key, int64_t version)
Definition: portable.h:274
HR_EXTERN const char * base_getName()
HR_EXTERN void base_keySet(int scope, portable::vector< void * > &sbuf)
Definition: portable.h:151
HR_EXTERN void * base_putIfAbsent(const void *key, const void *value, int64_t life, int64_t idle)
Definition: ScopedBuffer.h:20
Definition: RemoteCacheManager.h:36
HR_EXTERN void * base_getWithVersion(const void *key, VersionedValue *version)
friend class ValueUnmarshallerFtor
Definition: RemoteCacheBase.h:67
void(* MarshallHelperFn)(void *, const void *, ScopedBuffer &)
Definition: RemoteCacheBase.h:21
void *(* UnmarshallHelperFn)(void *, const ScopedBuffer &)
Definition: RemoteCacheBase.h:22
RemoteCacheBase()
Definition: RemoteCacheBase.h:48
friend class KeyUnmarshallerFtor
Definition: RemoteCacheBase.h:66
HR_EXTERN void * base_getWithMetadata(const void *key, MetadataValue *metadata)
Definition: RemoteCacheBase.h:27
Definition: MetadataValue.h:9
Flag
Definition: Flag.h:7
HR_EXTERN void base_stats(portable::map< portable::string, portable::string > &sbuf)
Definition: VersionedValue.h:9
HR_EXTERN void * base_get(const void *key)