Remove dynamic exceptions
[anna.git] / include / anna / diameter / codec / tme / Message.hpp
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_diameter_codec_tme_Message_hpp
10 #define anna_diameter_codec_tme_Message_hpp
11
12
13 // Local
14 #include <anna/diameter/codec/Message.hpp>
15 #include <anna/diameter/codec/tme/Avp.hpp>
16
17
18 //------------------------------------------------------------------------------
19 //---------------------------------------------------------------------- #define
20 //------------------------------------------------------------------------------
21
22 namespace anna {
23
24 namespace diameter {
25
26 namespace codec {
27
28 namespace tme {
29
30 class Avp;
31 //class Engine;
32
33 /**
34 * Diameter TME message generic container
35 * Manages tme-specific formats (Unsigned16, ISDNAddress, ISDNNumber)
36 * </pre>
37 */
38 class Message : public anna::diameter::codec::Message {
39
40 protected:
41
42 //  /** Codec Engine getter: avoids have to create base engine when using its child */
43 //  virtual anna::diameter::codec::Engine * getEngine() const noexcept(false);
44
45   /**
46   * Initializes Message class information.
47   * Any reimplementation must first invoke base class method.
48   */
49   virtual void initialize() ;
50
51 public:
52
53   /**
54   * Default constructor
55   * @param engine Codec engine used
56   */
57   Message(Engine *engine = NULL) : anna::diameter::codec::Message(engine) {;}
58
59   /**
60   * Identified constructor
61   * @param id Command identifier as pair (code,request-indicator).
62   * @param engine Codec engine used
63   */
64   Message(CommandId id, Engine *engine = NULL) : anna::diameter::codec::Message(id, engine) {;}
65
66
67
68 };
69
70 }
71 }
72 }
73 }
74
75
76 #endif