~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/mysql_protocol/mysql_protocol.h

mergeĀ lp:~linuxjedi/drizzle/trunk-remove-drizzleadmin

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
18
 */
19
19
 
20
 
#ifndef PLUGIN_MYSQL_PROTOCOL_MYSQL_PROTOCOL_H
21
 
#define PLUGIN_MYSQL_PROTOCOL_MYSQL_PROTOCOL_H
 
20
#pragma once
22
21
 
23
22
#include <drizzled/plugin/listen_tcp.h>
24
23
#include <drizzled/plugin/client.h>
25
24
#include <drizzled/atomics.h>
26
 
#include "drizzled/plugin/table_function.h"
 
25
#include <drizzled/plugin/table_function.h>
27
26
 
28
27
#include "net_serv.h"
29
28
 
30
 
namespace drizzle_plugin
31
 
{
 
29
namespace drizzle_plugin {
 
30
 
32
31
void compose_ip_addresses(std::vector<std::string> options);
33
32
 
34
33
class ProtocolCounters
38
37
      max_connections(1000)
39
38
    { }
40
39
    drizzled::atomic<uint64_t> connectionCount;
41
 
    drizzled::atomic<uint64_t> adminConnectionCount;
42
40
    drizzled::atomic<uint64_t> failedConnections;
43
41
    drizzled::atomic<uint64_t> connected;
44
 
    drizzled::atomic<uint64_t> adminConnected;
45
42
    uint32_t max_connections;
46
43
};
47
44
 
78
75
  NET net;
79
76
  drizzled::String packet;
80
77
  uint32_t client_capabilities;
81
 
  bool is_admin_connection;
82
78
  bool _using_mysql41_protocol;
 
79
  bool _is_interactive;
83
80
 
84
81
  bool checkConnection(void);
85
 
  bool netStoreData(const unsigned char *from, size_t length);
 
82
  void netStoreData(const unsigned char *from, size_t length);
86
83
  void writeEOFPacket(uint32_t server_status, uint32_t total_warn_count);
87
84
  unsigned char *storeLength(unsigned char *packet, uint64_t length);
88
85
  void makeScramble(char *scramble);
91
88
  ClientMySQLProtocol(int fd, bool _using_mysql41_protocol, ProtocolCounters *set_counters);
92
89
  virtual ~ClientMySQLProtocol();
93
90
 
 
91
  bool isInteractive() const
 
92
  {
 
93
    return _is_interactive;
 
94
  }
 
95
 
94
96
  ProtocolCounters *counters;
95
97
 
96
98
  virtual int getFileDescriptor(void);
101
103
  virtual void close(void);
102
104
 
103
105
  virtual bool authenticate(void);
104
 
  virtual bool readCommand(char **packet, uint32_t *packet_length);
 
106
  virtual bool readCommand(char **packet, uint32_t& packet_length);
105
107
 
106
108
  virtual void sendOK(void);
107
109
  virtual void sendEOF(void);
110
112
  virtual bool sendFields(drizzled::List<drizzled::Item> *list);
111
113
 
112
114
  using Client::store;
113
 
  virtual bool store(drizzled::Field *from);
114
 
  virtual bool store(void);
115
 
  virtual bool store(int32_t from);
116
 
  virtual bool store(uint32_t from);
117
 
  virtual bool store(int64_t from);
118
 
  virtual bool store(uint64_t from);
119
 
  virtual bool store(double from, uint32_t decimals, drizzled::String *buffer);
120
 
  virtual bool store(const char *from, size_t length);
 
115
  virtual void store(drizzled::Field *from);
 
116
  virtual void store();
 
117
  virtual void store(int32_t from);
 
118
  virtual void store(uint32_t from);
 
119
  virtual void store(int64_t from);
 
120
  virtual void store(uint64_t from);
 
121
  virtual void store(double from, uint32_t decimals, drizzled::String *buffer);
 
122
  virtual void store(const char *from, size_t length);
121
123
 
122
124
  virtual bool haveError(void);
123
125
  virtual bool haveMoreData(void);
124
126
  virtual bool wasAborted(void);
125
 
  virtual bool isAdminAllowed(void);
126
 
  static std::vector<std::string> mysql_admin_ip_addresses;
127
 
  static void mysql_compose_ip_addresses(std::vector<std::string> options);
128
127
};
129
128
 
130
129
} /* namespace drizzle_plugin */
131
130
 
132
 
#endif /* PLUGIN_MYSQL_PROTOCOL_MYSQL_PROTOCOL_H */