~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/mysql_protocol/mysql_protocol.h

  • Committer: Mark Atwood
  • Date: 2011-06-14 06:10:57 UTC
  • mfrom: (2318.2.19 rf)
  • Revision ID: me@mark.atwood.name-20110614061057-u08az4cidd4l7blm
mergeĀ lp:~olafvdspek/drizzle/refactor4

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 
29
29
namespace drizzle_plugin {
30
30
 
31
 
void compose_ip_addresses(std::vector<std::string> options);
32
 
 
33
31
class ProtocolCounters
34
32
{
35
 
  public:
36
 
    ProtocolCounters():
 
33
public:
 
34
  ProtocolCounters() :
37
35
      max_connections(1000)
38
 
    { }
39
 
    drizzled::atomic<uint64_t> connectionCount;
40
 
    drizzled::atomic<uint64_t> failedConnections;
41
 
    drizzled::atomic<uint64_t> connected;
42
 
    uint32_t max_connections;
 
36
  { }
 
37
 
 
38
  drizzled::atomic<uint64_t> connectionCount;
 
39
  drizzled::atomic<uint64_t> failedConnections;
 
40
  drizzled::atomic<uint64_t> connected;
 
41
  uint32_t max_connections;
43
42
};
44
43
 
45
44
typedef drizzled::constrained_check<uint32_t, 300, 1> timeout_constraint;
60
59
   _hostname(hostname),
61
60
   _using_mysql41_protocol(using_mysql41_protocol)
62
61
  { }
63
 
  virtual ~ListenMySQLProtocol();
64
 
  virtual const std::string getHost(void) const;
65
 
  virtual in_port_t getPort(void) const;
 
62
  virtual const std::string getHost() const;
 
63
  virtual in_port_t getPort() const;
66
64
  virtual drizzled::plugin::Client *getClient(int fd);
67
 
  static ProtocolCounters *mysql_counters;
68
 
  virtual ProtocolCounters *getCounters(void) const { return mysql_counters; }
69
 
  void addCountersToTable(void);
 
65
  static ProtocolCounters mysql_counters;
 
66
  virtual ProtocolCounters& getCounters() const { return mysql_counters; }
 
67
  void addCountersToTable();
70
68
};
71
69
 
72
70
class ClientMySQLProtocol: public drizzled::plugin::Client
78
76
  bool _using_mysql41_protocol;
79
77
  bool _is_interactive;
80
78
 
81
 
  bool checkConnection(void);
82
 
  void netStoreData(const unsigned char *from, size_t length);
 
79
  bool checkConnection();
 
80
  void netStoreData(const void*, size_t);
83
81
  void writeEOFPacket(uint32_t server_status, uint32_t total_warn_count);
84
82
  unsigned char *storeLength(unsigned char *packet, uint64_t length);
85
83
  void makeScramble(char *scramble);
86
84
 
87
85
public:
88
 
  ClientMySQLProtocol(int fd, bool _using_mysql41_protocol, ProtocolCounters *set_counters);
 
86
  ClientMySQLProtocol(int fd, bool _using_mysql41_protocol, ProtocolCounters&);
89
87
  virtual ~ClientMySQLProtocol();
90
88
 
91
89
  bool isInteractive() const
93
91
    return _is_interactive;
94
92
  }
95
93
 
96
 
  ProtocolCounters *counters;
 
94
  ProtocolCounters& counters;
97
95
 
98
96
  virtual int getFileDescriptor(void);
99
97
  virtual bool isConnected();
109
107
  virtual void sendEOF(void);
110
108
  virtual void sendError(const drizzled::error_t sql_errno, const char *err);
111
109
 
112
 
  virtual bool sendFields(drizzled::List<drizzled::Item> *list);
 
110
  virtual void sendFields(drizzled::List<drizzled::Item>&);
113
111
 
114
112
  using Client::store;
115
113
  virtual void store(drizzled::Field *from);
122
120
  virtual void store(const char *from, size_t length);
123
121
 
124
122
  virtual bool haveError(void);
125
 
  virtual bool haveMoreData(void);
126
123
  virtual bool wasAborted(void);
127
124
};
128
125