00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MDWSTREAMSERVERAPI_H
00021 #define MDWSTREAMSERVERAPI_H
00022 #include <string>
00023 #include <vector>
00024
00025 namespace mdw
00026 {
00027 class Stream;
00028 class StreamInfo
00029 {
00030 public:
00031 std::string &getIp()
00032 {
00033 return _ip;
00034 }
00035 void setIp (const std::string &ip)
00036 {
00037 _ip = ip;
00038 }
00039 int getStreamId()
00040 {
00041 return _id;
00042 }
00043 void setStreamId (int id)
00044 {
00045 _id = id;
00046 }
00047 private:
00048 int _id;
00049 std::string _ip;
00050 };
00054 class StreamServerVisitor
00055 {
00056 public:
00057 virtual void visitRead (char *buffer, int size, StreamInfo &info) = 0;
00058 virtual void visitConnect (StreamInfo &info) = 0;
00059 virtual void visitDisconnect (StreamInfo &info) = 0;
00060 };
00061
00062 class StreamSizeServerVisitor
00063 {
00064 public:
00065 virtual void visitRead (char * buffer, int size, int currentOffset,
00066 int currentTotalSize, StreamInfo &info) = 0;
00067 virtual void visitConnect (StreamInfo &info) = 0;
00068 virtual void visitDisconnect (StreamInfo &info) = 0;
00069 };
00070
00071
00072 class StreamServer
00073 {
00074 public:
00075 virtual void accept (StreamServerVisitor &visitor, int timeOutSec, int timeOutMicro) = 0;
00076 virtual void write (const char *buffer, int size, int streamId) = 0;
00077 virtual Stream &outStream (int streamId) = 0;
00078 virtual void close (int streamId) = 0;
00079 };
00080
00081 class StreamSizeServer : public StreamServer
00082 {
00083 public:
00084 virtual void accept (StreamSizeServerVisitor &visitor, int timeOutSec, int timeOutMicro) = 0;
00085 };
00086
00087 }
00088
00089 #endif