~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/transaction_applier.h

This patch adds the following functionality:

* Removes the need to manually enable replicators in order
  for an applier to work.
* Removes the enabled/disabled setting of both transaction
  applier plugins and transaction replicator plugins
* Pairs a replicator with an applier into a "ReplicationStream"
  and removes all checks for "enabled" replicators and appliers
* Allows modules that implement a TransactionApplier (such as
  the transaction_log module) to specify which replicator to
  use via a configuration variable.  For instance, the transaction
  log module now has --transaction-log-use-replicator=[default|filtered..]
  instead of the user having to do --default-replicator-enable and such
* Adds a new data dictionary table for REPLICATION_STREAMS, which
  allows querying of activated replication-to-applier streams
  managed by drizzled::ReplicationServices

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
#include "drizzled/plugin/plugin.h"
37
37
#include "drizzled/plugin/replication.h"
38
 
#include "drizzled/atomics.h"
39
38
 
40
39
namespace drizzled
41
40
{
55
54
  TransactionApplier();
56
55
  TransactionApplier(const TransactionApplier &);
57
56
  TransactionApplier& operator=(const TransactionApplier &);
58
 
  atomic<bool> is_enabled;
59
57
public:
60
58
  explicit TransactionApplier(std::string name_arg)
61
59
    : Plugin(name_arg, "TransactionApplier")
62
60
  {
63
 
    is_enabled= true;
64
61
  }
65
62
  virtual ~TransactionApplier() {}
66
63
  /**
83
80
 
84
81
  static bool addPlugin(TransactionApplier *applier);
85
82
  static void removePlugin(TransactionApplier *applier);
86
 
  virtual bool isEnabled() const
87
 
  {
88
 
    return is_enabled;
89
 
  }
90
 
 
91
 
  virtual void enable()
92
 
  {
93
 
    is_enabled= true;
94
 
  }
95
 
 
96
 
  virtual void disable()
97
 
  {
98
 
    is_enabled= false;
99
 
  }
100
83
};
101
84
 
102
85
} /* namespace plugin */