mirror of
https://github.com/debauchee/barrier.git
synced 2025-07-26 21:08:47 +02:00
Initial commit of the synergy trunk sources from sf.net
This commit is contained in:
commit
958fa80d1d
429 changed files with 96848 additions and 0 deletions
75
lib/net/ISocketMultiplexerJob.h
Normal file
75
lib/net/ISocketMultiplexerJob.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* 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 ISOCKETMULTIPLEXERJOB_H
|
||||
#define ISOCKETMULTIPLEXERJOB_H
|
||||
|
||||
#include "IArchNetwork.h"
|
||||
#include "IInterface.h"
|
||||
|
||||
//! Socket multiplexer job
|
||||
/*!
|
||||
A socket multiplexer job handles events on a socket.
|
||||
*/
|
||||
class ISocketMultiplexerJob : public IInterface {
|
||||
public:
|
||||
//! @name manipulators
|
||||
//@{
|
||||
|
||||
//! Handle socket event
|
||||
/*!
|
||||
Called by a socket multiplexer when the socket becomes readable,
|
||||
writable, or has an error. It should return itself if the same
|
||||
job can continue to service events, a new job if the socket must
|
||||
be serviced differently, or NULL if the socket should no longer
|
||||
be serviced. The socket is readable if \p readable is true,
|
||||
writable if \p writable is true, and in error if \p error is
|
||||
true.
|
||||
|
||||
This call must not attempt to directly change the job for this
|
||||
socket by calling \c addSocket() or \c removeSocket() on the
|
||||
multiplexer. It must instead return the new job. It can,
|
||||
however, add or remove jobs for other sockets.
|
||||
*/
|
||||
virtual ISocketMultiplexerJob*
|
||||
run(bool readable, bool writable, bool error) = 0;
|
||||
|
||||
//@}
|
||||
//! @name accessors
|
||||
//@{
|
||||
|
||||
//! Get the socket
|
||||
/*!
|
||||
Return the socket to multiplex
|
||||
*/
|
||||
virtual CArchSocket getSocket() const = 0;
|
||||
|
||||
//! Check for interest in readability
|
||||
/*!
|
||||
Return true if the job is interested in being run if the socket
|
||||
becomes readable.
|
||||
*/
|
||||
virtual bool isReadable() const = 0;
|
||||
|
||||
//! Check for interest in writability
|
||||
/*!
|
||||
Return true if the job is interested in being run if the socket
|
||||
becomes writable.
|
||||
*/
|
||||
virtual bool isWritable() const = 0;
|
||||
|
||||
//@}
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue