ANNA Suite  2020b
Multipurpose development suite for Telco applications
Transaction.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_timex_Transaction_hpp
10 #define anna_timex_Transaction_hpp
11 
12 #include <anna/core/functions.hpp>
13 
14 #include <anna/timex/TimeEvent.hpp>
15 #include <anna/timex/Meter.hpp>
16 
17 namespace anna {
18 
19 namespace timex {
20 
34 class Transaction : public TimeEvent, public Meter {
35 public:
39  Transaction() : a_context(NULL) {;}
40 
46  Transaction(const Id id, const Millisecond & timeout) :
47  TimeEvent(id, timeout),
48  a_context(NULL)
49  {;}
50 
57  Transaction(const Id id, const Millisecond & timeout, void* context) :
58  TimeEvent(id, timeout),
59  a_context(context)
60  {;}
61 
66  void* getContext() { return a_context; }
67 
72  const void* getContext() const { return a_context; }
73 
78  void setContext(void* context) { a_context = context; }
79 
84  virtual std::string asString() const
85  {
86  std::string msg("Transaction { ");
87  msg += TimeEvent::asString();
88  msg += " | Contexto: ";
89  msg += (a_context == NULL) ? "(null)" : functions::asHexString(anna_ptrnumber_cast(a_context));
90  return msg += " }";
91  }
92 
93 private:
94  void* a_context;
95 
96  Transaction(const Transaction&);
97 };
98 
99 }
100 }
101 
102 #endif
103 
104 
anna::ptrnumber Id
Definition: TimeEvent.hpp:34
#define anna_ptrnumber_cast(pointer)
Definition: defines.hpp:118
Definition: Millisecond.hpp:24
Definition: Transaction.hpp:34
virtual std::string asString() const
Definition: Transaction.hpp:84
Transaction(const Id id, const Millisecond &timeout)
Definition: Transaction.hpp:46
void setContext(void *context)
Definition: Transaction.hpp:78
const void * getContext() const
Definition: Transaction.hpp:72
Transaction(const Id id, const Millisecond &timeout, void *context)
Definition: Transaction.hpp:57
virtual std::string asString() const
void * getContext()
Definition: Transaction.hpp:66
Definition: TimeEvent.hpp:26
Transaction()
Definition: Transaction.hpp:39
static std::string asHexString(const int number)
Definition: app.hpp:12
Definition: Meter.hpp:41