X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdiameter%2Fcodec%2Ffunctions.hpp;h=770fcc1452fdcff1e49346ca2d161fedc6f0b026;hb=129af2a9a7c287843be5bd443c5b1ad9b08438a8;hp=df544e02399dd351fa392507248af43a9d274015;hpb=6f990d26c49e6f5bbb31cb1a2a47615918b6c339;p=anna.git diff --git a/include/anna/diameter/codec/functions.hpp b/include/anna/diameter/codec/functions.hpp index df544e0..770fcc1 100644 --- a/include/anna/diameter/codec/functions.hpp +++ b/include/anna/diameter/codec/functions.hpp @@ -68,13 +68,19 @@ struct functions { 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. * @@ -127,6 +133,7 @@ struct functions { // 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); };