60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * 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/bsl11.
 | 
						|
 *
 | 
						|
 * Change Date: 2023-01-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.
 | 
						|
 */
 | 
						|
 | 
						|
// All log messages from this module are prefixed with this
 | 
						|
#define MXS_MODULE_NAME "examplefilter"
 | 
						|
 | 
						|
#include "examplefiltersession.hh"
 | 
						|
#include "examplefilter.hh"
 | 
						|
 | 
						|
ExampleFilterSession::ExampleFilterSession(MXS_SESSION* pSession, ExampleFilter& filter)
 | 
						|
    : mxs::FilterSession(pSession)
 | 
						|
    , m_filter(filter)
 | 
						|
    , m_session_id(pSession->ses_id)
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
ExampleFilterSession::~ExampleFilterSession()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
// static
 | 
						|
ExampleFilterSession* ExampleFilterSession::create(MXS_SESSION* pSession, ExampleFilter& filter)
 | 
						|
{
 | 
						|
    return new ExampleFilterSession(pSession, filter);
 | 
						|
}
 | 
						|
 | 
						|
void ExampleFilterSession::close()
 | 
						|
{
 | 
						|
    // When the session is closed, report the numbers to the log.
 | 
						|
    MXS_NOTICE("Session %lu routed %i queries and %i replies.", m_session_id, m_queries, m_replies);
 | 
						|
}
 | 
						|
 | 
						|
int ExampleFilterSession::routeQuery(GWBUF* pPacket)
 | 
						|
{
 | 
						|
    m_queries++;
 | 
						|
    m_filter.query_seen();
 | 
						|
 | 
						|
    // Pass the query forward.
 | 
						|
    return mxs::FilterSession::routeQuery(pPacket);
 | 
						|
}
 | 
						|
 | 
						|
int ExampleFilterSession::clientReply(GWBUF* pPacket)
 | 
						|
{
 | 
						|
    m_replies++;
 | 
						|
    m_filter.reply_seen();
 | 
						|
 | 
						|
    // Pass the reply forward.
 | 
						|
    return mxs::FilterSession::clientReply(pPacket);
 | 
						|
}
 |