1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/freeeyes-PSS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
PSSPluginAPI.md 41 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
lrqsf1982 Отправлено 23.10.2019 17:59 d4a6753

PSS插件允许使用核心API命令说明

1.信令增删改管理(IMessageManager)

说明:

这个接口提供插件可以任意的添加,删除,修改,对指定信令的关联。
比如你在运行时需要临时添加一个信令(0x1050)在自己插件处理,可以调用这个借口实现框架的绑定。

###在插件中使用方法: m_pServerObject->GetMessageManager()

###API列表:

接口名称 说明 接口参数
AddClientCommand 添加指定的信令 类型 参数名称 说明
uint16 u2CommandID 添加信令ID
CClientCommand* pClientCommand 对应信令处理类指针
const char* pModuleName 当前模块名称
_ClientIPInfo objListenInfo 信令绑定给指定的监听端口
bool 返回值 是否添加成功
AddClientCommand 添加指定的信令 类型 参数名称 说明
uint16 u2CommandID 添加信令ID
CClientCommand* pClientCommand 对应信令处理类指针
const char* pModuleName 当前模块名称
bool 返回值 是否添加成功
DelClientCommand 删除指定的信令 类型 参数名称 说明
uint16 u2CommandID 删除信令ID
CClientCommand* pClientCommand 对应信令处理类指针
bool 返回值 是否删除成功

2.日志输出管理(ILogManager)

说明:

这个接口提供插件日志的写入。 包括对文本和二进制数据的支持。
也可以用这个接口发送邮件给指定的邮件服务器。

###在插件中使用方法: m_pServerObject->GetLogManager()

###API列表:

接口名称 说明 接口参数
WriteLog 记录文本日志 类型 参数名称 说明
int nLogType 日志类型,这里你可以使用自己的类型,也可以使用框架提供的日志支持类型,框架支持的日志类型定义在logger.xml中
const char* fmt 日志内容
--- ... 日志内容参数
int 返回值 是否执行成功
WriteLogBinary 记录二进制日志 类型 参数名称 说明
int nLogType 日志类型,这里你可以使用自己的类型,也可以使用框架提供的日志支持类型,框架支持的日志类型定义在logger.xml中
const char* pClientCommand 二进制数据指针
int nLen 二进制数据长度
bool 返回值 是否执行成功
WriteToMail 发送邮件 类型 参数名称 说明
int nLogType 日志类型,这里你可以使用自己的类型,也可以使用框架提供的日志支持类型,框架支持的日志类型定义在logger.xml中
uint32 u4MailID 对应邮件配置参数ID,这个ID配置在alert.xml中的Mail信息中
const char* pTitle 邮件标题
const char* fmt 邮件内容
bool 返回值 是否添加成功

3.客户端连接管理(IConnectManager)

说明:

这个接口管理所有连接上PSS的客户端,并支持发送数据,查看状态等操作。

###在插件中使用方法: m_pServerObject->GetConnectManager()

###API列表:

接口名称 说明 接口参数
PostMessage 发送数据给指定的客户端 类型 参数名称 说明
uint32 u4ConnectID 客户端的连接ID
IBuffPacket*& pBuffPacket 要发送的内容
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
PostMessage 发送数据给指定的客户端 类型 参数名称 说明
uint32>/th> u4ConnectID 客户端的连接ID列表
char*& pData 要发送的数据内容指针
uint32 nDataLen 要发送的数据内容长度
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
PostMessage 发送数据给指定的客户端 类型 参数名称 说明
vector vecConnectID 客户端的连接ID列表
IBuffPacket*& pBuffPacket 要发送的内容
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
PostMessage 发送数据给指定的客户端 类型 参数名称 说明
vector vecConnectID 客户端的连接ID列表
char*& pData 要发送的数据内容指针
uint32 nDataLen 要发送的数据内容长度
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
PostMessage 群发数据给所有客户端 类型 参数名称 说明
IBuffPacket*& pBuffPacket 要发送的内容
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
PostMessage 群发数据给所有客户端 类型 参数名称 说明
char*& pData 要发送的数据内容指针
uint32 nDataLen 要发送的数据内容长度
uint8 u1SendType SENDMESSAGE_NOMAL默认发送数据包模式(走PacketPrase端口), SENDMESSAGE_JAMPNOMAL发送数据包模式(不走PacketPrase端口)
uint16 u2CommandID 要发送的信令ID
uint8 u1SendState 包括以下几种状态PACKET_SEND_IMMEDIATLY(立刻发送),PACKET_SEND_CACHE(数据包发送机制)和PACKET_SEND_FIN_CLOSE(立刻发送,发送完成后关闭连接)
bool blDlete 是否由框架删除数据包内存块,true是框架删除,false由插件自己管理内存块的释放
int nMessageID 这个参数用于数据回执,如果ID > 0,则如果发送成功,会回调CLINET_LINK_SENDOK,插件可以关注这个事件获得结果,发送失败会调用CLINET_LINK_SENDERROR
bool 返回值 是否执行成功
CloseConnect 断开指定的客户端连接 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
bool 返回值 是否执行成功
GetClientIPInfo 得到指定客户端连接客户IP信息 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
_ClientIPInfo 返回值 客户端IP信息
GetLocalIPInfo 得到指定客户端连接服务器IP信息 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
_ClientIPInfo 返回值 服务器IP信息
GetCount 得到当前客户端连接数量 类型 参数名称 说明
int 返回值 当前连接数量
SetConnectName 给一个特定的客户端连接起名 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
const char* pName 客户端连接ID名字
bool 返回值 是否执行成功
SetIsLog 给一个客户端连接打开日志跟踪 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
bool blIsLog 是否打开日志跟踪
bool 返回值 是否执行成功
GetClientNameInfo 根据一个客户端名字获得对应的客户端连接信息 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
vecClientNameInfo objClientNameInfo 对应名称的客户端连接信息列表
void 返回值
GetClientNameInfo 得到指定的客户端连接状态,false为链接不存在,true为链接存在 类型 参数名称 说明
uint32 u4ConnectID 客户端连接ID
EM_Client_Connect_status 返回值 true为存在,false为不存在

