~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/xid.h

  • Committer: Monty Taylor
  • Date: 2011-03-08 06:21:17 UTC
  • mfrom: (2223.1.3 build)
  • Revision ID: mordred@inaugust.com-20110308062117-4i2syq1gqtmcmcyk
Merge Olaf - XID and Dynamic_array refactoring
Merge Andrew - Optimizer bugs

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include <cstring>
24
24
 
25
 
namespace drizzled
26
 
{
 
25
namespace drizzled {
27
26
 
28
27
extern uint32_t server_id;
29
28
 
43
42
#define DRIZZLE_XID_OFFSET (DRIZZLE_XID_PREFIX_LEN+sizeof(server_id))
44
43
#define DRIZZLE_XID_GTRID_LEN (DRIZZLE_XID_OFFSET+sizeof(my_xid))
45
44
 
46
 
class XID {
47
 
 
 
45
class XID 
 
46
{
48
47
public:
49
 
 
50
48
  long formatID;
51
49
  long gtrid_length;
52
50
  long bqual_length;
69
67
  void null();
70
68
  my_xid quick_get_my_xid();
71
69
  my_xid get_my_xid();
72
 
  uint32_t length();
73
 
  unsigned char *key();
74
 
  uint32_t key_length();
 
70
  uint32_t length() const;
 
71
  const unsigned char* key() const;
 
72
  uint32_t key_length() const;
75
73
};
76
74
 
77
75
/**
82
80
 
83
81
*/
84
82
 
85
 
class DrizzleXid {
 
83
class DrizzleXid 
 
84
{
86
85
public:
87
86
  long formatID;
88
87
  long gtrid_length;
109
108
{
110
109
public:
111
110
  XID_STATE() :
112
 
    xid(),
113
111
    xa_state(XA_NOTR),
114
112
    in_session(false)
115
113
  {}
116
114
  /* For now, this is only used to catch duplicated external xids */
117
115
  XID  xid;                           // transaction identifier
118
 
  enum xa_states xa_state;            // used by external XA only
 
116
  xa_states xa_state;            // used by external XA only
119
117
  bool in_session;
120
118
};
121
119
 
122
 
bool xid_cache_init(void);
123
 
void xid_cache_free(void);
124
 
XID_STATE *xid_cache_search(XID *xid);
125
 
bool xid_cache_insert(XID *xid, enum xa_states xa_state);
 
120
bool xid_cache_init();
 
121
void xid_cache_free();
 
122
void xid_cache_insert(XID *xid, xa_states xa_state);
126
123
bool xid_cache_insert(XID_STATE *xid_state);
127
124
void xid_cache_delete(XID_STATE *xid_state);
128
125