/*! * @file data_stream.h * Main class for a data stream, used for our network stream * network stream will get data, and will send it with a network socket * to another network stream */ #ifndef _DATA_STREAM_H #define _DATA_STREAM_H #include "base_object.h" #include "netdefs.h" class Synchronizeable; class NetworkSocket; class DataStream : public BaseObject { public: DataStream(DataStream& upStream, DataStream& downStream); DataStream(Synchronizeable& sync, NetworkSocket& socket); DataStream(DataStream& upStream, NetworkSocket& socket); DataStream(Synchronizeable& sync, DataStream& downStream); ~DataStream(); void connectUpStream(DataStream& upStream); void disconnectUpStream(); void connectDownStream(DataStream& downStream); void disconnectDownStream(); virtual void processData() = 0; protected: void writeBytes(byte& data); byte& readBytes(); byte inBuffer []; byte outBuffer []; unsigned int bufferSize; DataStream* upStream; DataStream* downStream; }; #endif /* _DATA_STREAM_ */