summaryrefslogtreecommitdiff
path: root/Bus/Ivy/BufferedSocket.h
blob: 3920e649db5b8b66979ab0714bf548967dae2c5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// BufferedSocket.h: interface for the CBufferedSocket class.
//
//////////////////////////////////////////////////////////////////////


#pragma once


#include "ThreadedSocket.h"

class CBufferedSocket : public CThreadedSocket  
{
//	DECLARE_DYNAMIC(CBufferedSocket)
public:
	CBufferedSocket();
	virtual ~CBufferedSocket();
	void OnReceive( int nErrorCode );
	void OnSend( int nErrorCode );
	void OnConnect(int nErrorCode);
	virtual void OnReceive( char *line );
	virtual void Accept(CBufferedSocket& rConnectedSocket,
		SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL);
	void SetSeparator( char sep );
	void Send ( const char * data );
protected:
	bool connected;	/* wait to be connected before sending any Data */
	char separator;
	/* buffer de reception de l'application */
	long buffer_size;
	char *buffer;
	char *current_ptr;
	// Buffer Emission
	CRITICAL_SECTION  m_CritSection;
	ivy::list<ivy::string> buf_out;
};