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 
33 {
34 }
35 
37 {
38  m_line_buffer.add(p,n) ;
39  LineBufferIterator iter( m_line_buffer ) ;
40  while( iter.more() && onReceive(iter.line()) )
41  ;
42 }
43 
An abstract base class for the GNet::Server's connection to a remote client.
Definition: gserver.h:191
bool more() const
Returns true if there is a line() to be had.
An iterator class for GNet::LineBuffer.
Definition: glinebuffer.h:112
virtual void onData(const char *, ServerPeer::size_type)
Final override from GNet::SocketProtocolSink.
const std::string & line()
Returns the current line and increments the iterator.
BufferedServerPeer(Server::PeerInfo, const std::string &eol)
Constructor.
virtual ~BufferedServerPeer()
Destructor.
A structure used in GNet::Server::newPeer().
Definition: gserver.h:91
std::string::size_type size_type
Definition: gserver.h:194