Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
PacketStreamFilter Class Reference

Packetizing stream filter. More...

#include <PacketStreamFilter.h>

Inheritance diagram for PacketStreamFilter:
Collaboration diagram for PacketStreamFilter:

Public Member Functions

 PacketStreamFilter (IEventQueue *events, deskflow::IStream *stream, bool adoptStream=true)
 ~PacketStreamFilter () override=default
void close () override
 Close the stream.
uint32_t read (void *buffer, uint32_t n) override
 Read from stream.
void write (const void *buffer, uint32_t n) override
 Write to stream.
void shutdownInput () override
 Shutdown input.
bool isReady () const override
 Test if read() will succeed.
uint32_t getSize () const override
 Get bytes available to read.
Public Member Functions inherited from StreamFilter
 StreamFilter (IEventQueue *events, deskflow::IStream *stream, bool adoptStream=true)
 StreamFilter (StreamFilter const &)=delete
 StreamFilter (StreamFilter &&)=delete
 ~StreamFilter () override
StreamFilteroperator= (StreamFilter const &)=delete
StreamFilteroperator= (StreamFilter &&)=delete
void close () override
 Close the stream.
uint32_t read (void *buffer, uint32_t n) override
 Read from stream.
void write (const void *buffer, uint32_t n) override
 Write to stream.
void flush () override
 Flush the stream.
void shutdownInput () override
 Shutdown input.
void shutdownOutput () override
 Shutdown output.
void * getEventTarget () const override
 Get event target.
bool isReady () const override
 Test if read() will succeed.
uint32_t getSize () const override
 Get bytes available to read.
deskflow::IStreamgetStream () const
 Get the stream.
Public Member Functions inherited from deskflow::IStream
 IStream ()=default
Public Member Functions inherited from IInterface
virtual ~IInterface ()=default
 Interface destructor does nothing.

Protected Member Functions

void filterEvent (const Event &) override
 Handle events from source stream.

Detailed Description

Packetizing stream filter.

Filters a stream to read and write packets.

Constructor & Destructor Documentation

◆ PacketStreamFilter()

PacketStreamFilter::PacketStreamFilter ( IEventQueue * events,
deskflow::IStream * stream,
bool adoptStream = true )

◆ ~PacketStreamFilter()

PacketStreamFilter::~PacketStreamFilter ( )
overridedefault

Member Function Documentation

◆ close()

void PacketStreamFilter::close ( )
overridevirtual

Close the stream.

Closes the stream. Pending input data and buffered output data are discarded. Use flush() before close() to send buffered output data. Attempts to read() after a close return 0, attempts to write() generate output error events, and attempts to flush() return immediately.

Implements deskflow::IStream.

◆ filterEvent()

void PacketStreamFilter::filterEvent ( const Event & event)
overrideprotectedvirtual

Handle events from source stream.

Does the event filtering. The default simply dispatches an event identical except using this object as the event target.

Reimplemented from StreamFilter.

◆ getSize()

uint32_t PacketStreamFilter::getSize ( ) const
overridevirtual

Get bytes available to read.

Returns a conservative estimate of the available bytes to read (i.e. a number not greater than the actual number of bytes). Some streams may not be able to determine this and will always return zero.

Implements deskflow::IStream.

◆ isReady()

bool PacketStreamFilter::isReady ( ) const
overridevirtual

Test if read() will succeed.

Returns true iff an immediate read() will return data. This may or may not be the same as getSize() > 0, depending on the stream type.

Implements deskflow::IStream.

◆ read()

uint32_t PacketStreamFilter::read ( void * buffer,
uint32_t n )
overridevirtual

Read from stream.

Read up to n bytes into buffer, returning the number read (zero if no data is available or input is shutdown). buffer may be nullptr in which case the data is discarded.

Implements deskflow::IStream.

◆ shutdownInput()

void PacketStreamFilter::shutdownInput ( )
overridevirtual

Shutdown input.

Shutdown the input side of the stream. Any pending input data is discarded and further reads immediately return 0.

Implements deskflow::IStream.

◆ write()

void PacketStreamFilter::write ( const void * buffer,
uint32_t n )
overridevirtual

Write to stream.

Write n bytes from buffer to the stream. If this can't complete immediately it will block. Data may be buffered in order to return more quickly. A output error event is generated when writing fails.

Implements deskflow::IStream.


The documentation for this class was generated from the following files: