System test feature
[anna.git] / include / anna / diameter / codec / Message.hpp
index 133c4af..a3916f7 100644 (file)
@@ -163,14 +163,16 @@ public:
 
   /**
   * Default constructor
+  * @param engine Codec engine used
   */
-  Message();
+  Message(Engine *engine = NULL);
 
   /**
   * Identified constructor
   * @param id Command identifier as pair (code,request-indicator).
+  * @param engine Codec engine used
   */
-  Message(CommandId id);
+  Message(CommandId id, Engine *engine = NULL);
 
 
   /** Sets the codec engine */
@@ -242,18 +244,20 @@ public:
   /**
      Sets/unsets E bit activation.
      Application should not have to use this because dictionary information is used in order to configure flags when Message identifier is stored.
+     This flag MUST NOT be set in request messages (in this case, it will be ignored).
 
      @param activate Activates/deactivates the bit. True by default.
   */
-  void setErrorBit(bool activate = true) throw() { if(activate) a_flags |= EBitMask; else a_flags &= (~EBitMask); }
+  void setErrorBit(bool activate = true) throw() { if(isRequest()) return; if(activate) a_flags |= EBitMask; else a_flags &= (~EBitMask); }
 
   /**
      Sets/unsets T bit activation.
      Application should not have to use this because dictionary information is used in order to configure flags when Message identifier is stored.
+     This flag MUST NOT be set in answer messages (in this case, it will be ignored).
 
      @param activate Activates/deactivates the bit. True by default.
   */
-  void setPotentiallyReTransmittedMessageBit(bool activate = true) throw() { if(activate) a_flags |= TBitMask; else a_flags &= (~TBitMask); }
+  void setPotentiallyReTransmittedMessageBit(bool activate = true) throw() { if(isAnswer()) return; if(activate) a_flags |= TBitMask; else a_flags &= (~TBitMask); }
 
   /**
      Sets the message application id.
@@ -270,7 +274,7 @@ public:
 
      @param aid Application-id.
   */
-  void setApplicationId(U32 aid) throw();
+  void setApplicationId(U32 aid) throw(anna::RuntimeException);
 
   /**
      Sets the message hop-by-hop