UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
dbuffer.h
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include <sys/types.h>
8 #include <vector>
9 #include "../shared/sharedptr.h"
10 
11 
19 class dbuffer
20 {
21 private:
24  size_t _length;
25  std::vector<char> _data;
26 
27 public:
28  dbuffer (int reserve = 512);
29  dbuffer (const dbuffer& other);
30  virtual ~dbuffer ();
31 
32  /* Append the given byte string to the buffer */
33  void add (const char* , size_t);
34  /* Read the given number of bytes from the start of the buffer */
35  size_t get (char* , size_t) const;
36  /* Read the given number of bytes from the given position */
37  size_t getAt (size_t, char* , size_t) const;
38  /* Remove the given number of bytes from the start of the buffer */
39  size_t remove (size_t);
40  /* Read and remove in one pass */
41  size_t extract (char* , size_t);
42 
43  size_t length () const;
44 };
45 
47 
48 inline size_t dbuffer::length () const
49 {
50  return _length;
51 }
dbuffer(int reserve=512)
Definition: dbuffer.cpp:27
size_t getAt(size_t, char *, size_t) const
Read data from a dbuffer.
Definition: dbuffer.cpp:86
std::vector< char > _data
Definition: dbuffer.h:25
void add(const char *, size_t)
Definition: dbuffer.cpp:42
size_t _length
Definition: dbuffer.h:24
SharedPtr< dbuffer > dbufferptr
Definition: dbuffer.h:46
size_t extract(char *, size_t)
Read and delete data from a dbuffer.
Definition: dbuffer.cpp:136
virtual ~dbuffer()
Definition: dbuffer.cpp:38
size_t length() const
Definition: dbuffer.h:48