mirror of
https://github.com/debauchee/barrier.git
synced 2024-12-20 17:41:52 +03:00
848aee7a3a
event loop model. Streams, stream filters, and sockets are converted. Client proxies are almost converted. CServer is in progress. Removed all HTTP code. Haven't converted the necessary win32 arch stuff.
82 lines
2.3 KiB
C++
82 lines
2.3 KiB
C++
/*
|
|
* synergy -- mouse and keyboard sharing utility
|
|
* Copyright (C) 2004 Chris Schoeneman
|
|
*
|
|
* This package is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* found in the file COPYING that should have accompanied this file.
|
|
*
|
|
* This package is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef IDATASOCKET_H
|
|
#define IDATASOCKET_H
|
|
|
|
#include "ISocket.h"
|
|
#include "IStream.h"
|
|
|
|
//! Data stream socket interface
|
|
/*!
|
|
This interface defines the methods common to all network sockets that
|
|
represent a full-duplex data stream.
|
|
*/
|
|
class IDataSocket : public ISocket, public IStream {
|
|
public:
|
|
//! @name manipulators
|
|
//@{
|
|
|
|
//! Connect socket
|
|
/*!
|
|
Attempt to connect to a remote endpoint. This returns immediately
|
|
and sends a connected event when successful or a connection failed
|
|
event when it fails. The stream acts as if shutdown for input and
|
|
output until the stream connects.
|
|
*/
|
|
virtual void connect(const CNetworkAddress&) = 0;
|
|
|
|
//@}
|
|
//! @name accessors
|
|
//@{
|
|
|
|
//! Get connected event type
|
|
/*!
|
|
Returns the socket connected event type. A socket sends this
|
|
event when a remote connection has been established.
|
|
*/
|
|
static CEvent::Type getConnectedEvent();
|
|
|
|
//! Get connection failed event type
|
|
/*!
|
|
Returns the socket connection failed event type. A socket sends
|
|
this event when an attempt to connect to a remote port has failed.
|
|
*/
|
|
static CEvent::Type getConnectionFailedEvent();
|
|
|
|
//@}
|
|
|
|
// ISocket overrides
|
|
virtual void bind(const CNetworkAddress&) = 0;
|
|
virtual void close() = 0;
|
|
virtual void* getEventTarget() const = 0;
|
|
|
|
// IStream overrides
|
|
virtual UInt32 read(void* buffer, UInt32 n) = 0;
|
|
virtual void write(const void* buffer, UInt32 n) = 0;
|
|
virtual void flush() = 0;
|
|
virtual void shutdownInput() = 0;
|
|
virtual void shutdownOutput() = 0;
|
|
virtual void setEventFilter(IEventJob* filter) = 0;
|
|
virtual bool isReady() const = 0;
|
|
virtual UInt32 getSize() const = 0;
|
|
virtual IEventJob* getEventFilter() const = 0;
|
|
|
|
private:
|
|
static CEvent::Type s_connectedEvent;
|
|
static CEvent::Type s_failedEvent;
|
|
};
|
|
|
|
#endif
|