CERTI之RTIG消息处理模块实现细节的举例说明(一)

本文详细介绍了CERTI中RTIG如何处理联邦成员请求设置时间管理机制为Regulating的过程。通过TCP或UDP通信,消息从RTIA传递给RTIG,经过NetworkMessage类的派生类处理,最终在processSetTimeRegulating()函数中完成对NM_Set_Time_Regulating消息的处理,包括记录活动日志、创建监管器以及发送回复消息。
摘要由CSDN通过智能技术生成

本文将以CERTI中的RTIG对某联邦成员发出的设定其自身的时间管理机制为Regulating类型的请求的处理过程为例,详细说明RTIG的整个处理过程,而对于其他的请求的处理过程则与本例极为相似,不再赘述。

 

 

在CERTI中,联邦成员federate与其对应的RTIA一般位于同一主机上,因此federate与RTIA之间一般通过进程间通信进行消息的传递和请求的发出和接收;而RTIA和RTIG一般部署在不同的主机上,它们之间进行消息的传递时,一般通过网络通信实现。因此,CERTI为此专门设计了供RTIA和RTIG之间网络通信使用的消息类NetworkMessage,而NetworkMessage是一个抽象类,它有许多的派生类,每个派生类代表了一种具体类型的消息。

 

 

在本文中,RTIA发出的设定其时间管理机制为Regulating的消息类为NM_Set_Time_Regulating,而RTIG接收该消息并将其转入相应的消息处理模块的过程为:

(1)RTIA向RTIG的socketServer的TCP监听端口或者UDP监听端口发送一个类型为NM_Set_Time_Regulating的消息实例;

(2)RITG进程中的myRTIG.execute()线程负责持续监听TCP端口和UDP端口;

(3)当检测到有消息被发送到TCP或者UDP端口时,利用语句link = socketServer.getActiveSocket(&fd)获取接收到消息的socket(也即是语句中的link);

(4)利用processIncomingMessage(link)中的msg = NM_Factory:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值