5 #ifndef ODB_TRANSACTION_HXX
6 #define ODB_TRANSACTION_HXX
15 #include <odb/details/export.hxx>
16 #include <odb/details/unique-ptr.hxx>
20 class transaction_impl;
110 static const unsigned short event_commit = 0x01;
111 static const unsigned short event_rollback = 0x02;
112 static const unsigned short event_all = event_commit | event_rollback;
114 typedef void (*callback_type) (
115 unsigned short event,
void* key,
unsigned long long data);
132 callback_register (callback_type,
134 unsigned short event = event_all,
135 unsigned long long data = 0,
145 callback_unregister (
void* key);
151 callback_update (
void* key,
152 unsigned short event,
153 unsigned long long data = 0,
167 friend struct rollback_guard;
170 callback_find (
void* key);
173 callback_call (
unsigned short event);
177 details::unique_ptr<transaction_impl>
impl_;
196 static const std::size_t stack_callback_count = 20;
197 static const std::size_t max_callback_count = ~(std::size_t (0));
248 : database_ (db), connection_ (0)
253 : database_ (db), connection_ (&c)
263 #include <odb/transaction.ixx>
267 #endif // ODB_TRANSACTION_HXX
std::size_t callback_count_
Definition: transaction.hxx:213
Definition: transaction.hxx:22
std::vector< callback_data > dyn_callbacks_
Definition: transaction.hxx:200
unsigned short event
Definition: transaction.hxx:183
database_type & database_
Definition: transaction.hxx:258
odb::tracer tracer_type
Definition: transaction.hxx:96
connection_type & connection()
Definition: transaction.hxx:241
odb::connection connection_type
Definition: transaction.hxx:26
void * key
Definition: transaction.hxx:185
Definition: transaction.hxx:216
database_type & database()
Definition: transaction.hxx:235
unsigned long long data
Definition: transaction.hxx:186
odb::database database_type
Definition: transaction.hxx:25
Definition: database.hxx:38
Definition: connection.hxx:33
Definition: transaction.hxx:181
Definition: tracer.hxx:15
odb::connection connection_type
Definition: transaction.hxx:220
callback_type func
Definition: transaction.hxx:184
transaction_impl(database_type &db)
Definition: transaction.hxx:247
std::size_t free_callback_
Definition: transaction.hxx:209
bool finalized() const
Definition: transaction.hxx:69
transaction ** state
Definition: transaction.hxx:187
odb::database database_type
Definition: transaction.hxx:219
bool finalized_
Definition: transaction.hxx:176
connection_type * connection_
Definition: transaction.hxx:259
transaction_impl(database_type &db, connection_type &c)
Definition: transaction.hxx:252
details::unique_ptr< transaction_impl > impl_
Definition: transaction.hxx:177