4.Packet对象管理类(IPacketManager)

说明:

这个接口提供CBuffPacket对象的管理。

###在插件中使用方法: m_pServerObject->GetPacketManager()

###API列表:

接口名称 说明 接口参数
GetBuffPacketUsedCount 得到当前已使用的IBuffPacket数量 类型 参数名称 说明
uint32 返回值 当前已使用的个数
GetBuffPacketFreeCount 得到当前未使用的IBuffPacket数量 类型 参数名称 说明
uint32 返回值 当前未使用的个数
OutputCreateInfo 输出当前IBuffPecket使用情况到日志中 类型 参数名称 说明
void 返回值
SetCreateFlag 是否记录每个CBuffPacket从哪里申请出来的 类型 参数名称 说明
bool blTagCreateInfo 是否记录申请位置
void 返回值
Create 获得一个空闲的IBuffPacke对象 类型 参数名称 说明
const char* pFileName 申请对象代码文件名称
uint32 u4Line 申请对象代码行号
IBuffPacket* 返回值 IBuffPacket对象指针
Delete 回收一个IBuffPacket对象 类型 参数名称 说明
IBuffPacket* pFileName IBuffPacket对象指针
bool* 返回值 是否回收成功
GetCreateInfoCount 获得当前申请IBuffPacket的文件信息个数 类型 参数名称 说明
uint32 返回值 获得当前申请IBuffPacket的文件信息个数
GetCreateInfoList 获得当前申请IBuffPacket的文件信息 类型 参数名称 说明
uint32 u4Index 当前Index,对应GetCreateInfoCount接口的个数
_Object_Create_Info objCreateInfo 申请对象位置信息
bool 返回值 是否获取成功

5.服务期间对象管理类(IClientManager)

说明:

负责管理服务器间通讯的数据管理

###在插件中使用方法: m_pServerObject->GetClientManager()

###API列表:

