~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
2371.1.1 by Brian Aker
Fedora fix/use fwd header for iostream.
16
#pragma once
1 by brian
clean slate
17
1095.2.4 by Robert Klahn
changes from code review feedback
18
#include <vector>
1241.9.1 by Monty Taylor
Removed global.h. Fixed all the headers.
19
#include <sstream>
2371.1.1 by Brian Aker
Fedora fix/use fwd header for iostream.
20
#include <iosfwd>
1909.5.1 by Andrew Hutchings
Re-write of linebuffer to stop buffer overrrun and hopefully improve performance
21
#include <boost/iostreams/stream.hpp>
22
#include <boost/iostreams/device/file_descriptor.hpp>
1095.2.4 by Robert Klahn
changes from code review feedback
23
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
24
class LineBuffer
1 by brian
clean slate
25
{
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
26
public:
27
  LineBuffer(uint32_t max_size,FILE *file);
1095.2.4 by Robert Klahn
changes from code review feedback
28
  void addString(const std::string &argument);
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
29
  char *readline();
30
private:
1095.2.2 by Robert Klahn
convert logic to use std::stringstream for buffer
31
  FILE *file;
1095.2.4 by Robert Klahn
changes from code review feedback
32
  std::vector<char> line;
1909.5.1 by Andrew Hutchings
Re-write of linebuffer to stop buffer overrrun and hopefully improve performance
33
  std::iostream *file_stream;
1095.2.2 by Robert Klahn
convert logic to use std::stringstream for buffer
34
  uint32_t max_size;
1095.2.1 by Robert Klahn
Replace typedef struct LINE_BUFFER with class LineBuffer, encapsulating current logic
35
};