NetLink Sockets C++
1.0.0
Networking C++ Library
Main Page
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Files
Functions
Enumerations
Enumerator
Pages
include
netlink
smart_buffer.h
1
/*
2
NetLink Sockets: Networking C++ library
3
Copyright 2012 Pedro Francisco Pareja Ruiz (PedroPareja@Gmail.com)
4
5
This file is part of NetLink Sockets.
6
7
NetLink Sockets is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 3 of the License, or
10
(at your option) any later version.
11
12
NetLink Sockets is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with NetLink Sockets. If not, see <http://www.gnu.org/licenses/>.
19
20
*/
21
22
23
#ifndef __NL_SMART_BUFFER
24
#define __NL_SMART_BUFFER
25
26
#include <stdlib.h>
27
#include <string.h>
28
29
#include <
netlink/core.h
>
30
#include <netlink/util.h>
31
#include <netlink/socket.h>
32
33
34
NL_NAMESPACE
35
36
46
class
SmartBuffer
{
47
48
private
:
49
50
void
* _buffer;
51
size_t
_usedSize;
52
size_t
_allocSize;
53
double
_reallocRatio;
54
55
public
:
56
57
SmartBuffer
(
size_t
allocSize = DEFAULT_SMARTBUFFER_SIZE,
double
reallocRatio = DEFAULT_SMARTBUFFER_REALLOC_RATIO);
58
SmartBuffer
(
SmartBuffer
& s);
59
~
SmartBuffer
();
60
61
const
void
* operator*()
const
;
62
const
char
* operator[](
size_t
index)
const
;
63
64
const
void
* buffer()
const
;
65
size_t
size()
const
;
66
67
void
read(
Socket
* socket);
68
69
void
clear();
70
71
SmartBuffer
& operator=(
SmartBuffer
& s);
72
};
73
74
#include <netlink/smart_buffer.inline.h>
75
76
NL_NAMESPACE_END
77
78
#endif
Generated on Fri Mar 7 2014 16:23:05 for NetLink Sockets C++ by
1.8.3.1