static HopByHop getHopByHop(const anna::DataBlock &) throw(anna::RuntimeException);
static EndToEnd getEndToEnd(const anna::DataBlock &) throw(anna::RuntimeException);
+ static bool requestBit(const anna::DataBlock &) throw(anna::RuntimeException);
+ static bool proxiableBit(const anna::DataBlock &) throw(anna::RuntimeException);
+ static bool errorBit(const anna::DataBlock &) throw(anna::RuntimeException);
+ static bool potentiallyReTransmittedMessageBit(const anna::DataBlock &) throw(anna::RuntimeException);
+
static bool isRequest(const CommandId & cid) throw() { return (cid.second); }
- static bool isRequest(const anna::DataBlock &) throw(anna::RuntimeException);
+ static bool isRequest(const anna::DataBlock & db) throw(anna::RuntimeException) { return requestBit(db); }
static bool isAnswer(const CommandId & cid) throw() { return (!isRequest(cid)); }
static bool isAnswer(const anna::DataBlock & db) throw(anna::RuntimeException) { return (!isRequest(db)); }
+
/**
* Decodes a Command Header. This helper cannot check boundaries. start pointer must be a valid command context.
*
// modifiers
static void setHopByHop(anna::DataBlock &, HopByHop) throw(anna::RuntimeException);
static void setEndToEnd(anna::DataBlock &, EndToEnd) throw(anna::RuntimeException);
+ static void setPotentiallyReTransmittedMessageBit(const anna::DataBlock & db, bool activate = true) throw(anna::RuntimeException);
};