fastdo  0.5.12
webx_App.hpp
浏览该文件的文档.
1 #pragma once
2 
3 struct xAppServerData;
4 
5 namespace eienwebx
6 {
7 
8 class SessionServer;
9 class Response;
10 
13 {
14 public:
16  enum ErrorCode
17  {
22  };
23 
28  App( winux::Configure & conf, struct xAppServerData * servData = NULL );
29 
30  virtual ~App();
31 
33  virtual int run( void * runParam ) = 0;
34 
39  virtual ErrorCode execWebMain( Response * rsp, void * runParam, int * retCode );
40 
48  ErrorCode importDoFile( winux::String const & doFile, Response * rsp, void * runParam, int * retCode, winux::String * errDetail );
49 
51  int loadedDoFiles( winux::Mixed * arrDoFiles ) const;
52 
54  bool unloadDoFile( winux::String const & doFullPath );
55 
57  winux::DllLoader & loadModule( winux::String const & modFile );
58 
60  int loadedModules( winux::Mixed * arrModules ) const;
61 
63  bool unloadModule( winux::String const & modFile );
64 
65  // attributes ---------------------------------------------------------------------------
67  void * getParam() const { return _param; };
68 
70  template < typename _Ty >
71  _Ty getParam() const { return reinterpret_cast<_Ty>(_param); };
72 
74  void setParam( void * param ) { this->_param = param; }
75 
77  void * getRunParam() const { return _runParam; };
78 
80  template < typename _Ty >
81  _Ty getRunParam() const { return reinterpret_cast<_Ty>(_runParam); };
82 
84  struct xAppServerData * getServerData() { return _servData; }
85 
87  void setServerData( struct xAppServerData * data ) { _servData = data; }
88 
90  SessionServer * getSessServ() { return _sessServ; }
91 
93  void setSessServ( SessionServer * sessServ ) { this->_sessServ = sessServ; }
94 
95 public:
97 
98 protected:
99 
100  ErrorCode _importDoFileDevelopment( winux::String const & doFullPath, Response * rsp, void * runParam, int * retCode, winux::String * errDetail );
101  ErrorCode _importDoFileProduction( winux::String const & doFullPath, Response * rsp, void * runParam, int * retCode, winux::String * errDetail );
102 
104  void * _runParam;
105  void * _param;
107 
109  typedef int ( * PFN_WebMain )( Response *, void * );
110  std::map< winux::String, winux::SimplePointer<winux::DllLoader> > _loadedDlls;
111 
113  std::map< winux::String, WebMainFunc > _loadedWebMainFuncs;
114 
116 
121 
125 
126  friend class Request;
127  friend class FcgiRequest;
128  friend class CgiRequest;
129 
131 };
132 
133 
134 } // namespace eienwebx
ErrorCode
执行do文件的错误码
Definition: webx_App.hpp:16
SessionServer * getSessServ()
取得SessionServer
Definition: webx_App.hpp:90
winux::int64 _maxMultiFormPostSize
multipart/form-data 多部分表单POST发送数据的最大大小
Definition: webx_App.hpp:123
void setSessServ(SessionServer *sessServ)
设置SessionServer
Definition: webx_App.hpp:93
没有找到WebMain()函数
Definition: webx_App.hpp:20
_Ty getRunParam() const
取得从run()传进的参数
Definition: webx_App.hpp:81
#define EIENWEBX_DLL
SessionServer * _sessServ
SessionServer.
Definition: webx_App.hpp:103
winux::StringArray _importDoPaths
防importDoFile()无穷递归
Definition: webx_App.hpp:115
配置文件类
Definition: archives.hpp:11
Dll函数动态调用
Definition: system.hpp:246
void * _param
来自setParam()传递进来的参数
Definition: webx_App.hpp:105
void setServerData(struct xAppServerData *data)
设置服务器程序定义的相关数据
Definition: webx_App.hpp:87
#define DISABLE_OBJECT_COPY(clsname)
Definition: utilities.hpp:78
std::map< winux::String, winux::SimplePointer< winux::DllLoader > > _loadedDlls
已经加载的dll
Definition: webx_App.hpp:110
DLL动态载入器
Definition: system.hpp:219
std::vector< String > StringArray
Definition: utilities.hpp:171
winux::int64 _maxUrlencodedPostSize
application/x-www-form-urlencoded 表单POST发送数据的最大大小
Definition: webx_App.hpp:122
winux::String _uploadTmpPath
上传文件的临时目录
Definition: webx_App.hpp:124
没有找到do文件
Definition: webx_App.hpp:19
App类
Definition: webx_App.hpp:12
void * _runParam
来自run()传递进来的参数
Definition: webx_App.hpp:104
std::map< winux::String, WebMainFunc > _loadedWebMainFuncs
已经取得的WebMain()指针
Definition: webx_App.hpp:113
void setParam(void *param)
设置do传递参数
Definition: webx_App.hpp:74
代表一个客户响应
struct xAppServerData * _servData
创建App对象的程序传递进来的结构。定义是自定的,所在于全局名称空间::,可通过头文件定义结构再通过包含头...
Definition: webx_App.hpp:106
struct xAppServerData * getServerData()
取得服务器程序定义的相关数据
Definition: webx_App.hpp:84
混合体,能表示多种类型的值
Definition: utilities.hpp:586
winux::Configure & config
配置
Definition: webx_App.hpp:96
void * getRunParam() const
取得从run()传进的参数
Definition: webx_App.hpp:77
_Ty getParam() const
取得do传递的参数
Definition: webx_App.hpp:71
bool _isProduction
指示是否以产品模式运行
Definition: webx_App.hpp:120
winux::DllLoader::Function< PFN_WebMain > WebMainFunc
WebMain函数对象类型
Definition: webx_App.hpp:112
std::basic_string< tchar > String
Definition: utilities.hpp:162
void * getParam() const
取得do传递的参数
Definition: webx_App.hpp:67
long long int64
Definition: utilities.hpp:148