00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <config.h>
00022
00023 #include <drizzled/session/state.h>
00024 #include <drizzled/definitions.h>
00025
00026 #include <string>
00027
00028 namespace drizzled
00029 {
00030
00031 namespace session
00032 {
00033
00034 State::State(const char *in_packet, size_t in_packet_length)
00035 {
00036 if (in_packet_length)
00037 {
00038 size_t minimum= std::min(in_packet_length, static_cast<size_t>(PROCESS_LIST_WIDTH));
00039 _query.resize(minimum + 1);
00040 memcpy(&_query[0], in_packet, minimum);
00041 }
00042 else
00043 {
00044 _query.resize(0);
00045 }
00046 }
00047
00048 const char *State::query() const
00049 {
00050 if (_query.size())
00051 return &_query[0];
00052
00053 return "";
00054 }
00055
00056 const char *State::query(size_t &size) const
00057 {
00058 if (_query.size())
00059 {
00060 size= _query.size() -1;
00061 return &_query[0];
00062 }
00063
00064 size= 0;
00065 return "";
00066 }
00067
00068 }
00069 }