NCBI C++ ToolKit
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CGlCgiImageApplication Class Referenceabstract

Search Toolkit Book for CGlCgiImageApplication

#include <gui/opengl/mesa/glcgi_image.hpp>

+ Inheritance diagram for CGlCgiImageApplication:
+ Collaboration diagram for CGlCgiImageApplication:

Public Member Functions

 CGlCgiImageApplication ()
 ~CGlCgiImageApplication ()
virtual void Init (void)
 This method is called on the CGI application initialization – before starting to process a HTTP request or even receiving one. More...
virtual int ProcessRequest (CCgiContext &ctx)
 This is the method you should override. More...
virtual void Render (CCgiContext &ctx)=0
float GetAspectRatio (void) const
- Public Member Functions inherited from CCgiApplication
 CCgiApplication (const SBuildInfo &build_info=NCBI_SBUILDINFO_DEFAULT())
 ~CCgiApplication (void)
const CCgiContextGetContext (void) const
 Get current server context. Throw exception if the context is not set. More...
CCgiContextGetContext (void)
 Get current server context. Throw exception if the context is not set. More...
const CNcbiResourceGetResource (void) const
 Get server 'resource'. Throw exception if the resource is not set. More...
CNcbiResourceGetResource (void)
 Get server 'resource'. Throw exception if the resource is not set. More...
unsigned int GetFCgiIteration (void) const
 Get the # of currently processed HTTP request. More...
virtual bool IsFastCGI (void) const
 Return TRUE if it is running as a "fast" CGI. More...
virtual void Exit (void)
 This method is called on the CGI application exit. More...
virtual int Run (void)
 Do not override this method yourself! – it includes all the CGI specific machinery. More...
virtual CNcbiResourceLoadResource (void)
virtual CCgiServerContextLoadServerContext (CCgiContext &context)
void SetRequestFlags (int flags)
 Set cgi parsing flag. More...
virtual void SetupArgDescriptions (CArgDescriptions *arg_desc)
 Setup the command line argument descriptions. More...
virtual const CArgsGetArgs (void) const
 Get parsed command line arguments extended with CGI parameters. More...
virtual ICgiSessionStorageGetSessionStorage (CCgiSessionParameters &params) const
 Get instance of CGI session storage interface. More...
virtual bool ValidateSynchronizationToken (void)
 Validate synchronization token (cross-site request forgery prevention). More...
- Public Member Functions inherited from CNcbiApplication
virtual ~CNcbiApplication (void)
 Destructor. More...
 CNcbiApplication (const SBuildInfo &build_info=NCBI_SBUILDINFO_DEFAULT())
 Constructor. More...
- Public Member Functions inherited from CNcbiApplicationAPI
 CNcbiApplicationAPI (const SBuildInfo &build_info)
 Constructor. More...
virtual ~CNcbiApplicationAPI (void)
 Destructor. More...
int AppMain (int argc, const char *const *argv, const char *const *envp=0, EAppDiagStream diag=eDS_Default, const char *conf=NcbiEmptyCStr, const string &name=NcbiEmptyString)
 Main function (entry point) for the NCBI application. More...
virtual int DryRun (void)
 Test run the application. More...
const CNcbiArgumentsGetArguments (void) const
 Get the application's cached unprocessed command-line arguments. More...
const CNcbiEnvironmentGetEnvironment (void) const
 Get the application's cached environment. More...
CNcbiEnvironmentSetEnvironment (void)
 Get a non-const copy of the application's cached environment. More...
void SetEnvironment (const string &name, const string &value)
 Set a specified environment variable by name. More...
bool HasLoadedConfig (void) const
 Check if the config file has been loaded. More...
bool FinishedLoadingConfig (void) const
 Check if the application has finished loading config file (successfully or not). More...
const CNcbiRegistryGetConfig (void) const
 Get the application's cached configuration parameters (read-only). More...
CNcbiRegistryGetConfig (void)
const stringGetConfigPath (void) const
 Get the full path to the configuration file (if any) we ended up using. More...
bool ReloadConfig (CMetaRegistry::TFlags flags=CMetaRegistry::fReloadIfChanged, IRegistry::TFlags reg_flags=IRegistry::fWithNcbirc)
 Reload the configuration file. More...
