8#ifndef INFINISPAN_HOTROD_CPP_SRC_HOTROD_API_TRANSACTIONS_H_
9#define INFINISPAN_HOTROD_CPP_SRC_HOTROD_API_TRANSACTIONS_H_
29 std::vector<char> globalId;
30 std::vector<char> branchId;
41class PrepareCommitOperation;
83 std::function<void (
const void *)>
deleter;
88 ContextEntry(
Action action,
const void*
value,
MetadataValue&
meta, std::function<
void (
const void *)>
deleter, std::function<
void (
const void *, std::vector<char>&)>
valueMarshaller) :
action(
action),
value(
value),
origMeta(
meta),
meta(
meta),
changed(false),
deleter(
deleter),
valueMarshaller(
valueMarshaller) {}
97 this->status = status;
101 const void*
getValue(
const std::vector<char>& key);
103 void addValue(std::vector<char>& key,
const void* value,
MetadataValue& meta, std::function<
void (
const void *)> deleter, std::function<
void (
const void *, std::vector<char>&)> valueMarshaller,
ControlBit cb =
NONE);
104 void setValue(std::vector<char>& key,
const void* value,
MetadataValue& meta, std::function<
void (
const void *)> deleter, std::function<
void (
const void *, std::vector<char>&)> valueMarshaller);
108 void getBulk(
int size, std::map<std::vector<char>,
const void*> &mbuf);
111 std::map<const std::vector<char>,
ContextEntry> context;
113 friend operations::PrepareCommitOperation;
125 std::map<RemoteCacheBase*, TransactionContext> registeredCache;
126 std::map<RemoteCacheBase*, TransactionContext*> preparedCache;
163 static const std::map<TransactionStatus, std::string> mapStatusString;
169 bool operator()(
const std::vector<char>& a,
const std::vector<char>& b)
const {
170 return a.size() < b.size();
#define HR_EXTERN
Definition: ImportExport.h:35
Definition: Transactions.h:120
TransactionContext & getTransactionContext(RemoteCacheBase *cache)
Definition: Transactions.h:73
ControlBit
Definition: Transactions.h:76
@ NOT_READ
Definition: Transactions.h:76
@ NONE
Definition: Transactions.h:76
@ REMOVE_OP
Definition: Transactions.h:76
@ NON_EXISTING
Definition: Transactions.h:76
ContextEntry & getEntry(std::vector< char > &key)
TransactionRemoteStatus getStatus() const
Definition: Transactions.h:91
Action
Definition: Transactions.h:75
@ SET
Definition: Transactions.h:75
@ DELETED
Definition: Transactions.h:75
void setPrepared(TransactionRemoteStatus status)
Definition: Transactions.h:95
bool hasValue(const std::vector< char > &key)
void getBulk(int size, std::map< std::vector< char >, const void * > &mbuf)
const void * getValue(const std::vector< char > &key)
void removeEntry(const std::vector< char > &key)
void setValue(std::vector< char > &key, const void *value, MetadataValue &meta, std::function< void(const void *)> deleter, std::function< void(const void *, std::vector< char > &)> valueMarshaller)
void addValue(std::vector< char > &key, const void *value, MetadataValue &meta, std::function< void(const void *)> deleter, std::function< void(const void *, std::vector< char > &)> valueMarshaller, ControlBit cb=NONE)
void setValueAsDeleted(std::vector< char > &key)
bool isDeleted(const std::vector< char > &key)
Definition: TransactionManager.h:25
Definition: Transactions.h:174
SynchronizationAdapter & getAdapter(Transaction &tx)
Definition: Transactions.h:130
bool acceptRW() const
Definition: Transactions.h:151
bool canCommit() const
Definition: Transactions.h:142
bool canBegin() const
Definition: Transactions.h:139
HR_EXTERN const std::string & statusToString()
Transaction()
Definition: Transactions.h:133
bool canRollback() const
Definition: Transactions.h:145
bool acceptRead() const
Definition: Transactions.h:154
TransactionStatus getStatus() const
Definition: Transactions.h:136
bool needsRollback() const
Definition: Transactions.h:148
bool operator<(const Transaction &other) const
Definition: Transactions.h:157
Definition: Transactions.h:21
HR_EXTERN const std::vector< char > & getBranchQualifier() const
HR_EXTERN uint32_t getFormatId() const
HR_EXTERN bool operator<(const XID &other) const
HR_EXTERN const std::vector< char > & getGlobalTransactionId() const
TransactionRemoteStatus
Definition: Transactions.h:58
TransactionStatus
Definition: Transactions.h:45
@ ROLLEDBACK
Definition: Transactions.h:50
@ MARKED_ROLLBACK
Definition: Transactions.h:47
@ ROLLING_BACK
Definition: Transactions.h:55
@ UNKNOWN
Definition: Transactions.h:51
@ NO_TRANSACTION
Definition: Transactions.h:52
@ COMMITTED
Definition: Transactions.h:49
@ PREPARED
Definition: Transactions.h:48
@ COMMITTING
Definition: Transactions.h:54
@ ACTIVE
Definition: Transactions.h:46
@ PREPARING
Definition: Transactions.h:53
Definition: AuthenticationConfiguration.h:10
Definition: Transactions.h:77
unsigned char controlByte
Definition: Transactions.h:85
std::function< void(const void *)> deleter
Definition: Transactions.h:83
ContextEntry(Action action, const void *value, MetadataValue &meta, std::function< void(const void *)> deleter, std::function< void(const void *, std::vector< char > &)> valueMarshaller)
Definition: Transactions.h:88
MetadataValue meta
Definition: Transactions.h:81
bool changed
Definition: Transactions.h:82
Action action
Definition: Transactions.h:78
MetadataValue origMeta
Definition: Transactions.h:80
~ContextEntry()
Definition: Transactions.h:89
ContextEntry(Action action, const void *value, std::function< void(const void *)> deleter, std::function< void(const void *, std::vector< char > &)> valueMarshaller)
Definition: Transactions.h:87
const void * value
Definition: Transactions.h:79
ContextEntry()
Definition: Transactions.h:86
std::function< void(const void *, std::vector< char > &)> valueMarshaller
Definition: Transactions.h:84
Definition: Transactions.h:168
bool operator()(const std::vector< char > &a, const std::vector< char > &b) const
Definition: Transactions.h:169