mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
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
This commit is contained in:
parent
90d6ac6697
commit
b05ee805e4
13 changed files with 179 additions and 63 deletions
|
@ -255,10 +255,13 @@ public:
|
|||
ApiServer::ApiServer():
|
||||
mMtx("ApiServer mMtx"),
|
||||
mStateTokenServer(),
|
||||
mLivereloadhandler(&mStateTokenServer),
|
||||
mMainModules(0)
|
||||
{
|
||||
mRouter.addResourceHandler("statetokenservice", dynamic_cast<ResourceRouter*>(&mStateTokenServer),
|
||||
&StateTokenServer::handleRequest);
|
||||
mRouter.addResourceHandler("livereload", dynamic_cast<ResourceRouter*>(&mLivereloadhandler),
|
||||
&LivereloadHandler::handleRequest);
|
||||
}
|
||||
|
||||
ApiServer::~ApiServer()
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "StateTokenServer.h"
|
||||
#include "FileSearchHandler.h"
|
||||
#include "TransfersHandler.h"
|
||||
#include "LivereloadHandler.h"
|
||||
|
||||
namespace resource_api{
|
||||
|
||||
|
@ -77,6 +78,7 @@ private:
|
|||
RsMutex mMtx;
|
||||
StateTokenServer mStateTokenServer; // goes first, as others may depend on it
|
||||
// is always loaded, because it has no dependencies
|
||||
LivereloadHandler mLivereloadhandler;
|
||||
|
||||
// only pointers here, to load/unload modules at runtime
|
||||
ApiServerMainModules* mMainModules; // loaded when RS is started
|
||||
|
|
1
libresapi/src/api/ChatHandler.cpp
Normal file
1
libresapi/src/api/ChatHandler.cpp
Normal file
|
@ -0,0 +1 @@
|
|||
#include "ChatHandler.h"
|
50
libresapi/src/api/ChatHandler.h
Normal file
50
libresapi/src/api/ChatHandler.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
#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
|
25
libresapi/src/api/LivereloadHandler.cpp
Normal file
25
libresapi/src/api/LivereloadHandler.cpp
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "LivereloadHandler.h"
|
||||
|
||||
namespace resource_api
|
||||
{
|
||||
LivereloadHandler::LivereloadHandler(StateTokenServer *sts):
|
||||
mStateTokenServer(sts), mStateToken(sts->getNewToken())
|
||||
{
|
||||
addResourceHandler("*", this, &LivereloadHandler::handleWildcard);
|
||||
addResourceHandler("trigger", this, &LivereloadHandler::handleTrigger);
|
||||
}
|
||||
|
||||
void LivereloadHandler::handleWildcard(Request &/*req*/, Response &resp)
|
||||
{
|
||||
resp.mStateToken = mStateToken;
|
||||
resp.setOk();
|
||||
}
|
||||
|
||||
void LivereloadHandler::handleTrigger(Request &/*req*/, Response &resp)
|
||||
{
|
||||
mStateTokenServer->replaceToken(mStateToken);
|
||||
resp.mStateToken = mStateToken;
|
||||
resp.setOk();
|
||||
}
|
||||
|
||||
} // namespace resource_api
|
23
libresapi/src/api/LivereloadHandler.h
Normal file
23
libresapi/src/api/LivereloadHandler.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
#pragma once
|
||||
|
||||
#include "ResourceRouter.h"
|
||||
#include "StateTokenServer.h"
|
||||
|
||||
namespace resource_api
|
||||
{
|
||||
|
||||
// very simple livereload system, integrated into the existing state token system
|
||||
// the response to / is only a statetoken
|
||||
// if /trigger is called, then the state token is invalidaten and replaced wiht a new one
|
||||
class LivereloadHandler: public ResourceRouter
|
||||
{
|
||||
public:
|
||||
LivereloadHandler(StateTokenServer* sts);
|
||||
|
||||
private:
|
||||
void handleWildcard(Request& req, Response& resp);
|
||||
void handleTrigger(Request& req, Response& resp);
|
||||
StateTokenServer* mStateTokenServer;
|
||||
StateToken mStateToken;
|
||||
};
|
||||
} // namespace resource_api
|
Loading…
Add table
Add a link
Reference in a new issue