SIZE_TYPE FlushDiag (CNcbiOstream *os, bool close_diag=false)
 Flush the in-memory diagnostic stream (for "eDS_ToMemory" case only). More...
const stringGetProgramDisplayName (void) const
 Get the application's "display" name. More...
const stringGetProgramExecutablePath (EFollowLinks follow_links=eIgnoreLinks) const
 Get the application's executable path. More...
CVersionInfo GetVersion (void) const
 Get the program version information. More...
const CVersionAPIGetFullVersion (void) const
 Get the program version information. More...
bool IsDryRun (void) const
 Check if it is a test run. More...
virtual bool SetupDiag_AppSpecific (void)
 Setup application specific diagnostic stream. More...
template<class TFunc >
void AddOnExitAction (TFunc func)
 Add callback to be executed from CNcbiApplicationAPI destructor. More...

Protected Member Functions

CGlOsContextx_GetContext (void)
virtual void x_PreProcess (CCgiContext &ctx)
virtual void x_PostProcess (CCgiContext &ctx)
virtual void x_HandleError (CCgiContext &ctx, const string &msg)
- Protected Member Functions inherited from CCgiApplication
virtual EPreparseArgs PreparseArgs (int argc, const char *const *argv)
 Check the command line arguments before parsing them. More...
void SetRequestId (const string &rid, bool is_done)
virtual int OnException (std::exception &e, CNcbiOstream &os)
 This method is called if an exception is thrown during the processing of HTTP request. More...
virtual void OnEvent (EEvent event, int status)
 This method is called after each request, or when the CGI is forced to skip a request, or to finish altogether without processing a request. More...
virtual void FASTCGI_ScheduleExit (void)
 Schedule Fast-CGI loop to end as soon as possible, after safely finishing the currently processed request, if any. More...
virtual CCgiContextCreateContext (CNcbiArguments *args=0, CNcbiEnvironment *env=0, CNcbiIstream *inp=0, CNcbiOstream *out=0, int ifd=-1, int ofd=-1)
 Factory method for the Context object construction. More...
virtual CCgiContextCreateContextWithFlags (CNcbiArguments *args, CNcbiEnvironment *env, CNcbiIstream *inp, CNcbiOstream *out, int ifd, int ofd, int flags)
 The same as CreateContext(), but allows for a custom set of flags to be specified in the CCgiRequest constructor. More...
CCgiContextCreateContextWithFlags_Default (CCgiRequestProcessor &processor, CNcbiArguments *args, CNcbiEnvironment *env, CNcbiIstream *inp, CNcbiOstream *out, int ifd, int ofd, int flags)
 Default implementation of CreateContextWithFlags. More...
void RegisterDiagFactory (const string &key, CDiagFactory *fact)
CDiagFactoryFindDiagFactory (const string &key)
virtual void ConfigureDiagnostics (CCgiContext &context)
virtual void ConfigureDiagDestination (CCgiContext &context)
virtual void ConfigureDiagThreshold (CCgiContext &context)
virtual void ConfigureDiagFormat (CCgiContext &context)
ELogOpt GetLogOpt (void) const
virtual CCgiStatisticsCreateStat ()
 Class factory for statistics class. More...
void SetCafService (CCookieAffinity *caf)
 Attach cookie affinity service interface. More...
void VerifyCgiContext (CCgiContext &context)
 Check CGI context for possible problems, throw exception with HTTP status set if something is wrong. More...
virtual string GetDefaultLogPath (void) const
 Get default path for the log files. More...
virtual void AppStart (void)
 Prepare properties and print the application start message. More...
virtual void AppStop (int exit_code)
 Prepare properties for application stop message. More...
void SetHTTPStatus (unsigned int status, const string &reason=kEmptyStr)
 Set HTTP status code in the current request context and in the current CHttpResponse if one exists. More...
virtual void ProcessHelpRequest (const string &format)
 Process help request: set content type, print usage informations etc. More...
virtual void ProcessVersionRequest (EVersionType ver_type)
 Process version request: set content type, print version informations etc. More...
virtual bool ProcessAdminRequest (EAdminCommand cmd)
 Process admin command passed through ncbi_admin_cmd argument. More...
