NetLink Sockets C++  1.0.0
Networking C++ Library
 All Classes Namespaces Files Functions Enumerations Enumerator Pages
smart_buffer.inline.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 #ifdef DOXYGEN
24  #include <netlink/smart_buffer.h>
25  NL_NAMESPACE
26 #endif
27 
28 
35 inline const void* SmartBuffer::operator*() const {
36 
37  return _buffer;
38 }
39 
40 
50 inline const char* SmartBuffer::operator[](size_t index) const {
51 
52  if(index >= _usedSize)
53  throw Exception(Exception::OUT_OF_RANGE, "SmartBuffer::operator[]: index out of range");
54 
55  return (char*) _buffer + index;
56 }
57 
64 inline const void* SmartBuffer::buffer() const {
65 
66  return _buffer;
67 }
68 
75 inline size_t SmartBuffer::size() const {
76 
77  return _usedSize;
78 }
79 
86 inline void SmartBuffer::clear() {
87 
88  _usedSize = 0;
89 }
90 
91 #ifdef DOXYGEN
92  NL_NAMESPACE_END
93 #endif
94