22 #include <drizzled/plugin/client.h>
23 #include <boost/tokenizer.hpp>
36 typedef std::vector<char> Bytes;
37 typedef std::queue<Bytes> Queue;
51 virtual bool flush(
void) {
return false; }
55 virtual bool readCommand(
char **packet, uint32_t& packet_length)
57 while (not to_execute.empty())
59 Queue::value_type next= to_execute.front();
60 packet_buffer.assign(next.begin(), next.end());
61 *packet= &packet_buffer[0];
62 packet_length= next.size();
69 packet_buffer.resize(1);
71 *packet= &packet_buffer[0];
80 virtual void sendOK() {}
81 virtual void sendEOF() {}
82 virtual void sendError(
const drizzled::error_t,
const char*) {}
84 virtual void store(
Field *) {}
85 virtual void store(
void) {}
86 virtual void store(int32_t) {}
87 virtual void store(uint32_t) {}
88 virtual void store(int64_t) {}
89 virtual void store(uint64_t) {}
90 virtual void store(
double, uint32_t, String*) {}
91 virtual void store(
const type::Time*) {}
92 virtual void store(
const char*) {}
93 virtual void store(
const char*,
size_t) {}
95 virtual bool haveError() {
return false; }
96 virtual bool wasAborted() {
return false; }
101 typedef boost::tokenizer<boost::escaped_list_separator<char> > Tokenizer;
102 Tokenizer tok(arg, boost::escaped_list_separator<char>(
"\\",
";",
"\""));
104 for (Tokenizer::iterator iter= tok.begin(); iter != tok.end(); ++iter)
106 byte.resize(iter->size() +1);
108 memcpy(&byte[1], iter->data(), iter->size());
109 to_execute.push(byte);
virtual bool readCommand(char **packet, uint32_t &packet_length)
virtual bool authenticate(void)
virtual void sendFields(List< Item > &)
virtual bool isConnected(void)
virtual int getFileDescriptor(void)