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
00026
00027
00028
00029
00030 #if !defined( FmsAuthEvents_H )
00031 #define FmsAuthEvents_H
00032
00033 #include "FmsAdaptor.h"
00034
00035 class IFmsDisconnectAction;
00036 class IFmsNotifyAction;
00037
00043 class IFmsAuthEvent
00044 {
00045 public:
00046
00050 enum EventType {
00051 E_APPSTART = 0,
00052 E_APPSTOP,
00053 E_CONNECT,
00054 E_DISCONNECT,
00055 E_FILENAME_TRANSFORM,
00056 E_PLAY,
00057 E_STOP,
00058 E_SEEK,
00059 E_PAUSE,
00060 E_PUBLISH,
00061 E_UNPUBLISH,
00062 E_LOADSEGMENT,
00063 E_ACTION,
00064 E_MAXEVENT
00065 };
00066
00070 enum Field {
00071 F_CLIENT_URI = 0,
00072 F_CLIENT_ID,
00073 F_CLIENT_IP,
00074 F_CLIENT_SECURE,
00075 F_CLIENT_VHOST,
00076 F_CLIENT_REFERRER,
00077 F_CLIENT_PAGE_URL,
00078 F_CLIENT_AMF_ENCODING,
00079 F_CLIENT_USER_AGENT,
00080 F_CLIENT_READ_ACCESS,
00081 F_CLIENT_WRITE_ACCESS,
00082 F_CLIENT_READ_ACCESS_LOCK,
00083 F_CLIENT_WRITE_ACCESS_LOCK,
00084 F_CLIENT_AUDIO_CODECS,
00085 F_CLIENT_VIDEO_CODECS,
00086 F_CLIENT_TYPE,
00087 F_CLIENT_PROTO,
00088 F_CLIENT_URI_STEM,
00089 F_APP_URI,
00090 F_APP_NAME,
00091 F_APP_INST,
00092 F_STREAM_NAME,
00093 F_STREAM_PATH,
00094 F_STREAM_TYPE,
00095 F_STREAM_LENGTH,
00096 F_STREAM_POSITION,
00097 F_STREAM_IGNORE,
00098 F_STREAM_RESET,
00099 F_STREAM_QUERY,
00100
00101 F_CLIENT_AUDIO_SAMPLE_ACCESS,
00102 F_CLIENT_VIDEO_SAMPLE_ACCESS,
00103 F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK,
00104 F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK,
00105 F_CLIENT_REDIRECT_URI,
00106 F_STREAM_PAUSE,
00107 F_STREAM_PAUSE_TIME,
00108 F_STREAM_PAUSE_TOGGLE,
00109 F_STREAM_SEEK_POSITION,
00110 F_STREAM_PUBLISH_TYPE,
00111 F_STREAM_PUBLISH_BROADCAST,
00112 F_SEGMENT_START,
00113 F_SEGMENT_END,
00114 F_MAXFIELD
00115 };
00116
00120 enum Status {
00121 S_SUCCESS = 0,
00122 S_INVALID_FIELD,
00123 S_INVALID_TYPE,
00124 S_INVALID_VALUE,
00125 S_READ_ONLY
00126 };
00127
00131 virtual EventType getType() const = 0;
00132
00136 virtual Status getField(Field fn, FmsVariant& field) const = 0;
00137
00141 virtual Status setField(Field fn, const FmsVariant& field) = 0;
00142
00147 class IFmsAction
00148 {
00149 public:
00150
00154 enum ActionType {
00155 A_DISCONNECT = 0,
00156 A_CLIENTNOTIFY,
00157 A_MAXACTION
00158 };
00159
00165 virtual ActionType getType() const = 0;
00166 };
00167
00182 virtual IFmsDisconnectAction* addDisconnectAction(const char* strText = 0) = 0;
00183
00198 virtual IFmsNotifyAction* addNotifyAction(const char* strText = 0) = 0;
00199
00200 protected:
00201
00208 IFmsAuthEvent() {}
00209
00216 IFmsAuthEvent(const IFmsAuthEvent& aev) {}
00217
00218 bool operator==(const IFmsAuthEvent& aev) const {}
00219
00226 virtual ~IFmsAuthEvent() {}
00227
00228 friend class EventContext;
00229
00230 };
00231
00232 #endif