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 #include <string>
00026
00027 namespace drizzled {
00028 namespace session {
00029
00030 State::State(const char *in_packet, size_t in_packet_length)
00031 {
00032 if (in_packet_length)
00033 {
00034 size_t minimum= std::min(in_packet_length, static_cast<size_t>(PROCESS_LIST_WIDTH));
00035 _query.resize(minimum + 1);
00036 memcpy(&_query[0], in_packet, minimum);
00037 }
00038 else
00039 {
00040 _query.resize(0);
00041 }
00042 }
00043
00044 const char *State::query() const
00045 {
00046 if (_query.size())
00047 return &_query[0];
00048
00049 return "";
00050 }
00051
00052 const char *State::query(size_t &size) const
00053 {
00054 if (_query.size())
00055 {
00056 size= _query.size() -1;
00057 return &_query[0];
00058 }
00059
00060 size= 0;
00061 return "";
00062 }
00063
00064 }
00065 }