fastdo  0.6.8
eienwebx::App类 参考

App类,内部有Do文件载入/执行功能 更多...

#include <webx_App.hpp>

类 eienwebx::App 继承关系图:
eienwebx::App 的协作图:

struct  AppConfig
 配置参数,从配置文件中读取的设置 更多...
 

Public 类型

enum  ErrorCode { Err_Success, Err_DoFileNotFound, Err_WebMainNotFound, Err_InfiniteRecursion }
 执行do文件的错误码 更多...
 

Public 成员函数

 App ()
 构造函数0 更多...
 
 App (winux::ConfigureSettings const &settings, AppServerExternalData *externalData)
 构造函数2 更多...
 
virtual ~App ()
 析构函数 更多...
 
bool init (winux::ConfigureSettings const &settings, AppServerExternalData *externalData)
 初始化App对象 更多...
 
virtual int run (void *runParam)
 运行处理 更多...
 
int loadedDoFiles (winux::Mixed *arrDoFiles) const
 产品模式下,显示所有已经加载的do文件 更多...
 
bool unloadDoFile (winux::String const &doFullPath)
 卸载指定的do文件 更多...
 
winux::DllLoaderloadModule (winux::String const &modFullPath)
 加载一个模块,若已经加载则返回其引用. 更多...
 
int loadedModules (winux::Mixed *arrModules) const
 显示已经加载的模块 更多...
 
bool unloadModule (winux::String const &modFullPath)
 卸载一个模块 更多...
 
ApploadEnv ()
 加载可执行文件的环境变量 更多...
 
winux::String dumpEnv () const
 倾泻出应用全部环境变量 更多...
 
virtual ErrorCode execWebMain (winux::String const &doFullPath, Response *rsp, void *runParam, int *retCode)
 执行生成页面内容的过程,载入绝对路径doFullPath的do文件,并调用其WebMain()。 更多...
 
ErrorCode importDoFile (winux::String const &doFullPath, Response *rsp, void *runParam, int *retCode, winux::String *errDetail)
 import一个do文件,并把它的输出作为指定rsp的输出 更多...
 
void * getParam () const
 取得do传递的参数 更多...
 
template<typename _Ty >
_Ty getParam () const
 取得do传递的参数 更多...
 
void setParam (void *param)
 设置do传递参数 更多...
 
void * getRunParam () const
 取得从run()传进的参数 更多...
 
template<typename _Ty >
_Ty getRunParam () const
 取得从run()传进的参数 更多...
 
AppServerExternalDatagetExternalData ()
 取得外部定义的相关数据 更多...
 
void setExternalData (AppServerExternalData *data)
 设置外部定义的相关数据 更多...
 
SessionServergetSessServ ()
 取得SessionServer 更多...
 
void setSessServ (SessionServer *sessServ)
 设置SessionServer 更多...
 

Public 属性

winux::ConfigureSettings settings
 配置对象 更多...
 
struct eienwebx::App::AppConfig appConfig
 
winux::StringStringMap environVars
 可执行文件的environ环境变量 更多...
 

Protected 类型

typedef int(* PFN_WebMain) (Response *, void *)
 do文件中WebMain()的类型 更多...
 
typedef winux::DllLoader::Function< PFN_WebMainWebMainFunc
 WebMain函数对象类型 更多...
 

Protected 成员函数

void _clearModules ()
 清空已加载的模块和WebMain函数 更多...
 
ErrorCode _importDoFileDevelopment (winux::String const &doFullPath, Response *rsp, void *runParam, int *retCode, winux::String *errDetail)
 
ErrorCode _importDoFileProduction (winux::String const &doFullPath, Response *rsp, void *runParam, int *retCode, winux::String *errDetail)
 

Protected 属性

SessionServer_sessServ
 会话服务器 更多...
 
void * _runParam
 来自run()传递进来的参数 更多...
 
void * _param
 来自setParam()传递进来的参数 更多...
 
AppServerExternalData_externalData
 创建App对象的程序传递进来的结构。由外部定义,定义是自定的,所在于全局名称空间::,可通过头文件定义结构再通过包含头文件去使用 更多...
 
std::map< winux::String, winux::SimplePointer< winux::DllLoader > > _loadedDlls
 已经加载的dll 更多...
 
std::map< winux::String, WebMainFunc_loadedWebMainFuncs
 已经取得的WebMain()指针 更多...
 
winux::Mutex _mtxApp
 互斥量,保护App共用成员数据 更多...
 
bool _isSetDoDirAsWorkDir
 是否设置Do文件目录作为工作目录,多线程环境下应该设为false 更多...
 

友元

class Request
 
class FcgiRequest
 
class CgiRequest
 

详细描述

App类,内部有Do文件载入/执行功能

在文件 webx_App.hpp13 行定义.

成员类型定义说明

typedef int( * eienwebx::App::PFN_WebMain) (Response *, void *)
protected

do文件中WebMain()的类型

在文件 webx_App.hpp158 行定义.

WebMain函数对象类型

在文件 webx_App.hpp161 行定义.

成员枚举类型说明

执行do文件的错误码

枚举值
Err_Success 

成功

Err_DoFileNotFound 

没有找到do文件

Err_WebMainNotFound 

没有找到WebMain()函数

Err_InfiniteRecursion 

无穷递归

在文件 webx_App.hpp17 行定义.

构造及析构函数说明

eienwebx::App::App ( )

构造函数0

eienwebx::App::App ( winux::ConfigureSettings const &  settings,
AppServerExternalData externalData 
)

构造函数2

参数
settings配置设置对象
servData服务器程序定义的相关数据
virtual eienwebx::App::~App ( )
virtual

析构函数

成员函数说明

void eienwebx::App::_clearModules ( )
protected

清空已加载的模块和WebMain函数

