00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DCDT_CHANNEL_H
00026 #define DCDT_CHANNEL_H
00027
00028 #include <DCDT_Defs.h>
00029
00030 class DCDT_Msg;
00031
00034 class DCDT_Channel {
00035 public:
00036 DCDT_Channel(int AgoraID) {
00037 channel_type = 0;
00038 notify.type = HS_NOTIFY;
00039 answer.type = HS_ANSWER;
00040 notify.AgoraID = answer.AgoraID = AgoraID;
00041 }
00042 virtual void Open(int link_status = 0) = 0;
00043 virtual void Reopen(int link_status) = 0;
00048 virtual void Prepare(CommData *local, CommData *remote) = 0;
00049 virtual void ChooseChannel(int channel) = 0;
00050 virtual void WaitConn() = 0;
00051 virtual void StartConn() = 0;
00052 virtual void Send(const DCDT_Msg *msg) = 0;
00053 virtual void SendNotify() = 0;
00054 virtual void SendAnswer(CommData* to, CommData* local) = 0;
00055 virtual DCDT_Msg* Receive() = 0;
00056 virtual void ReceiveHS(HSMsgHeader*& header, CommData*& remote) = 0;
00057 virtual void Dispose() = 0;
00058 virtual void Close() = 0;
00059 virtual void KeepAlive() = 0;
00060
00062 virtual CommData* GetStartingCD() = 0;
00063 virtual unsigned int ReadStartingProfile() = 0;
00064 virtual CommData* GetCommData() = 0;
00065 virtual void SetTimers() = 0;
00066 virtual void SetLostTimer(int usec) = 0;
00067 virtual void LostTimerOn() = 0;
00068 virtual void LostTimerOff() = 0;
00069 virtual void SetConnTimer(int usec) = 0;
00070 virtual void ConnTimerOn() = 0;
00071 virtual void ConnTimerOff() = 0;
00072 virtual void SetSendTimer(int usec) = 0;
00073 virtual void SendTimerOn() = 0;
00074 virtual void SendTimerOff() = 0;
00075 virtual void UnblockSend() = 0;
00076 virtual void SetReceiveTimer(int usec) = 0;
00077 virtual void ReceiveTimerOn() = 0;
00078 virtual void ReceiveTimerOff() = 0;
00079 virtual void UnblockReceive() = 0;
00080 virtual void Restart(int link_status) = 0;
00081 virtual void Stop() = 0;
00082
00084 class ChannelErr
00085 {
00086 public:
00087 int errval;
00088 ChannelErr() { errval = 0; };
00089 ChannelErr(int err) { errval = err; };
00090 };
00091
00093 class TimeOut : public ChannelErr {};
00094
00095 protected:
00096 HSMsgHeader notify, answer, recvd;
00097 int channel_type;
00098 };
00099
00100
00101 #endif