libiqxmlrpc  0.12.4
 All Classes Namespaces Files Functions Typedefs Enumerations
dispatcher_manager.h
1 // Libiqxmlrpc - an object-oriented XML-RPC solution.
2 // Copyright (C) 2011 Anton Dedov
3 
4 #ifndef _iqxmlrpc_dispatcher_manager_
5 #define _iqxmlrpc_dispatcher_manager_
6 
7 #include "method.h"
8 
9 #include <boost/noncopyable.hpp>
10 
11 namespace iqxmlrpc {
12 
13 #ifdef _MSC_VER
14 #pragma warning(push)
15 #pragma warning(disable: 4275)
16 #endif
17 
19 
23 class LIBIQXMLRPC_API Method_dispatcher_manager: boost::noncopyable {
24  class Impl;
25  Impl* impl_;
26 
27 public:
30 
32  void register_method(const std::string& name, Method_factory_base*);
33 
35  void push_back(Method_dispatcher_base*);
36 
38 
41  Method* create_method(const Method::Data&);
42 
44  void get_methods_list(Array&) const;
45 
47  void enable_introspection();
48 };
49 
50 #ifdef _MSC_VER
51 #pragma warning(pop)
52 #endif
53 
54 } // namespace iqxmlrpc
55 
56 #endif