ErrorCode eienwebx::App::_importDoFileDevelopment ( winux::String const &  doFullPath,
Response rsp,
void *  runParam,
int *  retCode,
winux::String errDetail 
)
protected
ErrorCode eienwebx::App::_importDoFileProduction ( winux::String const &  doFullPath,
Response rsp,
void *  runParam,
int *  retCode,
winux::String errDetail 
)
protected
winux::String eienwebx::App::dumpEnv ( ) const

倾泻出应用全部环境变量

virtual ErrorCode eienwebx::App::execWebMain ( winux::String const &  doFullPath,
Response rsp,
void *  runParam,
int *  retCode 
)
virtual

执行生成页面内容的过程,载入绝对路径doFullPath的do文件,并调用其WebMain()。

返回
0:表示成功,1:表示找不到或无权限,2:表示没有WebMain()
AppServerExternalData* eienwebx::App::getExternalData ( )
inline

取得外部定义的相关数据

在文件 webx_App.hpp103 行定义.

void* eienwebx::App::getParam ( ) const
inline

取得do传递的参数

在文件 webx_App.hpp86 行定义.

template<typename _Ty >
_Ty eienwebx::App::getParam ( ) const
inline

取得do传递的参数

在文件 webx_App.hpp90 行定义.

void* eienwebx::App::getRunParam ( ) const
inline

取得从run()传进的参数

在文件 webx_App.hpp96 行定义.

template<typename _Ty >
_Ty eienwebx::App::getRunParam ( ) const
inline

取得从run()传进的参数

在文件 webx_App.hpp100 行定义.

SessionServer* eienwebx::App::getSessServ ( )
inline

取得SessionServer

在文件 webx_App.hpp109 行定义.

ErrorCode eienwebx::App::importDoFile ( winux::String const &  doFullPath,
Response rsp,
void *  runParam,
int *  retCode,
winux::String errDetail 
)

import一个do文件,并把它的输出作为指定rsp的输出

参数
doFullPathdo文件绝对路径
rsp指示输出到的Response对象
retCode表示导入do的WebMain()返回代码,为NULL则忽略此值
errDetail载入do的详细错误信息
返回
0:表示导入成功,1:表示找不到或无权限,2:表示没有WebMain(),3:表示无穷递归调用了
bool eienwebx::App::init ( winux::ConfigureSettings const &  settings,
AppServerExternalData externalData 
)

初始化App对象

int eienwebx::App::loadedDoFiles ( winux::Mixed arrDoFiles) const

产品模式下,显示所有已经加载的do文件

int eienwebx::App::loadedModules ( winux::Mixed arrModules) const

显示已经加载的模块

App& eienwebx::App::loadEnv ( )

加载可执行文件的环境变量

winux::DllLoader& eienwebx::App::loadModule ( winux::String const &  modFullPath)

加载一个模块,若已经加载则返回其引用.

参数
modFullPathmod文件绝对路径
virtual int eienwebx::App::run ( void *  runParam)
virtual

运行处理

eienwebx::HttpApp , 以及 eienwebx::FcgiApp 重载.

void eienwebx::App::setExternalData ( AppServerExternalData data)
inline

设置外部定义的相关数据

在文件 webx_App.hpp106 行定义.

void eienwebx::App::setParam ( void *  param)
inline

设置do传递参数

在文件 webx_App.hpp93 行定义.

void eienwebx::App::setSessServ ( SessionServer sessServ)
inline

设置SessionServer

在文件 webx_App.hpp112 行定义.

bool eienwebx::App::unloadDoFile ( winux::String const &  doFullPath)

卸载指定的do文件

参数
doFullPathdo文件绝对路径
bool eienwebx::App::unloadModule ( winux::String const &  modFullPath)

卸载一个模块

参数
modFullPathmod文件绝对路径

友元及相关函数文档

friend class CgiRequest
friend

在文件 webx_App.hpp169 行定义.

friend class FcgiRequest
friend

在文件 webx_App.hpp168 行定义.

friend class Request
friend

在文件 webx_App.hpp167 行定义.

类成员变量说明

AppServerExternalData* eienwebx::App::_externalData
protected

创建App对象的程序传递进来的结构。由外部定义,定义是自定的,所在于全局名称空间::,可通过头文件定义结构再通过包含头文件去使用

在文件 webx_App.hpp155 行定义.

bool eienwebx::App::_isSetDoDirAsWorkDir
protected

是否设置Do文件目录作为工作目录,多线程环境下应该设为false

在文件 webx_App.hpp165 行定义.

std::map< winux::String, winux::SimplePointer<winux::DllLoader> > eienwebx::App::_loadedDlls
protected

已经加载的dll

在文件 webx_App.hpp159 行定义.

std::map< winux::String, WebMainFunc > eienwebx::App::_loadedWebMainFuncs
protected

已经取得的WebMain()指针

在文件 webx_App.hpp162 行定义.

winux::Mutex eienwebx::App::_mtxApp
protected

互斥量,保护App共用成员数据

在文件 webx_App.hpp164 行定义.

void* eienwebx::App::_param
protected

来自setParam()传递进来的参数

在文件 webx_App.hpp154 行定义.

void* eienwebx::App::_runParam
protected

来自run()传递进来的参数

在文件 webx_App.hpp153 行定义.

SessionServer* eienwebx::App::_sessServ
protected

会话服务器

在文件 webx_App.hpp152 行定义.

struct eienwebx::App::AppConfig eienwebx::App::appConfig
winux::StringStringMap eienwebx::App::environVars

可执行文件的environ环境变量

在文件 webx_App.hpp143 行定义.

winux::ConfigureSettings eienwebx::App::settings

配置对象

配置设置对象

在文件 webx_App.hpp118 行定义.


该类的文档由以下文件生成: