mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
add chat to RsEvent
This commit is contained in:
parent
4c4b7ce754
commit
2abd284899
@ -881,6 +881,13 @@ bool p3ChatService::handleRecvChatMsgItem(RsChatMsgItem *& ci)
|
||||
RsServer::notify()->notifyChatMessage(cm);
|
||||
|
||||
mHistoryMgr->addMessage(cm);
|
||||
|
||||
if(rsEvents)
|
||||
{
|
||||
auto ev = std::make_shared<RsChatMessageEvent>();
|
||||
ev->mChatMessage = cm;
|
||||
rsEvents->postEvent(ev);
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
@ -42,6 +42,22 @@ class p3HistoryMgr;
|
||||
|
||||
typedef RsPeerId ChatLobbyVirtualPeerId ;
|
||||
|
||||
struct RsChatMessageEvent : RsEvent
|
||||
{
|
||||
RsChatMessageEvent() : RsEvent(RsEventType::CHAT_MESSAGE) {}
|
||||
~RsChatMessageEvent() override = default;
|
||||
|
||||
///* @see RsEvent @see RsSerializable
|
||||
void serial_process( RsGenericSerializer::SerializeJob j, RsGenericSerializer::SerializeContext& ctx ) override
|
||||
{
|
||||
RsEvent::serial_process(j, ctx);
|
||||
|
||||
RS_SERIAL_PROCESS(mChatMessage);
|
||||
}
|
||||
|
||||
ChatMessage mChatMessage;
|
||||
};
|
||||
|
||||
//!The basic Chat service.
|
||||
/**
|
||||
*
|
||||
|
@ -94,7 +94,10 @@ enum class RsEventType : uint32_t
|
||||
/// @see RsFiles
|
||||
FILE_TRANSFER = 14,
|
||||
|
||||
MAX /// Used to detect invalid event type passed
|
||||
/// @see RsMsgs
|
||||
CHAT_MESSAGE = 15,
|
||||
|
||||
MAX /// Used to detect invalid event type passed
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -426,9 +426,8 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class ChatMessage
|
||||
struct ChatMessage : RsSerializable
|
||||
{
|
||||
public:
|
||||
ChatId chat_id; // id of chat endpoint
|
||||
RsPeerId broadcast_peer_id; // only used for broadcast chat: source peer id
|
||||
RsGxsId lobby_peer_gxs_id; // only used for lobbys: nickname of message author
|
||||
@ -441,6 +440,22 @@ public:
|
||||
bool incoming;
|
||||
bool online; // for outgoing messages: was this message send?
|
||||
//bool system_message;
|
||||
|
||||
///* @see RsEvent @see RsSerializable
|
||||
void serial_process( RsGenericSerializer::SerializeJob j, RsGenericSerializer::SerializeContext& ctx ) override
|
||||
{
|
||||
RS_SERIAL_PROCESS(chat_id);
|
||||
RS_SERIAL_PROCESS(broadcast_peer_id);
|
||||
RS_SERIAL_PROCESS(lobby_peer_gxs_id);
|
||||
RS_SERIAL_PROCESS(peer_alternate_nickname);
|
||||
|
||||
RS_SERIAL_PROCESS(chatflags);
|
||||
RS_SERIAL_PROCESS(sendTime);
|
||||
RS_SERIAL_PROCESS(recvTime);
|
||||
RS_SERIAL_PROCESS(msg);
|
||||
RS_SERIAL_PROCESS(incoming);
|
||||
RS_SERIAL_PROCESS(online);
|
||||
}
|
||||
};
|
||||
|
||||
class ChatLobbyInvite : RsSerializable
|
||||
|
Loading…
Reference in New Issue
Block a user