1 /*
2 * Buffer.hpp
3 *
4 * Copyright (C) 2012 Evidence Srl - www.evidence.eu.com
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #ifndef BUFFER_HPP_
22 #define BUFFER_HPP_
23
24
25
26 namespace onposix {
27
28 /**
29 * \brief Very simple buffer with control on overflow.
30 *
31 * This is a simple buffer, internally allocated as a char buffer with new
32 * and delete.
33 * With respect to hand-made buffers, it adds the check on boundaries.
34 */
36 /**
37 * \brief Current size of the buffer.
38 */
40
41 /**
42 * \brief Pointer to the allocated memory.
43 */
45
46 // Disable default copy constructor
48
49 public:
50 explicit Buffer(
unsigned long int size);
53 unsigned long int fill(
const char* src,
unsigned long int size);
54 unsigned long int fill(
Buffer* b,
unsigned long int size);
56 bool compare(
const char* s,
unsigned long int size);
57
58 /**
59 * \brief Method to get a pointer to the buffer.
60 *
61 * @return position of the first byte
62 */
64 return reinterpret_cast<char*
> (
data_);
65 }
66
67 /**
68 * \brief Method to get the size of the buffer
69 *
70 * @return Size of the buffer
71 */
72 inline unsigned long int getSize()
const {
74 }
75
76 inline unsigned long int fill(
char* src,
unsigned long int size) {
77 return fill (reinterpret_cast<const char*> (src), size);
78 }
79 };
80
81 } /* onposix */
82
83 #endif /* BUFFER_HPP_ */