~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
/* Copyright (C) 2000 MySQL AB
2
3
   This program is free software; you can redistribute it and/or modify
4
   it under the terms of the GNU General Public License as published by
5
   the Free Software Foundation; version 2 of the License.
6
7
   This program is distributed in the hope that it will be useful,
8
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
   GNU General Public License for more details.
11
12
   You should have received a copy of the GNU General Public License
13
   along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1 by brian
clean slate
15
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
16
#ifndef CLIENT_LINEBUFFER_H
17
#define CLIENT_LINEBUFFER_H
1 by brian
clean slate
18
1095.2.4 by Robert Klahn
changes from code review feedback
19
#include <vector>
1241.9.1 by Monty Taylor
Removed global.h. Fixed all the headers.
20
#include <sstream>
1909.5.1 by Andrew Hutchings
Re-write of linebuffer to stop buffer overrrun and hopefully improve performance
21
#include <iostream>
22
#include <boost/iostreams/stream.hpp>
23
#include <boost/iostreams/device/file_descriptor.hpp>
1095.2.4 by Robert Klahn
changes from code review feedback
24
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
25
class LineBuffer
1 by brian
clean slate
26
{
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
27
public:
28
  LineBuffer(uint32_t max_size,FILE *file);
1095.2.4 by Robert Klahn
changes from code review feedback
29
  void addString(const std::string &argument);
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
30
  char *readline();
31
private:
1095.2.2 by Robert Klahn
convert logic to use std::stringstream for buffer
32
  FILE *file;
1095.2.4 by Robert Klahn
changes from code review feedback
33
  std::vector<char> line;
1909.5.1 by Andrew Hutchings
Re-write of linebuffer to stop buffer overrrun and hopefully improve performance
34
  std::iostream *file_stream;
1095.2.2 by Robert Klahn
convert logic to use std::stringstream for buffer
35
  uint32_t max_size;
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
36
};
1 by brian
clean slate
37
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
38
#endif /* CLIENT_LINEBUFFER_H */