Add support for filters implemented in C++
C++ header files have the .hh-suffix to distinguish them from C header files, but also to allow a C++ header file (e.g. xyz.hh) for an existing C header file (e.g. xyz.h). - cpp.hh : Basic C++ stuff. Introduces the namespace "maxscale" and its synonym "mxs". - filter.[hh|cc]: Template class Filter and companion class FilterSession to be used when implementing filters in C++. - spinlock.h : Wrapper and lock guard class for SPINLOCK.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
add_library(maxscale-common SHARED adminusers.c alloc.c authenticator.c atomic.c buffer.c config.c config_runtime.c dcb.c filter.c externcmd.c gwbitmask.c gwdirs.c hashtable.c hint.c housekeeper.c load_utils.c log_manager.cc maxscale_pcre2.c memlog.c misc.c mlist.c modutil.c monitor.c queuemanager.c query_classifier.c poll.c random_jkiss.c resultset.c secrets.c server.c service.c session.c spinlock.c thread.c users.c utils.c skygw_utils.cc statistics.c listener.c gw_ssl.c mysql_utils.c mysql_binlog.c modulecmd.c )
|
||||
add_library(maxscale-common SHARED adminusers.c alloc.c authenticator.c atomic.c buffer.c config.c config_runtime.c dcb.c filter.c filter.cc externcmd.c gwbitmask.c gwdirs.c hashtable.c hint.c housekeeper.c load_utils.c log_manager.cc maxscale_pcre2.c memlog.c misc.c mlist.c modutil.c monitor.c queuemanager.c query_classifier.c poll.c random_jkiss.c resultset.c secrets.c server.c service.c session.c spinlock.c thread.c users.c utils.c skygw_utils.cc statistics.c listener.c gw_ssl.c mysql_utils.c mysql_binlog.c modulecmd.c )
|
||||
|
||||
target_link_libraries(maxscale-common ${MARIADB_CONNECTOR_LIBRARIES} ${LZMA_LINK_FLAGS} ${PCRE2_LIBRARIES} ${CURL_LIBRARIES} ssl pthread crypt dl crypto inih z rt m stdc++)
|
||||
|
||||
|
61
server/core/filter.cc
Normal file
61
server/core/filter.cc
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) 2016 MariaDB Corporation Ab
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file and at www.mariadb.com/bsl.
|
||||
*
|
||||
* Change Date: 2019-07-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2 or later of the General
|
||||
* Public License.
|
||||
*/
|
||||
|
||||
#include <maxscale/filter.hh>
|
||||
|
||||
namespace maxscale
|
||||
{
|
||||
|
||||
//
|
||||
// FilterSession
|
||||
//
|
||||
|
||||
FilterSession::FilterSession(SESSION* pSession)
|
||||
: m_pSession(pSession)
|
||||
{
|
||||
}
|
||||
|
||||
FilterSession::~FilterSession()
|
||||
{
|
||||
}
|
||||
|
||||
void FilterSession::close()
|
||||
{
|
||||
}
|
||||
|
||||
void FilterSession::setDownstream(const Downstream& down)
|
||||
{
|
||||
m_down = down;
|
||||
}
|
||||
|
||||
void FilterSession::setUpstream(const Upstream& up)
|
||||
{
|
||||
m_up = up;
|
||||
}
|
||||
|
||||
int FilterSession::routeQuery(GWBUF* pPacket)
|
||||
{
|
||||
return m_down.routeQuery(pPacket);
|
||||
}
|
||||
|
||||
int FilterSession::clientReply(GWBUF* pPacket)
|
||||
{
|
||||
return m_up.clientReply(pPacket);
|
||||
}
|
||||
|
||||
void FilterSession::diagnostics(DCB* pDcb)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user