~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/transaction_log/transaction_log_index.cc

  • Committer: Brian Aker
  • Date: 2010-03-05 08:35:11 UTC
  • mfrom: (1273.1.33 bug530870)
  • Revision ID: brian@gaz-20100305083511-ttw26c53e48h7ctf
Merge Jay.

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
  max_end_timestamp(0),
52
52
  min_transaction_id(0),
53
53
  max_transaction_id(0),
54
 
  num_log_entries(0)
 
54
  entries(),
 
55
  transaction_entries()
55
56
{
56
57
  (void) pthread_mutex_init(&index_lock, NULL);
 
58
  entries.reserve(1024);
 
59
  transaction_entries.reserve(1024);
57
60
  open();
58
61
}
59
62
 
64
67
  pthread_mutex_destroy(&index_lock);
65
68
}
66
69
 
 
70
void TransactionLogIndex::clear()
 
71
{
 
72
  pthread_mutex_lock(&index_lock);
 
73
  min_end_timestamp= 0;
 
74
  max_end_timestamp= 0;
 
75
  min_transaction_id= 0;
 
76
  max_transaction_id= 0;
 
77
  entries.clear();
 
78
  transaction_entries.clear();
 
79
  clearError();
 
80
  pthread_mutex_unlock(&index_lock);
 
81
}
 
82
 
67
83
void TransactionLogIndex::open()
68
84
{
69
85
 
107
123
 
108
124
uint64_t TransactionLogIndex::getNumLogEntries() const
109
125
{
110
 
  return num_log_entries;
 
126
  return entries.size();
111
127
}
112
128
 
113
129
uint64_t TransactionLogIndex::getNumTransactionEntries() const
125
141
  return transaction_entries;
126
142
}
127
143
 
 
144
size_t TransactionLogIndex::getTransactionEntriesSizeInBytes()
 
145
{
 
146
  return transaction_entries.capacity() * sizeof(TransactionLog::TransactionEntries::value_type);
 
147
}
 
148
 
 
149
size_t TransactionLogIndex::getEntriesSizeInBytes()
 
150
{
 
151
  return entries.capacity() * sizeof(TransactionLog::Entries::value_type);
 
152
}
 
153
 
 
154
 
 
155
size_t TransactionLogIndex::getSizeInBytes()
 
156
{
 
157
  return sizeof(this) + getEntriesSizeInBytes() + getTransactionEntriesSizeInBytes();
 
158
}
 
159
 
128
160
void TransactionLogIndex::addEntry(const TransactionLogEntry &entry,
129
161
                                   const message::Transaction &transaction,
130
162
                                   uint32_t checksum)
136
168
    min_transaction_id= transaction.transaction_context().transaction_id();
137
169
    min_end_timestamp= transaction.transaction_context().end_timestamp();
138
170
  }
139
 
  num_log_entries++;
140
171
  max_transaction_id= transaction.transaction_context().transaction_id();
141
172
  max_end_timestamp= transaction.transaction_context().end_timestamp();
142
173
  entries.push_back(entry);