25 BasicUsageEnvironment0基本使用环境基类——Live555源码阅读(三)UsageEnvironment
这是Live555源码阅读的第三部分,包括了UsageEnvironment相关的三个类。
本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso
本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso
简介
BasicUsageEnvironment0
实现了其基类UsageEnvironment
的部分纯虚接口
(只有部分,其还是一个抽象类),并添加了三个数据成员。其定义在live555sourcecontrolBasicUsageEnvironmentincludeBasicUsageEnvironment0.hh
文件中。
代码定义如下
// An abstract base class, useful for subclassing
// (e.g., to redefine the implementation of "operator<<")
class BasicUsageEnvironment0 : public UsageEnvironment {
public:
// redefined virtual functions:重定义虚函数
//返回fResultMsgBuffer
virtual MsgString getResultMsg() const;
// 调用reset将消息结果buffer截空,再将msg(msg1-3)拷贝到buffer
virtual void setResultMsg(MsgString msg);
virtual void setResultMsg(MsgString msg1,
MsgString msg2);
virtual void setResultMsg(MsgString msg1,
MsgString msg2,
MsgString msg3);
//将msg设置到fResultMsgBuffer,支持_WIN32_WCE的平台会将err代表的错误消息也加入
virtual void setResultErrMsg(MsgString msg, int err = 0);
//将msg拷贝到fResultMsgBuffer可用部分,剩余空间不够时,只拷贝部分
virtual void appendToResultMsg(MsgString msg);
////将fResultMsgBuffer中的内容写入到标准错误
virtual void reportBackgroundError();
protected:
BasicUsageEnvironment0(TaskScheduler& taskScheduler);
virtual ~BasicUsageEnvironment0();
private:
void reset(); //截空buffer字符串(首元素置' ')
//消息处理结果缓冲
char fResultMsgBuffer[RESULT_MSG_BUFFER_MAX];
unsigned fCurBufferSize; //当前buffer已用大小
unsigned fBufferMaxSize; //最大buffer大小
};
BasicUsageEnvironment0构造析构与重置
把这三个放在一起,因为其内容很少。
构造的时候调用了基类UsageEnvironment
的构造,并把fBufferMaxSize
(buffer最大尺寸)的值设置为fResultMsgBuffer
数组的大小(见宏定义#define RESULT_MSG_BUFFER_MAX 1000
)并调用reset
重置buffer
。
reset方法用于重置buffer(这里说的buffer都代指
fResultMsgBuffer
字符串),其将fResultMsgBuffer的首元素置为’