36 #define GRID_APP_NAME "remote_cgiapp"
40 #if defined(NCBI_OS_UNIX)
49 ncbi::CRemoteCgiApp* app =
50 dynamic_cast<ncbi::CRemoteCgiApp*
>(ncbi::CNcbiApplication::Instance());
52 app->RequestShutdown();
120 #if defined(NCBI_OS_UNIX)
135 arg_desc->SetUsageContext(
GetArguments().GetProgramBasename(),
140 reg.
Set(
"netcache_client",
"cache_output",
"true");
175 unique_ptr<CCgiContext> cgi_context(
186 cgi_context->GetRequest(), cgi_context->GetResponse()) ?
189 cgi_context->GetResponse().Finalize();
191 }
catch (exception& ex) {
virtual string GetAppVersion() const
CCgiWorkerNodeJobFactory(CRemoteCgiApp &app)
virtual string GetJobVersion() const
Get the job version.
virtual IWorkerNodeJob * CreateInstance(void)
Create a job.
virtual string GetAppName() const
virtual ~CCgiWorkerNodeJob()
int Do(CWorkerNodeJobContext &job_context)
Execute the job.
CCgiWorkerNodeJob(CRemoteCgiApp &app)
Worker Node Job Factory interface.
Worker Node Job interface.
#define GRID_APP_VERSION_INFO
void DisableArgDescriptions(TDisableArgDesc disable=fDisableStdArgs)
CNcbiRegistry & GetRWConfig(void)
Get the application's cached configuration parameters, accessible for read-write for an application's...
const CNcbiArguments & GetArguments(void) const
Get the application's cached unprocessed command-line arguments.
void AddOptionalKey(const string &name, const string &synopsis, const string &comment, EType type, TFlags flags=0)
Add description for optional key without default value.
@ eInteger
Convertible into an integer number (int or Int8)
virtual void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup the command line argument descriptions.
virtual void Init(void)
This method is called on the CGI application initialization – before starting to process a HTTP reque...
virtual int OnException(std::exception &e, CNcbiOstream &os)
This method is called if an exception is thrown during the processing of HTTP request.
virtual void ConfigureDiagnostics(CCgiContext &context)
int m_RequestFlags
Bit flags for CCgiRequest.
static bool ProcessCORSRequest(const CCgiRequest &request, CCgiResponse &response)
Process cross-origin resource sharing (CORS) request.
virtual void OnEvent(EEvent event, int status)
This method is called after each request, or when the CGI is forced to skip a request,...
virtual int ProcessRequest(CCgiContext &context)=0
This is the method you should override.
@ eException
An exception occured during the request processing.
@ eExit
No more iterations, exiting (called the very last)
@ eError
The HTTP request was processed, non-zero exit code.
@ eEndRequest
HTTP request processed, all results sent to client.
@ eSuccess
The HTTP request was processed, with zero exit code.
@ fSetDiagProperties
Old (deprecated) flag controlling diag properties.
virtual void Init(void)
This method is called on the CGI application initialization – before starting to process a HTTP reque...
void CommitJob()
Confirm that a job is done and result is ready to be sent back to the client.
CNcbiOstream & GetOStream()
Get a stream where a job can write its result.
virtual string GetJobVersion() const
void RequestShutdown(void)
virtual void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup the command line argument descriptions.
virtual int Run(void)
Do not override this method yourself! – it includes all the CGI specific machinery.
int RunJob(CNcbiIstream &is, CNcbiOstream &os, CWorkerNodeJobContext &)
unique_ptr< CGridWorkerNode > m_AppImpl
CNcbiIstream & GetIStream()
Get a stream with input data for a job.
CWorkerNodeJobContext * m_JobContext
void PutProgressMessage(const string &msg, bool send_immediately=false)
bool Set(const string §ion, const string &name, const string &value, TFlags flags=0, const string &comment=kEmptyStr)
Set the configuration parameter value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
Defines process management classes.
void CgiGridWorker_SignalHandler(int)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
virtual void PutProgressMessage(const string &msg, bool send_immediately, bool overwrite)