void ParseAcceptHeader (TAcceptEntries &entries) const
 Parse "Accept:" header, put entries to the list, more specific first. More...
virtual CCgiRequestProcessorCreateRequestProcessor (void)
 Create request processor to process the request. More...
void ProcessHttpReferer (void)
 Set CONN_HTTP_REFERER, print self-URL and referer to log. More...
void LogRequest (void) const
void LogRequest (const CCgiContext &ctx) const
 Write the required values to log (user-agent, self-url, referer etc.) More...
virtual bool x_RunFastCGI (int *result, unsigned int def_iter=10)
string GetFastCGIStandaloneServer (void) const
bool GetFastCGIStatLog (void) const
unsigned int GetFastCGIIterations (unsigned int def_iter) const
bool GetFastCGIComplete_Request_On_Sigterm (void) const
CCgiWatchFileCreateFastCGIWatchFile (void) const
unsigned int GetFastCGIWatchFileTimeout (bool have_watcher) const
int GetFastCGIWatchFileRestartDelay (void) const
bool GetFastCGIChannelErrors (void) const
bool GetFastCGIHonorExitRequest (void) const
bool GetFastCGIDebug (void) const
bool GetFastCGIStopIfFailed (void) const
unsigned int GetFastCGIMTMaxThreads (void) const
bool CheckMemoryLimit (void)
void InitArgs (CArgs &args, CCgiContext &context) const
void AddLBCookie (CCgiCookies &cookies)
virtual ICacheGetCacheStorage (void) const
virtual bool IsCachingNeeded (const CCgiRequest &request) const
bool GetResultFromCache (const CCgiRequest &request, CNcbiOstream &os, ICache &cache)
void SaveResultToCache (const CCgiRequest &request, CNcbiIstream &is, ICache &cache)
void SaveRequest (const string &rid, const CCgiRequest &request, ICache &cache)
CCgiRequestGetSavedRequest (const string &rid, ICache &cache)
bool x_ProcessHelpRequest (CCgiRequestProcessor &processor)
bool x_ProcessVersionRequest (CCgiRequestProcessor &processor)
bool x_ProcessAdminRequest (CCgiRequestProcessor &processor)
void x_OnEvent (CCgiRequestProcessor *pprocessor, EEvent event, int status)
void x_OnEvent (EEvent event, int status)
CCgiRequestProcessorx_CreateProcessor (void)
- Protected Member Functions inherited from CNcbiApplicationAPI
void DisableArgDescriptions (TDisableArgDesc disable=fDisableStdArgs)
void HideStdArgs (THideStdArgs hide_mask)
 Set the hide mask for the Hide Std Flags. More...
void SetStdioFlags (TStdioSetupFlags stdio_flags)
 Adjust the behavior of standard I/O streams. More...
void SetVersion (const CVersionInfo &version)
 Set the version number for the program. More...
void SetVersion (const CVersionInfo &version, const SBuildInfo &build_info)
void SetVersionByBuild (int major)
void SetFullVersion (CRef< CVersionAPI > version)
 Set version data for the program. More...
const CArgDescriptionsGetArgDescriptions (void) const
 Get argument descriptions (set by SetupArgDescriptions) More...
bool SetupDiag (EAppDiagStream diag)
 Setup the application diagnostic stream. More...
virtual bool LoadConfig (CNcbiRegistry &reg, const string *conf, CNcbiRegistry::TFlags reg_flags)
 Load settings from the configuration file to the registry. More...
virtual bool LoadConfig (CNcbiRegistry &reg, const string *conf)
 Load settings from the configuration file to the registry. More...
CNcbiRegistryGetRWConfig (void)
 Get the application's cached configuration parameters, accessible for read-write for an application's internal use only. More...
void SetProgramDisplayName (const string &app_name)
 Set program's display name. More...
void SetExitCode (int exit_code, EExitMode when=eExceptionalExits)
 Force the program to return a specific exit code later, either when it exits due to an exception or unconditionally. More...
void SetAppFlags (TAppFlags flags)
void ExecuteOnExitActions ()
 Should only be called from the destructors of classes derived from CNcbiApplicationAPI - if it is necessary to access their data members and virtual methods; or to dynamic_cast<> from the base app class. More...

Protected Attributes

