~ubuntu-branches/ubuntu/saucy/drizzle/saucy-proposed

« back to all changes in this revision

Viewing changes to plugin/transaction_log/utilities/transaction_manager.cc

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-06-19 10:46:49 UTC
  • mfrom: (1.1.6)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20120619104649-e2l0ggd4oz3um0f4
Tags: upstream-7.1.36-stable
ImportĀ upstreamĀ versionĀ 7.1.36-stable

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 
 *
4
 
 *  Copyright (C) 2010 David Shrewsbury <shrewsbury.dave@gmail.com>
5
 
 *
6
 
 *  This program is free software; you can redistribute it and/or modify
7
 
 *  it under the terms of the GNU General Public License as published by
8
 
 *  the Free Software Foundation; version 2 of the License.
9
 
 *
10
 
 *  This program is distributed in the hope that it will be useful,
11
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 *  GNU General Public License for more details.
14
 
 *
15
 
 *  You should have received a copy of the GNU General Public License
16
 
 *  along with this program; if not, write to the Free Software
17
 
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 
 */
19
 
 
20
 
/**
21
 
 * @file
22
 
 * Implementation of the TransactionManager class.
23
 
 */
24
 
 
25
 
#include <config.h>
26
 
#include "transaction_manager.h"
27
 
 
28
 
using namespace std;
29
 
using namespace drizzled;
30
 
 
31
 
 
32
 
bool TransactionManager::store(const message::Transaction &transaction)
33
 
{
34
 
  string msg;
35
 
  const message::TransactionContext trx_ctxt= transaction.transaction_context();
36
 
  uint64_t trx_id= trx_ctxt.transaction_id();
37
 
  transaction.SerializeToString(&msg);
38
 
 
39
 
  cache[trx_id].push_back(msg);
40
 
  return true;
41
 
}
42
 
 
43
 
bool TransactionManager::remove(uint64_t trx_id)
44
 
{
45
 
  cache.erase(trx_id);
46
 
  return true;
47
 
}
48
 
 
49
 
bool TransactionManager::contains(uint64_t trx_id)
50
 
{
51
 
  boost::unordered_map< uint64_t, vector<string> >::const_iterator it= cache.find(trx_id);
52
 
 
53
 
  if (it != cache.end())
54
 
    return true;
55
 
 
56
 
  return false;
57
 
}
58
 
 
59
 
uint32_t TransactionManager::getTransactionBufferSize(uint64_t trx_id)
60
 
{
61
 
  return static_cast<uint32_t>(cache[trx_id].size());
62
 
}
63
 
 
64
 
bool TransactionManager::getTransactionMessage(message::Transaction &trx,
65
 
                                               uint64_t trx_id,
66
 
                                               uint32_t position)
67
 
{
68
 
  trx.ParseFromString(cache[trx_id].at(position));
69
 
  return true;
70
 
}