mirror of https://github.com/zeldaret/botw.git
43 lines
1.4 KiB
C++
43 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
|
|
namespace ksys {
|
|
|
|
class IMessageBroker;
|
|
class IMessageBrokerRegister;
|
|
class MessageDispatcherBase;
|
|
struct MesTransceiverId;
|
|
class MessageReceiverEx;
|
|
struct MessageType;
|
|
|
|
class MessageTransceiverBase {
|
|
public:
|
|
MessageTransceiverBase();
|
|
virtual ~MessageTransceiverBase();
|
|
bool checkReceiverFlag() const;
|
|
bool isWaitingForAck() const;
|
|
virtual bool sendMessage(const MesTransceiverId& dest, const MessageType& type, void* user_data,
|
|
bool ack);
|
|
virtual bool sendMessageOnProcessingThread(const MesTransceiverId& dest,
|
|
const MessageType& type, void* user_data, bool ack);
|
|
virtual bool sendMessage(IMessageBroker& broker, const MessageType& type, void* user_data,
|
|
bool ack);
|
|
virtual bool sendMessageOnProcessingThread(IMessageBroker& broker, const MessageType& type,
|
|
void* user_data, bool ack);
|
|
virtual MessageReceiverEx* getReceiver() const = 0;
|
|
MessageDispatcherBase* getDispatcher();
|
|
MesTransceiverId* getId() const { return mId; }
|
|
IMessageBrokerRegister* getRegister(IMessageBroker& broker) const;
|
|
|
|
static void setGlobalDispatcher(MessageDispatcherBase* dispatcher);
|
|
|
|
private:
|
|
static MessageDispatcherBase* sDispatcher;
|
|
|
|
MessageDispatcherBase* mDispatcher = sDispatcher;
|
|
MesTransceiverId* mId{};
|
|
};
|
|
|
|
} // namespace ksys
|