~drizzle-trunk/drizzle/development

1039.5.1 by Jay Pipes
* New serial event log plugin
1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
1999.6.1 by kalebral at gmail
update Copyright strings to a more common format to help with creating the master debian copyright file
4
 *  Copyright (C) 2008-2009 Sun Microsystems, Inc.
1039.5.1 by Jay Pipes
* New serial event log plugin
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; either version 2 of the License, or
9
 *  (at your option) any later version.
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
21
/**
22
 * @file
23
 *
1039.5.2 by Jay Pipes
Fixed up some comments and include guard in plugin/default_replicator/default_replicator.h
24
 * Defines the API of the default replicator.
1039.5.1 by Jay Pipes
* New serial event log plugin
25
 *
1143.2.10 by Jay Pipes
Phase 2 new replication work:
26
 * @see drizzled/plugin/transaction_replicator.h
27
 * @see drizzled/plugin/transaction_applier.h
1039.5.1 by Jay Pipes
* New serial event log plugin
28
 */
29
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
30
#pragma once
1039.5.1 by Jay Pipes
* New serial event log plugin
31
32
#include <drizzled/atomics.h>
1143.2.10 by Jay Pipes
Phase 2 new replication work:
33
#include <drizzled/plugin/transaction_replicator.h>
1039.5.1 by Jay Pipes
* New serial event log plugin
34
35
#include <vector>
36
#include <string>
37
1143.2.10 by Jay Pipes
Phase 2 new replication work:
38
class DefaultReplicator: public drizzled::plugin::TransactionReplicator
1039.5.1 by Jay Pipes
* New serial event log plugin
39
{
40
public:
1130.2.6 by Monty Taylor
Merged in latest plugin-slot-reorg.
41
  explicit DefaultReplicator(std::string name_arg)
1143.2.18 by Jay Pipes
Merge trunk and resolve conflicts.
42
    : drizzled::plugin::TransactionReplicator(name_arg) {}
1039.5.1 by Jay Pipes
* New serial event log plugin
43
44
  /** Destructor */
45
  ~DefaultReplicator() {}
1130.2.27 by Monty Taylor
Fixed merge omission in DefaultReplicator (thanks Jay!)
46
47
  /**
1143.2.10 by Jay Pipes
Phase 2 new replication work:
48
   * Replicate a Transaction message to an Applier.
1039.5.1 by Jay Pipes
* New serial event log plugin
49
   *
50
   * @note
51
   *
52
   * It is important to note that memory allocation for the 
53
   * supplied pointer is not guaranteed after the completion 
54
   * of this function -- meaning the caller can dispose of the
55
   * supplied message.  Therefore, replicators and appliers 
56
   * implementing an asynchronous replication system must copy
57
   * the supplied message to their own controlled memory storage
58
   * area.
59
   *
1405.3.3 by Jay Pipes
Adds Session reference to replication API
60
   * @param Applier to replicate to
61
   * @param Session descriptor
1143.2.10 by Jay Pipes
Phase 2 new replication work:
62
   * @param Transaction message to be replicated
1039.5.1 by Jay Pipes
* New serial event log plugin
63
   */
1405.3.1 by Jay Pipes
Adapts the plugin::TransactionReplicator and plugin::TransactionApplier
64
  drizzled::plugin::ReplicationReturnCode
1405.3.3 by Jay Pipes
Adds Session reference to replication API
65
  replicate(drizzled::plugin::TransactionApplier *in_applier,
1405.3.7 by Jay Pipes
Change to non-const Session reference in replication API.
66
            drizzled::Session &in_session,
1405.3.1 by Jay Pipes
Adapts the plugin::TransactionReplicator and plugin::TransactionApplier
67
            drizzled::message::Transaction &to_replicate);
1039.5.1 by Jay Pipes
* New serial event log plugin
68
  
69
};
70