Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/network/network_stream.h @ 5996

Last change on this file since 5996 was 5996, checked in by patrick, 18 years ago

orxonox/trunk: merged network branche into trunk with command svn merge -r 5824:HEAD

File size: 1.5 KB
RevLine 
[5566]1/*!
2 * @file network_stream.h
3 *  implementation of a network pipe
4 */
[5587]5
[5566]6#ifndef _NETWORK_STREAM
7#define _NETWORK_STREAM
8
[5582]9#include "data_stream.h"
[5809]10#include "network_protocol.h"
[5566]11
[5647]12class Synchronizeable;
13class NetworkSocket;
14class ConnectionMonitor;
[5741]15class NetworkProtocol;
[5589]16
[5809]17
18//<! The state of the NetworkStream
19typedef enum NetStat {
20  NET_REC_HEADER = 0,                          //!< Waiting for header
21  NET_REC_DATA,                                //!< Waiting for data
22
23  NUM_STATES                                   //!< Number of states
24};
25
26
[5649]27class NetworkStream : public DataStream
[5566]28{
29
[5996]30  public:
31    NetworkStream();
32    NetworkStream(IPaddress& address, NodeType type);
33    NetworkStream(unsigned int port, NodeType type);
[5804]34
[5996]35    NetworkStream(IPaddress& address, Synchronizeable& sync, NodeType type);
36    NetworkStream(unsigned int port, Synchronizeable& sync, NodeType type);
37    ~NetworkStream();
38    void init();
[5804]39
[5996]40    void connectSynchronizeable(Synchronizeable& sync);
[5566]41
[5996]42    inline bool isServer() const { return (this->type == NET_SERVER)? true:false; }
43    inline bool isActive() const { return this->bActive; }
44
45    virtual void processData();
46
47  private:
48    NetworkProtocol*       networkProtocol;
49    ConnectionMonitor*     connectionMonitor;
50    Synchronizeable*       synchronizeables;
51    NetworkSocket*         networkSocket;
52    int                    type;
53    int                    state;
54    Header                 packetHeader;
55    bool                   bActive;
[5587]56};
[5566]57#endif /* _NETWORK_STREAM */
Note: See TracBrowser for help on using the repository browser.