~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/mysql_protocol/mysql_protocol.h

  • Committer: Brian Aker
  • Date: 2010-12-18 00:43:02 UTC
  • Revision ID: brian@tangent.org-20101218004302-4ivzuuzdkblyqe18
Refactor naming for integers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
#include "net_serv.h"
29
29
 
 
30
namespace drizzle_plugin
 
31
{
 
32
void compose_ip_addresses(std::vector<std::string> options);
 
33
 
 
34
class ProtocolCounters
 
35
{
 
36
  public:
 
37
    ProtocolCounters():
 
38
      max_connections(1000)
 
39
    { }
 
40
    drizzled::atomic<uint64_t> connectionCount;
 
41
    drizzled::atomic<uint64_t> adminConnectionCount;
 
42
    drizzled::atomic<uint64_t> failedConnections;
 
43
    drizzled::atomic<uint64_t> connected;
 
44
    drizzled::atomic<uint64_t> adminConnected;
 
45
    uint32_t max_connections;
 
46
};
 
47
 
 
48
typedef drizzled::constrained_check<uint32_t, 300, 1> timeout_constraint;
 
49
typedef drizzled::constrained_check<uint32_t, 300, 1> retry_constraint;
 
50
typedef drizzled::constrained_check<uint32_t, 1048576, 1024, 1024> buffer_constraint;
 
51
 
30
52
class ListenMySQLProtocol: public drizzled::plugin::ListenTcp
31
53
{
32
 
private:
33
 
  bool using_mysql41_protocol;
34
 
  static drizzled::plugin::TableFunction* status_table_function_ptr;
 
54
protected:
 
55
  const std::string _hostname;
 
56
  bool _using_mysql41_protocol;
35
57
 
36
58
public:
37
 
  ListenMySQLProtocol(std::string name_arg, bool using_mysql41_protocol_arg):
38
 
   drizzled::plugin::ListenTcp(name_arg),
39
 
   using_mysql41_protocol(using_mysql41_protocol_arg)
 
59
  ListenMySQLProtocol(std::string name,
 
60
                      const std::string &hostname,
 
61
                      bool using_mysql41_protocol):
 
62
   drizzled::plugin::ListenTcp(name),
 
63
   _hostname(hostname),
 
64
   _using_mysql41_protocol(using_mysql41_protocol)
40
65
  { }
41
66
  virtual ~ListenMySQLProtocol();
42
 
  virtual const char* getHost(void) const;
 
67
  virtual const std::string getHost(void) const;
43
68
  virtual in_port_t getPort(void) const;
44
69
  virtual drizzled::plugin::Client *getClient(int fd);
 
70
  static ProtocolCounters *mysql_counters;
 
71
  virtual ProtocolCounters *getCounters(void) const { return mysql_counters; }
45
72
};
46
73
 
47
74
class ClientMySQLProtocol: public drizzled::plugin::Client
48
75
{
49
 
private:
 
76
protected:
50
77
  NET net;
51
78
  drizzled::String packet;
52
79
  uint32_t client_capabilities;
53
 
  bool using_mysql41_protocol;
 
80
  bool is_admin_connection;
 
81
  bool _using_mysql41_protocol;
54
82
 
55
83
  bool checkConnection(void);
56
84
  bool netStoreData(const unsigned char *from, size_t length);
59
87
  void makeScramble(char *scramble);
60
88
 
61
89
public:
62
 
  ClientMySQLProtocol(int fd, bool using_mysql41_protocol_arg);
 
90
  ClientMySQLProtocol(int fd, bool _using_mysql41_protocol, ProtocolCounters *set_counters);
63
91
  virtual ~ClientMySQLProtocol();
64
92
 
65
 
  static drizzled::atomic<uint64_t> connectionCount;
66
 
  static drizzled::atomic<uint64_t> failedConnections;
67
 
  static drizzled::atomic<uint64_t> connected;
 
93
  ProtocolCounters *counters;
68
94
 
69
95
  virtual int getFileDescriptor(void);
70
96
  virtual bool isConnected();
95
121
  virtual bool haveError(void);
96
122
  virtual bool haveMoreData(void);
97
123
  virtual bool wasAborted(void);
 
124
  virtual bool isAdminAllowed(void);
 
125
  static std::vector<std::string> mysql_admin_ip_addresses;
 
126
  static void mysql_compose_ip_addresses(std::vector<std::string> options);
98
127
};
99
128
 
 
129
} /* namespace drizzle_plugin */
 
130
 
100
131
#endif /* PLUGIN_MYSQL_PROTOCOL_MYSQL_PROTOCOL_H */