17
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_PLUGIN_CLIENT_H
21
#define DRIZZLED_PLUGIN_CLIENT_H
23
22
#include <drizzled/catalog/instance.h>
24
23
#include <drizzled/catalog/local.h>
25
24
#include <drizzled/error_t.h>
26
25
#include <drizzled/item.h>
27
#include <drizzled/sql_list.h>
29
#include "drizzled/visibility.h"
26
#include <drizzled/visibility.h>
40
32
* This class allows new client sources to be written. This could be through
73
65
* Get file descriptor associated with client object.
74
66
* @retval File descriptor that is attached, -1 if none.
76
virtual int getFileDescriptor(void)= 0;
68
virtual int getFileDescriptor()= 0;
79
71
* Check to see if the client is currently connected.
80
72
* @retval Boolean value representing connected state.
82
virtual bool isConnected(void)= 0;
85
* Check to see if the client is actively reading.
86
* @retval Boolean value representing reading state.
88
virtual bool isReading(void)= 0;
91
* Check to see if the client is actively writing.
92
* @retval Boolean value representing writing state.
94
virtual bool isWriting(void)= 0;
74
virtual bool isConnected()= 0;
97
77
* Flush all data that has been buffered with store() methods.
98
78
* @retval Boolean indicating success or failure.
100
virtual bool flush(void)= 0;
80
virtual bool flush()= 0;
103
83
* Close the client object.
105
virtual void close(void)= 0;
85
virtual void close()= 0;
108
88
* Perform handshake and authorize client if needed.
110
virtual bool authenticate(void)= 0;
112
virtual bool isConsole()
90
virtual bool authenticate()= 0;
92
virtual bool isConsole() const
97
virtual bool isInteractive() const
123
108
* Read command from client.
125
virtual bool readCommand(char **packet, uint32_t *packet_length)= 0;
110
virtual bool readCommand(char **packet, uint32_t& packet_length)= 0;
127
112
/* Send responses. */
128
virtual void sendOK(void)= 0;
129
virtual void sendEOF(void)= 0;
113
virtual void sendOK()= 0;
114
virtual void sendEOF()= 0;
130
115
virtual void sendError(const drizzled::error_t sql_errno, const char *err)= 0;
133
118
* Send field list for result set.
135
virtual bool sendFields(List<Item> *list)= 0;
120
virtual void sendFields(List<Item>&)= 0;
137
122
/* Send result fields in various forms. */
138
virtual bool store(Field *from)= 0;
139
virtual bool store(void)= 0;
140
virtual bool store(int32_t from)= 0;
141
virtual bool store(uint32_t from)= 0;
142
virtual bool store(int64_t from)= 0;
143
virtual bool store(uint64_t from)= 0;
144
virtual bool store(double from, uint32_t decimals, String *buffer)= 0;
145
virtual bool store(const type::Time *from);
146
virtual bool store(const char *from);
147
virtual bool store(const char *from, size_t length)= 0;
148
virtual bool store(const std::string &from)
123
virtual void store(Field *from)= 0;
124
virtual void store()= 0;
125
virtual void store(int32_t from)= 0;
126
virtual void store(uint32_t from)= 0;
127
virtual void store(int64_t from)= 0;
128
virtual void store(uint64_t from)= 0;
129
virtual void store(double from, uint32_t decimals, String *buffer)= 0;
130
virtual void store(const type::Time *from);
131
virtual void store(const char *from);
132
virtual void store(const char *from, size_t length)= 0;
133
virtual void store(const std::string &from)
150
return store(from.c_str(), from.size());
135
store(from.c_str(), from.size());
153
138
/* Try to remove these. */
154
virtual bool haveMoreData(void)= 0;
155
virtual bool haveError(void)= 0;
156
virtual bool wasAborted(void)= 0;
139
virtual bool haveError()= 0;
140
virtual bool wasAborted()= 0;
160
144
} /* namespace plugin */
161
145
} /* namespace drizzled */
163
#endif /* DRIZZLED_PLUGIN_CLIENT_H */