#ifndef NETWORK_CHANNEL_HH
#define NETWORK_CHANNEL_HH
#include "Packet.hh"
#include "../Types.hh"
/**
* A NetworkSession puts each packet onto a specific channel, which can the be used to run multiple different modules
* on top of a single session.
*
* NetworkChannelID zero is reserved for internal NetworkSession use
*/
typedef uint16_t NetworkChannelID;
/**
* NetworkPackets that are sent over a NetworkChannel with the proper headers
*
* XXX: use of NetworkPacket is bad
*/
class NetworkChannelPacket : public NetworkPacket {
public:
/**
* Initialize the packet by writing out the appropriate NetworkSession headers
*/
NetworkChannelPacket (NetworkChannelID channel_id);
};
#endif /* NETWORK_CHANNEL_HH */