接口名称 说明 接口参数
Connect 建立一个连接其他服务器的TCP连接 类型 参数名称 说明
int nServerID 当前连接ID
const char* pIP 目标服务器的IP
int nPort 目标服务器的端口
uint8 u1IPType 标记是IPv4还是IPV6
IClientMessage* pClientMessage 处理接收服务器连接的返回数据类对象指针
bool 返回值 是否执行成功
Connect 建立一个连接其他服务器的TCP连接 类型 参数名称 说明
int nServerID 当前连接ID
const char* pIP 目标服务器的IP
int nPort 目标服务器的端口
uint8 u1IPType 标记是IPv4还是IPV6
const char* pIP 本地服务器的IP
int nPort 本地服务器的端口
uint8 u1IPType 标记是IPv4还是IPV6
IClientMessage* pClientMessage 处理接收服务器连接的返回数据类对象指针
bool 返回值 是否执行成功
ConnectUDP 建立一个连接其他服务器的TCP连接 类型 参数名称 说明
int nServerID 当前连接ID
const char* pIP 目标服务器的IP
int nPort 目标服务器的端口
uint8 u1IPType 标记是IPv4还是IPV6
const char* pIP UDP服务器连接状态,UDP_SINGLE UDP单独连接,UDP_BROADCAST UDP广播
IClientMessage* pClientMessage 处理接收服务器连接的返回数据类对象指针
bool 返回值 是否执行成功
Close 关闭指定的TCP连接 类型 参数名称 说明
int nServerID 连接ID
bool 返回值 是否执行成功
CloseUDP 关闭指定的UDP连接 类型 参数名称 说明
int nServerID 连接ID
bool 返回值 是否执行成功
SendData 发送一个数据给TCP对端服务器 类型 参数名称 说明
int nServerID 连接ID
const char* pData 发送数据块指针
int nSize 发送数据长度
bool blIsDelete 是否框架回收,true 框架回收,false插件自己回收
bool 返回值 是否执行成功
SendDataUDP 发送一个数据给UDP对端服务器 类型 参数名称 说明
int nServerID 连接ID
const char* pIP UDP远端的IP
int nPort UDP远端的端口
const char* pData 发送数据块指针
int nSize 发送数据长度
bool blIsDelete 是否框架回收,true 框架回收,false插件自己回收
bool 返回值 是否执行成功
GetConnectState 得到指定TCP连接的状态 类型 参数名称 说明
int nServerID 连接ID
EM_Server_Connect_State 返回值 返回当前连接状态
GetClientMessage 得到指定连接ID的接收类对象指针 类型 参数名称 说明
int nServerID 连接ID
IClientMessage* 返回值 返回当前连接状态
GetServerIPInfo 得到指定的ID TCP连接信息 类型 参数名称 说明
int nServerID 连接ID
_ClientIPInfo& objServerIPInfo 返回的IP连接信息
bool 返回值 是否找到

6.客户端UDP连接管理(GetUDPConnectManager)

说明:

负责管理向指定的UDP客户端端口发送数据

###在插件中使用方法: m_pServerObject->GetClientManager()

###API列表:

接口名称 说明 接口参数
SendMessage 发送一个UDP数据信息 类型 参数名称 说明
int nConnectID 当前连接ID
char*& pMessage 消息指针
u4Len nPort 消息长度
const char* szIP 客户端UDP IP地址
int nPort 客户端UDP 端口
bool blHead 是否直接发送
uint16 u2CommandID 发送的信令ID
bool blDlete 是否框架回收,true为框架回收,false为插件回收
bool 返回值 是否执行成功

7.插件间调用方法(IModuleMessageManager)

说明:

提供插件间的互相调用接口

###在插件中使用方法: m_pServerObject->GetModuleMessageManager()

###API列表:

接口名称 说明 接口参数
SendModuleMessage 发送消息给指定的插件(同步调用) 类型 参数名称 说明
const char* pModuleName 被调用插件的名称
uint16 u2CommandID 调用消息的信令ID
IBuffPacket* pBuffPacket 发送数据包信息
IBuffPacket* pReturnBuffPacket 接收数据包信息
int 返回值 返回执行状态
SendModuleMessage 发送消息给指定的插件(异步调用) 类型 参数名称 说明
uint16 u2CommandID 调用消息的信令ID
uint32 u4ConnectID 调用的ConnectID
IBuffPacket* pBuffPacket 发送数据包信息
IBuffPacket* pReturnBuffPacket 接收数据包信息
int 返回值 返回执行状态

8.插件开启关闭TCP服务监听(IControlListen)

说明:

插件开启关闭TCP服务监听接口

###在插件中使用方法: m_pServerObject->GetControlListen()

###API列表:

接口名称 说明 接口参数
AddListen 开启一个新的TCP监听 类型 参数名称 说明
const char* pListenIP 设置监听端口IP
uint32 u4Port 设置监听端口
uint8 u1IPType 监听端口是IPV4还是IPV6
int nPacketParseID 对应解析类ID,此ID对应main.xml中的PacketParse设置
int 返回值 返回执行状态
DelListen 关闭一个新的TCP监听 类型 参数名称 说明
const char* pListenIP 设置监听端口IP
uint32 u4Port 设置监听端口
int 返回值 返回执行状态
GetListenCount 得到监听TCP端口的个数 类型 参数名称 说明
int 返回值 当前监听数量
ShowListen 查看监听端口信息 类型 参数名称 说明
uint32 u4Index 当前监听对象下标,范围为GetListenCount接口返回的个数
_ControlInfo& objControlInfo 当前监听对象信息
bool 返回值 返回执行状态
GetServerID 得到当前服务器ID 类型 参数名称 说明
uint32 返回值 得到当前服务器ID

9.服务器插件管理(IModuleInfo)

说明:

获得服务器的插件管理

###在插件中使用方法: m_pServerObject->GetModuleInfo()

