MXS-1474 Refactor for forthcoming changes
This commit is contained in:
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user