Move length-encoded integer/string functions to maxsql

This commit is contained in:
Esa Korhonen
2018-11-29 14:41:10 +02:00
parent 5e03ff35eb
commit 655e5fab5b
12 changed files with 170 additions and 173 deletions

View File

@ -211,4 +211,14 @@ private:
mutable ConversionError m_error; /**< Error information */
std::unordered_map<std::string, int64_t> m_col_indexes; /**< Map of column name -> index */
};
/** Length-encoded integers */
size_t leint_bytes(const uint8_t* ptr);
uint64_t leint_value(const uint8_t* c);
uint64_t leint_consume(uint8_t** c);
/** Length-encoded strings */
char* lestr_consume_dup(uint8_t** c);
char* lestr_consume(uint8_t** c, size_t* size);
}

View File

@ -17,6 +17,7 @@
#include <sstream>
#include <string>
#include <vector>
#include <maxsql/mariadb.hh>
#include <maxscale/buffer.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/protocol/mysql.hh>
@ -40,7 +41,7 @@ public:
*/
LEncInt(uint8_t* pData)
{
m_value = mxs_leint_value(pData);
m_value = leint_value(pData);
}
/**
@ -52,8 +53,8 @@ public:
*/
LEncInt(uint8_t** ppData)
{
size_t nBytes = mxs_leint_bytes(*ppData);
m_value = mxs_leint_value(*ppData);
size_t nBytes = leint_bytes(*ppData);
m_value = leint_value(*ppData);
*ppData += nBytes;
}
@ -229,7 +230,7 @@ public:
// NULL is sent as 0xfb. See https://dev.mysql.com/doc/internals/en/com-query-response.html
if (*pData != 0xfb)
{
m_pString = mxs_lestr_consume(&pData, &m_length);
m_pString = lestr_consume(&pData, &m_length);
}
else
{
@ -250,7 +251,7 @@ public:
// NULL is sent as 0xfb. See https://dev.mysql.com/doc/internals/en/com-query-response.html
if (**ppData != 0xfb)
{
m_pString = mxs_lestr_consume(ppData, &m_length);
m_pString = lestr_consume(ppData, &m_length);
}
else
{