~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
 *
4
 *  Copyright (C) 2008-2009 Sun Microsystems
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
 *
26
 * @see drizzled/plugin/replicator.h
27
 * @see drizzled/plugin/applier.h
28
 */
29
1039.5.2 by Jay Pipes
Fixed up some comments and include guard in plugin/default_replicator/default_replicator.h
30
#ifndef DRIZZLE_PLUGIN_DEFAULT_REPLICATOR_H
31
#define DRIZZLE_PLUGIN_DEFAULT_REPLICATOR_H
1039.5.1 by Jay Pipes
* New serial event log plugin
32
33
#include <drizzled/server_includes.h>
34
#include <drizzled/atomics.h>
1039.5.39 by Jay Pipes
This patch does a couple things in preparation for publisher and
35
#include <drizzled/plugin/command_replicator.h>
36
#include <drizzled/plugin/command_applier.h>
1039.5.1 by Jay Pipes
* New serial event log plugin
37
38
#include <vector>
39
#include <string>
40
1039.5.39 by Jay Pipes
This patch does a couple things in preparation for publisher and
41
class DefaultReplicator: public drizzled::plugin::CommandReplicator
1039.5.1 by Jay Pipes
* New serial event log plugin
42
{
43
public:
44
  DefaultReplicator() {}
45
46
  /** Destructor */
47
  ~DefaultReplicator() {}
48
  /**
49
   * Replicate a Command message to an Applier.
50
   *
51
   * @note
52
   *
53
   * It is important to note that memory allocation for the 
54
   * supplied pointer is not guaranteed after the completion 
55
   * of this function -- meaning the caller can dispose of the
56
   * supplied message.  Therefore, replicators and appliers 
57
   * implementing an asynchronous replication system must copy
58
   * the supplied message to their own controlled memory storage
59
   * area.
60
   *
61
   * @param Command message to be replicated
62
   */
1039.5.39 by Jay Pipes
This patch does a couple things in preparation for publisher and
63
  void replicate(drizzled::plugin::CommandApplier *in_applier, drizzled::message::Command &to_replicate);
1039.5.1 by Jay Pipes
* New serial event log plugin
64
  
65
  /** 
66
   * Returns whether the default replicator is active.
67
   */
68
  bool isActive();
69
};
70
1039.5.2 by Jay Pipes
Fixed up some comments and include guard in plugin/default_replicator/default_replicator.h
71
#endif /* DRIZZLE_PLUGIN_DEFAULT_REPLICATOR_H */