size_t m_Width
size_t m_Height
CImageIO::EType m_Format
CRef< CGlOsContextm_Context
string m_ErrorTemplate
- Protected Attributes inherited from CCgiApplication
int m_RequestFlags
 Bit flags for CCgiRequest. More...
bool m_CaughtSigterm
CRef< CTls< CCgiRequestProcessor > > m_Processor
CAtomicCounter m_Iteration

Additional Inherited Members

- Public Types inherited from CCgiApplication
typedef CNcbiApplication CParent
- Public Types inherited from CNcbiApplicationAPI
enum  EAppNameType { eBaseName , eFullName , eRealName }
- Static Public Member Functions inherited from CCgiApplication
static CCgiApplicationInstance (void)
 Singleton. More...
- Static Public Member Functions inherited from CNcbiApplication
static CNcbiApplicationInstance (void)
 Singleton method. More...
- Static Public Member Functions inherited from CNcbiApplicationAPI
static CNcbiApplicationAPIInstance (void)
 Singleton method. More...
static CNcbiApplicationGuard InstanceGuard (void)
 Singleton method. More...
static SSystemMutex & GetInstanceMutex (void)
 Mutex for application singleton object. More...
static string GetAppName (EAppNameType name_type=eBaseName, int argc=0, const char *const *argv=NULL)
- Protected Types inherited from CCgiApplication
enum  EEvent {
  eStartRequest , eSuccess , eError , eWaiting ,
  eException , eEndRequest , eExit , eExecutable ,
  eWatchFile , eExitOnFail , eExitRequest
enum  ELogOpt { eNoLog , eLog , eLogOnError }
 Analyze registry settings ([CGI] Log) and return current logging option. More...
enum  EVersionType { eVersion_Short , eVersion_Full }
enum  EAdminCommand { eAdmin_Health , eAdmin_HealthDeep , eAdmin_Unknown }
 Admin commands passed through ncbi_admin_cmd argument. More...
enum  ERestartReason { eSR_None = 0 , eSR_Executable = 111 , eSR_WatchFile = 112 }
typedef list< SAcceptEntryTAcceptEntries
- Protected Types inherited from CNcbiApplicationAPI
enum  EPreparseArgs { ePreparse_Continue , ePreparse_Exit }
 Result of PreparseArgs() More...
enum  EDisableArgDesc { fDisableStdArgs = 0x01 }
 Disable argument descriptions. More...
enum  EHideStdArgs {
  fHideLogfile = CArgDescriptions::fHideLogfile , fHideConffile = CArgDescriptions::fHideConffile , fHideVersion = CArgDescriptions::fHideVersion , fHideFullVersion = CArgDescriptions::fHideFullVersion ,
  fHideDryRun = CArgDescriptions::fHideDryRun , fHideHelp = CArgDescriptions::fHideHelp , fHideFullHelp = CArgDescriptions::fHideFullHelp , fHideXmlHelp = CArgDescriptions::fHideXmlHelp ,
  fHideAll = CArgDescriptions::fHideAll
 Which standard flag's descriptions should not be displayed in the usage message. More...
enum  EStdioSetup {
  fNoSyncWithStdio = 0x01 , fDefault_CinBufferSize = 0x02 , fBinaryCin = 0x04 , fBinaryCout = 0x08 ,
  fDefault_SyncWithStdio = 0x00
 Flags to adjust standard I/O streams' behaviour. More...
enum  EExitMode { eNoExits , eExceptionalExits , eAllExits }
 When to return a user-set exit code. More...
enum  EAppFlags { fSkipSafeStaticDestroy = 1 << 0 }
typedef int TDisableArgDesc
 Binary OR of "EDisableArgDesc". More...
typedef int THideStdArgs
 Binary OR of "EHideStdArgs". More...
typedef int TStdioSetupFlags
 Binary OR of "EStdioSetup". More...
typedef int TAppFlags
- Static Protected Member Functions inherited from CCgiApplication
static CTime GetFileModificationTime (const string &filename)
static ERestartReason ShouldRestart (CTime &mtime, CCgiWatchFile *watcher, int delay)
- Static Protected Member Functions inherited from CNcbiApplicationAPI
static CRWLockGetInstanceLock (void)
static string FindProgramExecutablePath (int argc, const char *const *argv, string *real_path=0)
 Find the application's executable file. More...

Detailed Description

Definition at line 48 of file glcgi_image.hpp.

Constructor & Destructor Documentation

◆ CGlCgiImageApplication()

CGlCgiImageApplication::CGlCgiImageApplication ( )

Definition at line 76 of file glcgi_image.cpp.

◆ ~CGlCgiImageApplication()

CGlCgiImageApplication::~CGlCgiImageApplication ( )

Definition at line 84 of file glcgi_image.cpp.

Member Function Documentation

◆ GetAspectRatio()

float CGlCgiImageApplication::GetAspectRatio ( void  ) const

◆ Init()

void CGlCgiImageApplication::Init ( void  )

This method is called on the CGI application initialization – before starting to process a HTTP request or even receiving one.

No HTTP request (or context) is available at the time of call.

If you decide to override it, remember to call CCgiApplication::Init().

Reimplemented from CCgiApplication.

Reimplemented in CSeqTestApplication.

Definition at line 106 of file glcgi_image.cpp.

References IRegistry::Get(), CNcbiApplicationAPI::GetConfig(), and m_ErrorTemplate.

Referenced by CSeqTestApplication::Init().

◆ ProcessRequest()

int CGlCgiImageApplication::ProcessRequest ( CCgiContext context)

This is the method you should override.

It is called whenever the CGI application gets a syntaxically valid HTTP request.

contextContains the parameters of the HTTP request
Exit code; it must be zero on success

Implements CCgiApplication.

Definition at line 128 of file glcgi_image.cpp.

References ctx, CStopWatch::Elapsed(), Error(), CImageUtil::FlipY(), CGlOsContext::GetBuffer(), CException::GetMsg(), Info(), kContentTypes, LOG_POST, m_Context, m_Format, CCgiResponse::out(), Render(), CGlOsContext::SetBuffer(), CCgiResponse::SetContentType(), CImage::SetDepth(), CStopWatch::Start(), sw, type, CException::what(), CCgiResponse::WriteHeader(), CImageIO::WriteImage(), x_GetContext(), x_HandleError(), x_PostProcess(), and x_PreProcess().

◆ Render()

virtual void CGlCgiImageApplication::Render ( CCgiContext ctx)
pure virtual

◆ x_GetContext()

CGlOsContext & CGlCgiImageApplication::x_GetContext ( void  )

Definition at line 112 of file glcgi_image.cpp.

References m_Context, m_Height, m_Width, and CRef< C, Locker >::Reset().

Referenced by ProcessRequest().

◆ x_HandleError()

void CGlCgiImageApplication::x_HandleError ( CCgiContext ctx,
const string msg 

◆ x_PostProcess()

void CGlCgiImageApplication::x_PostProcess ( CCgiContext ctx)

Definition at line 266 of file glcgi_image.cpp.

Referenced by ProcessRequest().

◆ x_PreProcess()

void CGlCgiImageApplication::x_PreProcess ( CCgiContext ctx)

Reimplemented in CAlnMultiCGIApplication, and CCgiFontTestApp.

Definition at line 238 of file glcgi_image.cpp.

References ctx, CImageIO::GetTypeFromFileName(), m_Format, m_Height, m_Width, and NStr::StringToInt().

Referenced by ProcessRequest().

Member Data Documentation

◆ m_Context

CRef<CGlOsContext> CGlCgiImageApplication::m_Context

Definition at line 81 of file glcgi_image.hpp.

Referenced by GetAspectRatio(), ProcessRequest(), and x_GetContext().

◆ m_ErrorTemplate

string CGlCgiImageApplication::m_ErrorTemplate

Definition at line 89 of file glcgi_image.hpp.

Referenced by Init(), and x_HandleError().

◆ m_Format

CImageIO::EType CGlCgiImageApplication::m_Format

Definition at line 78 of file glcgi_image.hpp.

Referenced by ProcessRequest(), and x_PreProcess().

◆ m_Height

size_t CGlCgiImageApplication::m_Height

◆ m_Width

size_t CGlCgiImageApplication::m_Width

The documentation for this class was generated from the following files:
Modified on Fri Dec 01 04:49:23 2023 by rev. 669887