8 #ifndef CPPCMS_APPLICATIONS_POOL_H     9 #define CPPCMS_APPLICATIONS_POOL_H    11 #include <cppcms/defs.h>    12 #include <booster/noncopyable.h>    13 #include <booster/hold_ptr.h>    14 #include <booster/intrusive_ptr.h>    15 #include <booster/shared_ptr.h>    16 #include <booster/weak_ptr.h>    17 #include <booster/enable_shared_from_this.h>    19 #include <booster/auto_ptr_inc.h>    38         class application_specific_pool;
    39         class applications_pool;
    57                 static const int legacy         = 0x8000; 
   124                 class _async_legacy_policy;
   125                 class _legacy_pool_policy;
   158                         virtual std::auto_ptr<application> operator()(
service &) 
const = 0;
   170                 void mount(std::auto_ptr<factory> aps);
   180                 void mount(std::auto_ptr<factory> aps,
mount_point const &point);
   247                 get(
char const *h,
char const *s,
char const *path_info,std::string &match);
   250                 get_application_specific_pool(
char const *h,
char const *s,
char const *path_info,std::string &match);
   270                         std::auto_ptr<application> operator()(
service &s)
 const   272                                 std::auto_ptr<application> app(
new T(s));
   276                 template<
typename T,
typename P1>
   279                         simple_factory1(P1 p1) : p1_(p1) {}
   281                         std::auto_ptr<application> operator()(
service &s)
 const   283                                 std::auto_ptr<application> app(
new T(s,p1_));
   287                 template<
typename T,
typename P1,
typename P2>
   290                         simple_factory2(P1 p1,P2 p2) : p1_(p1),p2_(p2) {}
   293                         std::auto_ptr<application> operator()(
service &s)
 const   295                                 std::auto_ptr<application> app(
new T(s,p1_,p2_));
   312                 std::auto_ptr<applications_pool::factory> f(
new details::simple_factory0<T>);
   322         template<
typename T,
typename P1>
   325                 std::auto_ptr<applications_pool::factory> f(
new details::simple_factory1<T,P1>(p1));
   335         template<
typename T,
typename P1,
typename P2>
   338                 std::auto_ptr<applications_pool::factory> f(
new details::simple_factory2<T,P1,P2>(p1,p2));
   352                 template<
typename T,
typename P1>
   355                         simple_application_specific_pool1(P1 p1) : p1_(p1) {}
   362                 template<
typename T,
typename P1,
typename P2>
   365                         simple_application_specific_pool2(P1 p1,P2 p2) : p1_(p1),p2_(p2) {}
   370                                 return new T(s,p1_,p2_);
   392         template<
typename T,
typename P1>
   403         template<
typename T,
typename P1,
typename P2>
 static const int asynchronous
Asynchronous application that operates in asynchronous mode. 
Definition: applications_pool.h:50
 
static const int thread_specific
Make synchronous application thread specific. 
Definition: applications_pool.h:54
 
static const int op_mode_mask
mask to select sync vs async flags 
Definition: applications_pool.h:52
 
a base class for user application factories - to be deprecated, use application_specific_pool instead...
Definition: applications_pool.h:154
 
This class represent the central event loop of the CppCMS applications. 
Definition: service.h:62
 
std::auto_ptr< applications_pool::factory > applications_factory()
Definition: applications_pool.h:310
 
This is the namespace where all CppCMS functionality is placed. 
Definition: application.h:19
 
context is a central class that holds all specific connection related information. It encapsulates CGI request and response, cache, session and locale information 
Definition: http_context.h:47
 
booster::shared_ptr< application_specific_pool > create_pool()
Definition: applications_pool.h:382
 
intrusive_ptr is the class taken as-is from boost. 
Definition: intrusive_ptr.h:42
 
This class represents application's mount point or the rule on which specific application is selected...
Definition: mount_point.h:24
 
application class is the base class for all user created applications. 
Definition: application.h:82
 
static const int prepopulated
Make sure all applications are created from the beginning (ignored in thread_specific is set) ...
Definition: applications_pool.h:55
 
an interface for creating user applications 
Definition: applications_pool.h:66
 
static const int synchronous
Synchronous application. 
Definition: applications_pool.h:49
 
Application pool is the central class that holds user created applications. 
Definition: applications_pool.h:145
 
This class is borrowed from boost. 
Definition: enable_shared_from_this.h:30
 
static const int content_filter
Definition: applications_pool.h:56
 
Booster library namespace. The library that implements Boost Like API in ABI backward compatible way...
Definition: application.h:23
 
this is the central event loop that dispatches all requests. 
Definition: io_service.h:37
 
This class makes impossible to copy any class derived from this one. 
Definition: noncopyable.h:15