00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef MNRTP_EVENT_H
00025
#define MNRTP_EVENT_H
00026
00027
#include "MNRTPutildefs.h"
00028
00029
class MNRTPevent;
00030
00031 typedef MNRTPevent*
MNRTPeventptr;
00032
00033 class MNRTPevent
00034 {
00035
private:
00036
MNRTPeventptr StreamEventPtr;
00037
virtual void StreamEvent(
stream_event_t ,
int ) {}
00038
00039
MNRTPeventptr StreamErrorPtr;
00040
virtual void StreamError(
int ,
int ) {}
00041
00042
MNRTPeventptr StreamGetFnamePtr;
00043
virtual char* StreamGetFname() {
return NULL;}
00044
00045
MNRTPeventptr StreamGetUDPPtr;
00046
virtual int StreamGetUDP() {
return 0;}
00047
00048
MNRTPeventptr StreamGetUDPtargetPtr;
00049
virtual char* StreamGetUDPtarget(
int ) {
return NULL;}
00050
00051
public:
00052 MNRTPevent()
00053 {
00054 StreamEventPtr = NULL;
00055 StreamErrorPtr = NULL;
00056 StreamGetFnamePtr = NULL;
00057 StreamGetUDPPtr = NULL;
00058 StreamGetUDPtargetPtr = NULL;
00059 }
00060
00061 virtual ~MNRTPevent() { }
00062
00063
00064 inline void StreamEventCall(
stream_event_t event,
int fd)
00065 {
00066
if (StreamEventPtr !=NULL) StreamEventPtr->
StreamEvent(event, fd);
00067 }
00068
00069 inline void register_StreamEvent(MNRTPeventptr p)
00070 {
00071 StreamEventPtr = p;
00072 }
00073
00074
00075 inline void StreamErrorCall(
int error,
int fd)
00076 {
00077
if (StreamErrorPtr != NULL) StreamErrorPtr->
StreamError(error, fd);
00078 }
00079 inline void register_StreamError(MNRTPeventptr p)
00080 {
00081 StreamErrorPtr = p;
00082 }
00083
00084
00085 inline char*
StreamGetFnameCall()
00086 {
00087
if (StreamGetFnamePtr != NULL)
00088
return StreamGetFnamePtr->
StreamGetFname();
00089
else
00090
return NULL;
00091 }
00092 inline void register_StreamGetFname(MNRTPeventptr p)
00093 {
00094 StreamGetFnamePtr = p;
00095 }
00096
00097
00098 inline int StreamGetUDPCall()
00099 {
00100
if (StreamGetUDPPtr != NULL)
00101
return StreamGetUDPPtr->
StreamGetUDP();
00102
else
00103
return 0;
00104 }
00105 inline void register_StreamGetUDP(MNRTPeventptr p)
00106 {
00107 StreamGetUDPPtr = p;
00108 }
00109
00110 inline char*
StreamGetUDPtargetCall(
int port)
00111 {
00112
if (StreamGetUDPtargetPtr != NULL)
00113
return StreamGetUDPtargetPtr->
StreamGetUDPtarget(port);
00114
else
00115
return NULL;
00116 }
00117 inline void register_StreamGetUDPtarget(MNRTPeventptr p)
00118 {
00119 StreamGetUDPtargetPtr = p;
00120 }
00121
00122 };
00123
00124
#endif
00125