UCommunicationManager
class UCommunicationManager : public UObject一个在指定 URL 上运行 gRPC 服务器的管理器类。
依赖项: IExchangeBackendInterface, IPollingBackendInterface, IProducerBackendInterface
继承自: public UObject
公共接口
析构函数
~UCommunicationManager
~UCommunicationManager()来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 172 行,第 1 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 54-63 行)
公共函数
RegisterService
bool RegisterService(std::shared_ptr<grpc::Service> Service)向服务器注册服务。
返回值:如果服务成功注册,则为 True,否则为 False
参数
Service(std::shared_ptr<grpc::Service>) – [输入] 要注册的服务
返回: bool
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 95 行,第 6 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 5-27 行)
GetCompletionQueue
std::unique_ptr<ServerCompletionQueue> GetCompletionQueue()获取服务器的完成队列。
返回值:完成队列
返回值: std::unique_ptr<ServerCompletionQueue>
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 102 行,第 17 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 29-32 行)
CreatePollingBackend
inline IPollingBackendInterface<In> * CreatePollingBackend(AsyncRPCHandle<ServiceType, In, Out> TargetRPC, std::shared_ptr<ServiceType> Service)创建一个新的轮询后端,Unreal 从中轮询 In 类型的消息。
参数
TargetRPC(AsyncRPCHandle<ServiceType, In, Out>) – 要包装的 RPC 方法Service(std::shared_ptr<ServiceType>) – 要附加后端的服务
返回值: IPollingBackendInterface<In> *
属性: inline
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 113 行,第 26 列)
CreateProducerBackend
inline IProducerBackendInterface<Out> * CreateProducerBackend(AsyncRPCHandle<ServiceType, In, Out> TargetRPC, std::shared_ptr<ServiceType> Service)创建一个新的生产者后端,Unreal 从中发送 Out 类型的消息。
参数
TargetRPC(AsyncRPCHandle<ServiceType, In, Out>) – 要包装的 RPC 方法Service(std::shared_ptr<ServiceType>) – 要附加后端的服务
返回值: IProducerBackendInterface<Out> *
属性: inline
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 132 行,第 27 列)
CreateExchangeBackend
inline IExchangeBackendInterface<In, Out> * CreateExchangeBackend(AsyncRPCHandle<ServiceType, In, Out> TargetRPC, std::shared_ptr<ServiceType> Service)创建一个新的交换后端,Unreal 从中发送 Out 类型的消息并接收 In 类型的消息。
参数
TargetRPC(AsyncRPCHandle<ServiceType, In, Out>) – 要包装的 RPC 方法Service(std::shared_ptr<ServiceType>) – 要附加后端的服务
返回值: IExchangeBackendInterface<In, Out> *
属性: inline
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 152 行,第 27 列)
ShutdownServer
void ShutdownServer()关闭通信管理器。
触发 OnServerShutdownDelegate
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 165 行,第 6 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 34-52 行)
StartBackends
bool StartBackends()启动通信管理器创建的所有后端。
触发 OnServerStartDelegate 和 OnServerReadyDelegate
返回: bool
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 170 行,第 6 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 65-91 行)
Initialize
void Initialize()初始化通信管理器。
从设置面板设置服务器的端口和 URL
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 177 行,第 6 列)
实现: Schola/Source/Schola/Private/Communicator/CommunicationManager.cpp (第 93-106 行)
公共成员
FOnServerStartSignature OnServerStartDelegate
FOnServerStartSignature OnServerStartDelegate服务器启动时调用的委托。
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 80 行,第 27 列)
FOnServerReadySignature OnServerReadyDelegate
FOnServerReadySignature OnServerReadyDelegate服务器准备就绪时调用的委托。
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 82 行,第 27 列)
FOnServerReadySignature OnConnectionEstablishedDelegate
FOnServerReadySignature OnConnectionEstablishedDelegate服务器建立连接时调用的委托。
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 84 行,第 27 列)
FOnServerShutdownSignature OnServerShutdownDelegate
FOnServerShutdownSignature OnServerShutdownDelegate服务器关闭时调用的委托。
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 86 行,第 28 列)
私有接口
私有成员
FString ServerURL
FString ServerURL服务器的 URL。
属性: private
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 48 行,第 9 列)
grpc::ServerBuilder * Builder
grpc::ServerBuilder * Builder = = nullptr服务器构建器对象。
属性: private
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 51 行,第 20 列)
std::unique_ptr<Server> Server
std::unique_ptr<Server> Server服务器对象。
属性: private
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 54 行,第 17 列)
std::unordered_set<grpc::Service *> RegisteredServices
std::unordered_set<grpc::Service *> RegisteredServices现有服务的列表,以防止重复添加服务
属性: private
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 57 行,第 20 列)
EComSystemState State
EComSystemState State = = EComSystemState::NOTSTARTED通信系统的状态。
属性: private
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 61 行,第 17 列)
被使用: UPythonGymConnector
来源: Schola/Source/Schola/Public/Communicator/CommunicationManager.h (第 41 行,第 1 列)