mirror of https://gitee.com/bigwinds/arangodb
not sure about the restshardhandler yet
This commit is contained in:
parent
8eccb0a35f
commit
f0184d2786
|
@ -32,6 +32,11 @@
|
|||
#include "Rest/HttpRequest.h"
|
||||
#include "Rest/HttpResponse.h"
|
||||
|
||||
#include "HttpServer/HttpServer.h"
|
||||
#include "HttpServer/HttpHandlerFactory.h"
|
||||
#include "GeneralServer/GeneralServerJob.h"
|
||||
#include "GeneralServer/GeneralServer.h"
|
||||
|
||||
using namespace triagens::arango;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -95,7 +100,7 @@ triagens::rest::HttpHandler::status_e RestShardHandler::execute () {
|
|||
"this API is meant to be called on a coordinator node");
|
||||
return HANDLER_DONE;
|
||||
}
|
||||
|
||||
/*
|
||||
bool found;
|
||||
char const* coordinator = _request->header("x-arango-coordinator", found);
|
||||
|
||||
|
@ -112,20 +117,21 @@ triagens::rest::HttpHandler::status_e RestShardHandler::execute () {
|
|||
(int) triagens::rest::HttpResponse::BAD,
|
||||
"header 'x-arango-operation' is missing");
|
||||
}
|
||||
|
||||
char const* url = _request->header("x-arango-url", found);
|
||||
if (! found) {
|
||||
generateError(triagens::rest::HttpResponse::BAD,
|
||||
(int) triagens::rest::HttpResponse::BAD,
|
||||
"header 'x-arango-url' is missing");
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
Job* ajob = handler->createJob(this, true);
|
||||
ServerJob* job = dynamic_cast<ServerJob*>(ajob);
|
||||
if (jobId != 0) {
|
||||
_jobManager->initAsyncJob<S, HF>(job, jobId);
|
||||
}
|
||||
if (! _dispatcher->addJob(job)) {
|
||||
// could not add job to job queue
|
||||
delete handler;
|
||||
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
triagens::rest::HttpHandler* handler = this->_server->createHandler(_request);
|
||||
triagens::rest::Job* job = new triagens::rest::GeneralServerJob<triagens::rest::HttpServer, triagens::rest::HttpHandlerFactory::GeneralHandler>(0, handler, true);
|
||||
|
||||
_dispatcher->addJob(job);
|
||||
*/
|
||||
// respond with a 202
|
||||
_response = createResponse(triagens::rest::HttpResponse::ACCEPTED);
|
||||
|
||||
|
|
|
@ -47,8 +47,7 @@ using namespace std;
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Job::Job (string const& name)
|
||||
: _name(name),
|
||||
_observers() {
|
||||
: _name(name) {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -79,15 +78,6 @@ const string& Job::getName () const {
|
|||
return _name;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief attach an observer
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Job::attachObserver (JobObserver* observer) {
|
||||
_observers.push_back(observer);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -121,50 +111,6 @@ void Job::setDispatcherThread (DispatcherThread*) {
|
|||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- protected methods
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Dispatcher
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief notify attached observers
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Job::notifyObservers (const Job::notification_e type) {
|
||||
vector<JobObserver*>::iterator i;
|
||||
|
||||
switch (type) {
|
||||
case JOB_WORK:
|
||||
for (i = _observers.begin(); i != _observers.end(); ++i) {
|
||||
(*i)->workCallback(this);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case JOB_CLEANUP:
|
||||
for (i = _observers.begin(); i != _observers.end(); ++i) {
|
||||
(*i)->cleanupCallback(this);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case JOB_SHUTDOWN:
|
||||
for (i = _observers.begin(); i != _observers.end(); ++i) {
|
||||
(*i)->shutdownCallback(this);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- END-OF-FILE
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
@ -42,7 +42,6 @@ namespace triagens {
|
|||
|
||||
namespace rest {
|
||||
class DispatcherThread;
|
||||
class JobObserver;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- class Job
|
||||
|
@ -98,16 +97,6 @@ namespace triagens {
|
|||
JOB_FAILED
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief notification for job observers
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
enum notification_e {
|
||||
JOB_WORK,
|
||||
JOB_CLEANUP,
|
||||
JOB_SHUTDOWN
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -157,12 +146,6 @@ namespace triagens {
|
|||
|
||||
const string& getName () const;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief attach an observer
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void attachObserver (JobObserver* observer);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -226,27 +209,6 @@ namespace triagens {
|
|||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- protected methods
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Dispatcher
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
protected:
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief notify attached observers
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void notifyObservers (const Job::notification_e type);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- private variables
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -264,11 +226,6 @@ namespace triagens {
|
|||
|
||||
const string& _name;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief attached observers
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
vector<JobObserver*> _observers;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -174,7 +174,7 @@ namespace triagens {
|
|||
/// @brief whether or not the job is detached
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool isDetached () const {
|
||||
inline bool isDetached () const {
|
||||
return _isDetached;
|
||||
}
|
||||
|
||||
|
@ -234,7 +234,7 @@ namespace triagens {
|
|||
abandon = _abandon;
|
||||
}
|
||||
|
||||
if (! abandon) {
|
||||
if (! abandon && _server != 0) {
|
||||
_server->jobDone(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -388,6 +388,8 @@ namespace triagens {
|
|||
return;
|
||||
}
|
||||
|
||||
assert(job != 0);
|
||||
|
||||
*jobId = (AsyncJobResult::IdType) generate();
|
||||
job->assignId((uint64_t) *jobId);
|
||||
|
||||
|
@ -415,7 +417,7 @@ namespace triagens {
|
|||
return;
|
||||
}
|
||||
|
||||
double now = TRI_microtime();
|
||||
const double now = TRI_microtime();
|
||||
|
||||
WRITE_LOCKER(_lock);
|
||||
JobList::iterator it = _jobs.find(jobId);
|
||||
|
|
Loading…
Reference in New Issue