MXS-1474 Refactor for forthcoming changes

This commit is contained in:
Johan Wikman
2017-10-25 14:52:52 +03:00
parent 93edc230f9
commit e45ee22ec3
2 changed files with 101 additions and 81 deletions

View File

@ -897,7 +897,7 @@ bool CacheFilterSession::should_consult_cache(GWBUF* pPacket)
/** /**
* Routes a COM_QUERY packet. * Routes a COM_QUERY packet.
* *
* @param pPacket A contiguousCOM_QUERY packet. * @param pPacket A contiguous COM_QUERY packet.
* *
* @return ROUTING_ABORT if the processing of the packet should be aborted * @return ROUTING_ABORT if the processing of the packet should be aborted
* (as the data is obtained from the cache) or * (as the data is obtained from the cache) or
@ -918,11 +918,42 @@ CacheFilterSession::routing_action_t CacheFilterSession::route_COM_QUERY(GWBUF*
if (CACHE_RESULT_IS_OK(result)) if (CACHE_RESULT_IS_OK(result))
{ {
action = route_SELECT(pPacket);
}
else
{
MXS_ERROR("Could not create cache key.");
m_state = CACHE_IGNORING_RESPONSE;
}
}
else
{
m_state = CACHE_IGNORING_RESPONSE;
}
}
return action;
}
/**
* Routes a SELECT packet.
*
* @param pPacket A contiguous COM_QUERY packet containing a SELECT.
*
* @return ROUTING_ABORT if the processing of the packet should be aborted
* (as the data is obtained from the cache) or
* ROUTING_CONTINUE if the normal processing should continue.
*/
CacheFilterSession::routing_action_t CacheFilterSession::route_SELECT(GWBUF* pPacket)
{
routing_action_t action = ROUTING_CONTINUE;
if (m_pCache->should_use(m_pSession)) if (m_pCache->should_use(m_pSession))
{ {
uint32_t flags = CACHE_FLAGS_INCLUDE_STALE; uint32_t flags = CACHE_FLAGS_INCLUDE_STALE;
GWBUF* pResponse; GWBUF* pResponse;
result = m_pCache->get_value(m_key, flags, &pResponse); cache_result_t result = m_pCache->get_value(m_key, flags, &pResponse);
if (CACHE_RESULT_IS_OK(result)) if (CACHE_RESULT_IS_OK(result))
{ {
@ -998,18 +1029,6 @@ CacheFilterSession::routing_action_t CacheFilterSession::route_COM_QUERY(GWBUF*
} }
m_state = CACHE_EXPECTING_RESPONSE; m_state = CACHE_EXPECTING_RESPONSE;
} }
}
else
{
MXS_ERROR("Could not create cache key.");
m_state = CACHE_IGNORING_RESPONSE;
}
}
else
{
m_state = CACHE_IGNORING_RESPONSE;
}
}
return action; return action;
} }

View File

@ -118,6 +118,7 @@ private:
}; };
routing_action_t route_COM_QUERY(GWBUF* pPacket); routing_action_t route_COM_QUERY(GWBUF* pPacket);
routing_action_t route_SELECT(GWBUF* pPacket);
private: private:
CacheFilterSession(MXS_SESSION* pSession, Cache* pCache, char* zDefaultDb); CacheFilterSession(MXS_SESSION* pSession, Cache* pCache, char* zDefaultDb);