E-MailRelay

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

gbufferedserverpeer.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2018 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 "gbufferedserverpeer.h"
23 #include "gstr.h"
24 #include "glog.h"
25
26 GNet::BufferedServerPeer::BufferedServerPeer( Server::PeerInfo peer_info , LineBufferConfig line_buffer_config ) :
27 ServerPeer(peer_info) ,
28 m_line_buffer(line_buffer_config)
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 while( m_line_buffer.more() )
40 {
41 if( !onReceive( m_line_buffer.lineData() , m_line_buffer.lineSize() , m_line_buffer.eolSize() ) )
42 break ;
43 }
44 }
45
46 void GNet::BufferedServerPeer::expect( size_t n )
47 {
48 m_line_buffer.expect( n ) ;
49 }
50
51 std::string GNet::BufferedServerPeer::lineBufferEndOfLine() const
52 {
53 return m_line_buffer.eol() ;
54 }
55
56 /// \file gbufferedserverpeer.cpp
GNet::ServerPeer
An abstract base class for the GNet::Server's connection to a remote client.
Definition: gserver.h:173
glog.h
GNet::BufferedServerPeer::lineBufferEndOfLine
std::string lineBufferEndOfLine() const
Returns the line buffer end-of-line string.
Definition: gbufferedserverpeer.cpp:51
GNet::BufferedServerPeer::BufferedServerPeer
BufferedServerPeer(Server::PeerInfo, LineBufferConfig)
Constructor.
Definition: gbufferedserverpeer.cpp:26
gbufferedserverpeer.h
gstr.h
GNet::LineBufferConfig
A configuration structure for GNet::LineBuffer.
Definition: glinebuffer.h:174
GNet::BufferedServerPeer::expect
void expect(size_t n)
Temporarily suspends line buffering so that the next 'n' bytes are accumulated without regard to line...
Definition: gbufferedserverpeer.cpp:46
GNet::BufferedServerPeer::onData
virtual void onData(const char *, ServerPeer::size_type) override
Override from GNet::SocketProtocolSink.
Definition: gbufferedserverpeer.cpp:36
GNet::BufferedServerPeer::~BufferedServerPeer
virtual ~BufferedServerPeer()
Destructor.
Definition: gbufferedserverpeer.cpp:32
GNet::Server::PeerInfo
A structure used in GNet::Server::newPeer().
Definition: gserver.h:85