DataStream
Short description of the module and its functions:
Next Steps:
- Create an inBuffer of 1kByte
- Create an outBuffer of 1kByte
- Look at the new Constructor interface, change it accordingly
/* general notes:
- The Stream function has some attributes, functions called up* and down* (eg. connectUpStream). The
up direction signifies the direction from the network socket up to the Orxonox objects/classes.
*/
/* public functions */
public:
/*
* This constructor creates a new DataStream and connects it to both streams (upStream, downStream)
*/
DataStream(DataStream& upStream, DataStream& downStream);
/*
* This function connects this stream to another stream. The connected DataStream is an up-stream, meaning
* that the stream is "further away" from the NetworkSocket. The local reference upStream will be set to this
* Stream
*/
void connectUpStream(DataStream& upStream);
/*
* This function connects this stream to another stream. The connected DataStream is an down-stream, meaning
* that the stream is "closer" to the NetworkSocket.
*/
void connectDownStream(DataStream& downStream);
/*
* This function disconnects the upStream and sets it to NULL
*/
void disconnectUpStream();
/*
* This function disconnects the downStream and sets it to NULL
*/
void disconnectDownStream();
/*
* This function moves the data from the downStream object to the upStream object and changes the data if
* necessary. This function is virtual and therefore needs to be extended by the derived class
*/
virtual void processData() = 0;
/* protected functions - only visible inside the object and from derived classes */
proteced:
/*
* This function returns a reference to the local upData data array. So it can be read by an upper Stream
* The reading function will have to copy the whole data and musn't just reference it!
* This function is only called from other connected DataStreams to read the data.
*
* @param data: the binary array
* @return: the length of the data
*/
virtual int passUp(byte* data);
/*
* This function writes the binary data to the local data. You will have to copy each byte and not only
* dublicate it.
*
* @param data: the binary array
* @param length: the length of the array
*/
virtual void passDown(byte* data, int length);







