/*! * @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(Synchronizeable& sync); DataStream(DataStream& inStream, DataStream& outStream); DataStream(Synchronizeable& sync, NetworkSocket& socket); DataStream(DataStream& inStream, NetworkSocket& socket); DataStream(Synchronizeable& sync, DataStream& outStream); ~DataStream(); void connectNetworkSocket(NetworkSocket& socket); void disconnectNetworkSocket(); void connectSynchronizeable(Synchronizeable& sync); void disconnectSynchronizeable(); 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; NetworkSocket* networkSocket; Synchronizeable* sync; }; #endif /* _DATA_STREAM_ */