ANNA Suite  2020b
Multipurpose development suite for Telco applications
Request.hpp
Go to the documentation of this file.
1 // ANNA - Anna is Not Nothingness Anymore //
2 // //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
4 // //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7 
8 
9 #ifndef anna_ldap_Request_hpp
10 #define anna_ldap_Request_hpp
11 
12 #include <anna/ldap/defines.hpp>
13 #include <anna/ldap/ClassCode.hpp>
14 
15 namespace anna {
16 
17 namespace xml {
18 class Node;
19 }
20 
21 namespace ldap {
22 
23 class Session;
24 
28 class Request {
29 public:
33  struct OnExpiry { enum _v { Abandon, Ignore }; };
34 
39  ClassCode::_v getClassCode() const { return a_classCode; }
40 
45  OnExpiry::_v getOnExpiry() const { return a_onExpiry; }
46 
53  void setOnExpiry(const OnExpiry::_v onExpiry) { a_onExpiry = onExpiry; }
54 
59  virtual std::string asString() const ;
60 
66  virtual xml::Node* asXML(xml::Node* parent) const ;
67 
71  virtual void clear() = 0;
72 
80  static const char* asCString(const std::string& value) {
81  return (value.empty() == true) ? NULL : value.c_str();
82  }
83 
90  static const char* asText(const std::string& value) {
91  return (value.empty() == true) ? "<null>" : value.c_str();
92  }
93 
94 protected:
100  Request(const ClassCode::_v classCode, const OnExpiry::_v onExpiry) : a_classCode(classCode), a_onExpiry(onExpiry) {;}
101 
102 private:
103  ClassCode::_v a_classCode;
104  OnExpiry::_v a_onExpiry;
105 
106  virtual IdMessage send(Session&) const = 0;
107 
108  friend class Session;
109 };
110 
111 }
112 }
113 
114 #endif
115 
Definition: Session.hpp:38
Request(const ClassCode::_v classCode, const OnExpiry::_v onExpiry)
Definition: Request.hpp:100
static const char * asCString(const std::string &value)
Definition: Request.hpp:80
_v
Definition: ClassCode.hpp:22
Definition: Node.hpp:56
ClassCode::_v getClassCode() const
Definition: Request.hpp:39
static const char * asText(const std::string &value)
Definition: Request.hpp:90
xml::Node Node
Definition: Node.hpp:21
_v
Definition: Request.hpp:33
Definition: Request.hpp:28
Definition: app.hpp:12
OnExpiry::_v getOnExpiry() const
Definition: Request.hpp:45
int IdMessage
Definition: defines.hpp:16
Definition: Request.hpp:33
void setOnExpiry(const OnExpiry::_v onExpiry)
Definition: Request.hpp:53