###API列表:

接口名称 说明 接口参数
GetModuleExist 判断一个插件是否已经被框架加载 类型 参数名称 说明
const char* pModuleName 插件名字
bool 返回值 返回加载状态
GetModuleParam 获得一个插件的初始化参数 类型 参数名称 说明
const char* pModuleName 插件名字
char* 返回值 获得一个插件的初始化参数
GetModuleFileName 获得一个插件的加载名称 类型 参数名称 说明
const char* pModuleName 插件名字
char* 返回值 获得一个插件的加载名称
GetModuleFilePath 获得一个插件的加载路径 类型 参数名称 说明
const char* pModuleName 插件名字
char* 返回值 获得一个插件的加载路径
GetModuleFileDesc 获得一个插件的描述信息 类型 参数名称 说明
const char* pModuleName 插件名字
char* 返回值 获得一个插件的描述信息

10.ACE消息块管理(IMessageBlockManager)

说明:

ACEMessageBlock对象管理接口

###在插件中使用方法: m_pServerObject->GetMessageBlockManager()

###API列表:

接口名称 说明 接口参数
Create 创建一个ACE消息块 类型 参数名称 说明
uint32 u4Size 创建消息块大小
ACE_Message_Block* 返回值 返回消息快指针
Close 回收一个指定的ACE消息块 类型 参数名称 说明
ACE_Message_Block* pMessageBlock 消息块指针
bool 返回值 是否回收成功

11.框架维护指令模块(IFrameCommand)

说明:

允许插件使用维护指令对框架进行控制

###在插件中使用方法: m_pServerObject->GetFrameCommand()

###API列表:

接口名称 说明 接口参数
DoFrameCommand 执行一个维护指令 类型 参数名称 说明
const char* pCommand 维护指令
IBuffPacket* pBuffPacket 维护指令返回信息
int 返回值 是否执行成功

12.TTy接口(ITTyClientManager)

说明:

提供插件访问串口,蓝牙,红外设备的接口。

###在插件中使用方法: m_pServerObject->GetTTyClientManager()

###API列表:

接口名称 说明 接口参数
Connect 连接一个TTy设备 类型 参数名称 说明
uint16 u2ConnectID 连接ID
const char* pName 设备名称
_TTyDevParam inParam 设备连接参数
ITTyMessage* pMessageRecv 设备回调接口类
int 返回值 是否执行成功
GetClientDevInfo 获得指定连接设备ID参数 类型 参数名称 说明
uint16 u2ConnectID 连接ID
_TTyDevParam& outParam 连接设备参数
bool 返回值 是否执行成功
IsConnect 查看设备是否连接 类型 参数名称 说明
uint16 u2ConnectID 连接ID
bool 返回值 是否执行成功
Close 关闭指定的一个设备连接 类型 参数名称 说明
uint16 u2ConnectID 连接ID
bool 返回值 是否执行成功
Pause 暂停指定的一个设备连接 类型 参数名称 说明
uint16 u2ConnectID 连接ID
bool 返回值 是否执行成功
Resume 恢复指定的一个设备连接 类型 参数名称 说明
uint16 u2ConnectID 连接ID
bool 返回值 是否执行成功
SendMessage 向指定的设备发送数据 类型 参数名称 说明
uint16 u2ConnectID 连接ID
char*& pMessage 发送数据指针
uint32 u4Len 发送数据长度
bool 返回值 是否执行成功

13.TMS计时器服务(TMService)

说明:

提供集成与框架C++11实现的非ACE的计时器模块。

###在插件中使用方法: 1.使用方式:m_pServerObject->GetTMService()
2.配合配置文件time.xml来使用 3.使用例子请查看CppUnit目录下Unit_TMService ###API列表:

接口名称 说明 接口参数
AddMessage 添加一个消息 类型 参数名称 说明
std::string strName 消息名
unsigned long long nMessagePos 消息位编号
long sec 时间(秒)
long usec 时间(毫秒)
int _Message_id 消息编号(同time.xml中配置)
void* _arg 消息参数(注意参数的生命周期)
Enum_Timer_Mode emTimerMode 消息投递的方式
int 返回值 返回0为行成功
DeleteMessage 删除一个消息 类型 参数名称 说明
std::string strName 消息名
unsigned long long nMessagePos 消息位编号
void* 返回值 删除消息后,返回加入消息时候的参数地址
GetRun 是否在运行中 类型 参数名称 说明
bool 返回值 是否执行成功

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/freeeyes-PSS.git
git@api.gitlife.ru:oschina-mirror/freeeyes-PSS.git
oschina-mirror
freeeyes-PSS
freeeyes-PSS
master