2
* Copyright (C) 2010 Djellel Eddine Difallah
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
8
* * Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
13
* * Neither the name of Djellel Eddine Difallah nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27
* THE POSSIBILITY OF SUCH DAMAGE.
32
#include <drizzled/replication_services.h>
34
#include <drizzled/plugin/transaction_replicator.h>
35
#include <drizzled/plugin/transaction_applier.h>
36
#include <drizzled/message/transaction.pb.h>
40
class Invalidator : public drizzled::plugin::TransactionApplier
44
Invalidator(std::string name_arg);
50
* Does something with the transaction message
52
* @param transaction message to be invalidated if present in the cache
54
drizzled::plugin::ReplicationReturnCode
55
apply(drizzled::Session &in_session,
56
const drizzled::message::Transaction &to_apply);
62
* Given a supplied Statement message, parse out the table
63
* and schema name from the various metadata and header
64
* pieces for the different Statement types.
66
* @param[in] Statement to parse
67
* @param[out] Schema name
68
* @param[out] Table name
70
void parseStatementTableMetadata(const drizzled::message::Statement &in_statement,
71
std::string &in_schema_name,
72
std::string &in_table_name) const;
75
* Given a schema name and table name, delete all the entries
76
* of the table from the cache.
78
* @param[in] stmt The statement message
79
* @param[in] Schema name
80
* @param[in] Table name
82
void invalidateByTableName(const std::string &in_schema_name,
83
const std::string &in_table_name) const;