RetroShare/libresapi/src/api/ChatHandler.h
electron128 b05ee805e4 webui:
- added better live reload. It uses the Retroshare built in server. Grunt is not required anymore.
- removed unused buttons
- started ChatHandler

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8185 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-04-29 11:57:56 +00:00

50 lines
1.2 KiB
C++

#pragma once
#include "ResourceRouter.h"
#include "StateTokenServer.h"
#include <retroshare/rsnotify.h>
class RsMsgs;
namespace resource_api
{
class ChatHandler: public ResourceRouter, NotifyClient
{
public:
ChatHandler(StateTokenServer* sts, RsNotify* notify, RsMsgs* msgs);
virtual ~ChatHandler();
// from NotifyClient
// note: this may get called from the own and from foreign threads
virtual void notifyChatMessage();
private:
void handleWildcard(Request& req, Response& resp);
StateTokenServer* mStateTokenServer;
RsNotify* mNotify;
RsMsgs* mRsMsgs;
RsMutex mMtx;
StateToken mStateToken; // mutex protected
// msgs flow like this:
// chatservice -> rawMsgs -> processedMsgs -> deletion
std::map<ChatId, std::list<ChatMessage> > mRawMsgs;
class Msg{
public:
bool incoming;
bool was_send;
//std::string chat_type;
std::string author_id; // peer or gxs id or "system" for system messages
std::string author_name;
std::string msg; // plain text only!
};
std::map<ChatId, std::list<Msg> > mProcessedMsgs;
};
} // namespace resource_api