~drizzle-trunk/drizzle/development

2148.7.7 by Brian Aker
Move ha_data out.
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2011 Brian Aker
5
 *  Copyright (C) 2008 Sun Microsystems, Inc.
6
 *
7
 *  This program is free software; you can redistribute it and/or modify
8
 *  it under the terms of the GNU General Public License as published by
9
 *  the Free Software Foundation; version 2 of the License.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
21
#pragma once
2148.7.7 by Brian Aker
Move ha_data out.
22
2187.2.1 by Brian Aker
Additional fixes in headers.
23
#include <drizzled/resource_context.h>
24
2148.7.7 by Brian Aker
Move ha_data out.
25
namespace drizzled
26
{
27
28
/**
29
  Storage engine specific thread local data.
30
*/
31
struct Ha_data
32
{
33
  /**
34
    Storage engine specific thread local data.
35
    Lifetime: one user connection.
36
  */
37
  void *ha_ptr;
38
  /**
39
   * Resource contexts for both the "statement" and "normal"
40
   * transactions.
41
   *
42
   * Resource context at index 0:
43
   *
44
   * Life time: one statement within a transaction. If @@autocommit is
45
   * on, also represents the entire transaction.
46
   *
47
   * Resource context at index 1:
48
   *
49
   * Life time: one transaction within a connection. 
50
   *
51
   * @note
52
   *
53
   * If the storage engine does not participate in a transaction, 
54
   * there will not be a resource context.
55
   */
56
  drizzled::ResourceContext resource_context[2];
57
58
  Ha_data() :
59
    ha_ptr(NULL)
60
  {}
61
};
62
63
64
} /* namespace drizzled */
65