- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

gbufferedserverpeer.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2013 Graeme Walker <graeme_walker@users.sourceforge.net>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 //
18 // gbufferedserverpeer.cpp
19 //
20
21 #include "gdef.h"
22 #include "gnet.h"
23 #include "gbufferedserverpeer.h"
24 #include "glog.h"
25
26 GNet::BufferedServerPeer::BufferedServerPeer( Server::PeerInfo peer_info , const std::string & eol ) :
27 ServerPeer(peer_info) ,
28 m_line_buffer(eol)
29 {
30 }
31
32 GNet::BufferedServerPeer::~BufferedServerPeer()
33 {
34 }
35
36 void GNet::BufferedServerPeer::onData( const char * p , ServerPeer::size_type n )
37 {
38 m_line_buffer.add(p,n) ;
39 LineBufferIterator iter( m_line_buffer ) ;
40 while( iter.more() && onReceive(iter.line()) )
41 ;
42 }
43
GNet::ServerPeer
An abstract base class for the GNet::Server's connection to a remote client.
Definition: gserver.h:191
glog.h
GNet::LineBufferIterator::more
bool more() const
Returns true if there is a line() to be had.
Definition: glinebuffer.cpp:138
GNet::LineBufferIterator
An iterator class for GNet::LineBuffer.
Definition: glinebuffer.h:112
GNet::BufferedServerPeer::onData
virtual void onData(const char *, ServerPeer::size_type)
Final override from GNet::SocketProtocolSink.
Definition: gbufferedserverpeer.cpp:36
gbufferedserverpeer.h
GNet::LineBufferIterator::line
const std::string & line()
Returns the current line and increments the iterator.
Definition: glinebuffer.cpp:143
GNet::BufferedServerPeer::BufferedServerPeer
BufferedServerPeer(Server::PeerInfo, const std::string &eol)
Constructor.
Definition: gbufferedserverpeer.cpp:26
GNet::BufferedServerPeer::~BufferedServerPeer
virtual ~BufferedServerPeer()
Destructor.
Definition: gbufferedserverpeer.cpp:32
GNet::Server::PeerInfo
A structure used in GNet::Server::newPeer().
Definition: gserver.h:91
GNet::ServerPeer::size_type
std::string::size_type size_type
Definition: gserver.h:194