精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
角色(Role)为模块提供一个定义良好的状态,以执行特定类型的处理。系统用类型为QTSS_Role的选择器(selector)来定义每个角色,表示服务器的内部处理状态及服务器数据的数字,以及服务器数据的可访问性和正当性。根据角色的不同,服务器可能把一个或者多个QTSS对象传递给模块。通常情况下,服务器使用对象来和模块进行信息交换。如果需要更多关于QTSS对象的信息,请参见“QTSS对象”部分。
表 1-1列出这个版本的QuickTime流媒体服务器支持的角色。
名称 | 常数 | 任务 |
---|---|---|
Register(注册)角色 | QTSS_Register_Role | 注册模块支持的角色。 |
Initialize(初始化)角色 | QTSS_Initialize_Role | 执行模块的初始化任务。 |
Shutdown(关闭)角色 | QTSS_Shutdown_Role | 执行清除现场任务。 |
Reread Preferences(再次读取预置信息)角色 | QTSS_RereadPrefs_Role | 重新读取模块的预置信息。 |
Error Log(错误纪录)角色 | QTSS_ErrorLog_Role | 记录错误信息。 |
RTSP Filter(过滤器)角色 | QTSS_RTSPFilter_Role | 修改RTSP请求的内容。 |
RTSP Route(路由)角色 | QTSS_RTSPRoute_Role | 把来自客户端的请求路由到恰当的文件夹。 |
RTSP Preprocessor(预处理器)角色 | QTSS_RTSPPreProcessor_Role | 在服务器处理客户请求之前,先行进行处理。 |
RTSP Request(请求)角色 | QTSS_RTSPRequest_Role | 在没有其它角色处理客户请求的情况下,对客户请求进行处理 |
RTSP Postprocessor(后处理器)角色 | QTSS_RTSPPostProcessor_Role | 在请求得到响应之后,执行诸如纪录统计信息这样的任务。 |
RTP Send Packets(发送数据包)角色 | QTSS_RTPSendPackets_Role | 发送数据包。 |
Client Session Closing(客户会话关闭)角色 | QTSS_ClientSessionClosing_Role | 在客户会话关闭时执行任务。 |
RTCP Process(处理)角色 | QTSS_RTCPProcess_Role | 处理RTCP接受方的报告。 |
Open File Preprocess(打开文件预处理)角色 | QTSS_OpenFilePreProcess_Role | 处理打开文件的请求。 |
Open File(打开文件)角色 | QTSS_OpenFile_Role | 处理没有被Open File Preprocess角色处理过的打开文件请求。 |
Advise File(建议文件)角色 | QTSS_AdviseFile_Role | 在模块(或者服务器)调用RQTSS_Advise回调函数,获取文件对象的时候,进行响应。 |
Read File(读取文件)角色 | QTSS_ReadFile_Role | 读取文件。 |
Request Event File(请求事件文件)角色 | QTSS_RequestEventFile_Role | 客户端可能请求接收当文件变为可供读取时发出的通知,这个角色负责处理这些请求。 |
Close File(关闭文件)角色 | QTSS_CloseFile_Role | 关闭先前打开的文件。 |
除了Register,Shutdown,和Reread Preferences这三个例外角色,服务器在调用模块的其它角色时,会根据角色的不同向模块传入特定的结构。该结构包含模块执行相应角色时需要使用的信息,或者为模块提供一种向服务器返回信息的途径。
RTSP角色都可以对客户端进行响应,这里所说的响应定义为模块向客户端发送任何数据。模块可以通过很多方式向客户端发送数据,比如可以调用QTSS_Write或者QTSS_WriteV函数来进行数据发送。
请注意:对于多个注册了某个角色的模块,在该角色被调用时,各个模块的调用顺序是不确定的。