diff --git a/src/tl/tl/tlProtocolBufferStruct.h b/src/tl/tl/tlProtocolBufferStruct.h index e3624e3e8..c22635594 100644 --- a/src/tl/tl/tlProtocolBufferStruct.h +++ b/src/tl/tl/tlProtocolBufferStruct.h @@ -486,20 +486,20 @@ class TL_PUBLIC PBElementBase public: typedef PBElementList::iterator iterator; - PBElementBase (int tag, const PBElementList &children) - : m_tag (tag), mp_children (new PBElementList (children)), m_owns_child_list (true) + PBElementBase (const std::string &name, int tag, const PBElementList &children) + : m_name (name), m_tag (tag), mp_children (new PBElementList (children)), m_owns_child_list (true) { // .. nothing yet .. } - PBElementBase (int tag, const PBElementList *children) - : m_tag (tag), mp_children (children), m_owns_child_list (false) + PBElementBase (const std::string &name, int tag, const PBElementList *children) + : m_name (name), m_tag (tag), mp_children (children), m_owns_child_list (false) { // .. nothing yet .. } PBElementBase (const PBElementBase &d) - : m_tag (d.m_tag), m_owns_child_list (d.m_owns_child_list) + : m_name (d.m_name), m_tag (d.m_tag), m_owns_child_list (d.m_owns_child_list) { if (m_owns_child_list) { mp_children = new PBElementList (*d.mp_children); @@ -529,6 +529,11 @@ public: return m_tag; } + const std::string &name () const + { + return m_name; + } + iterator begin () const { return mp_children->begin (); @@ -540,6 +545,7 @@ public: } private: + std::string m_name; int m_tag; const PBElementList *mp_children; bool m_owns_child_list; @@ -567,14 +573,14 @@ class TL_PUBLIC_TEMPLATE PBElement : public PBElementBase { public: - PBElement (const Read &r, const Write &w, int tag, const PBElementList &children) - : PBElementBase (tag, children), m_r (r), m_w (w) + PBElement (const Read &r, const Write &w, const std::string &name, int tag, const PBElementList &children) + : PBElementBase (name, tag, children), m_r (r), m_w (w) { // .. nothing yet .. } - PBElement (const Read &r, const Write &w, int tag, const PBElementList *children) - : PBElementBase (tag, children), m_r (r), m_w (w) + PBElement (const Read &r, const Write &w, const std::string &name, int tag, const PBElementList *children) + : PBElementBase (name, tag, children), m_r (r), m_w (w) { // .. nothing yet .. } @@ -683,14 +689,14 @@ class TL_PUBLIC_TEMPLATE PBElementWithParentRef : public PBElement { public: - PBElementWithParentRef (const Read &r, const Write &w, int tag, const PBElementList &children) - : PBElement (r, w, tag, children) + PBElementWithParentRef (const Read &r, const Write &w, const std::string &name, int tag, const PBElementList &children) + : PBElement (r, w, name, tag, children) { // .. nothing yet .. } - PBElementWithParentRef (const Read &r, const Write &w, int tag, const PBElementList *children) - : PBElement (r, w, tag, children) + PBElementWithParentRef (const Read &r, const Write &w, const std::string &name, int tag, const PBElementList *children) + : PBElement (r, w, name, tag, children) { // .. nothing yet .. } @@ -742,8 +748,8 @@ class TL_PUBLIC_TEMPLATE PBMember : public PBElementBase { public: - PBMember (const Read &r, const Write &w, int tag, Converter c = Converter ()) - : PBElementBase (tag, PBElementList::empty ()), m_r (r), m_w (w), m_c (c) + PBMember (const Read &r, const Write &w, const std::string &name, int tag, Converter c = Converter ()) + : PBElementBase (name, tag, PBElementList::empty ()), m_r (r), m_w (w), m_c (c) { // .. nothing yet .. } @@ -969,62 +975,69 @@ class TL_PUBLIC_TEMPLATE PBStruct { public: PBStruct (const std::string &name, int name_tag, const PBElementList *children) - : PBElementBase (0, children), m_name (name), m_name_tag (name_tag) + : PBElementBase (name, name_tag, children) { // .. nothing yet .. } PBStruct (const std::string &name, int name_tag, const PBElementList &children) - : PBElementBase (0, children), m_name (name), m_name_tag (name_tag) + : PBElementBase (name, name_tag, children) { // .. nothing yet .. } PBStruct (const PBStruct &d) - : PBElementBase (d), m_name (d.name ()), m_name_tag (d.name_tag ()) + : PBElementBase (d) { // .. nothing yet .. } + /** + * @brief Creates a deep copy of the structure + */ virtual PBElementBase *clone () const { return new PBStruct (*this); } - const std::string &name () const - { - return m_name; - } - - int name_tag () const - { - return m_name_tag; - } - + /** + * @brief Serializes the given object (root) to the writer + */ void write (tl::ProtocolBufferWriterBase &writer, const Obj &root) const { PBWriterState writer_state; writer_state.push (& root); - writer.write (name_tag (), name ()); + writer.write (tag (), name ()); for (PBElementBase::iterator c = this->begin (); c != this->end (); ++c) { c->get ()->write (this, writer, writer_state); } } + /** + * @brief Deserializes the given object (root) from the reader + */ void parse (tl::ProtocolBufferReaderBase &reader, Obj &root) const { - PBObjTag tag; + PBObjTag self_tag; PBReaderState rs; rs.push (&root); PBParser h; - h.expect_header (reader, m_name_tag, m_name); + h.expect_header (reader, tag (), name ()); h.parse (reader, this, &rs); - rs.pop (tag); + rs.pop (self_tag); tl_assert (rs.empty ()); } + /** + * @brief Produces a definition for the protoc compiler + */ + std::string create_def () const + { + return std::string (); // @@@ + } + private: virtual void write (const PBElementBase*, tl::ProtocolBufferWriterBase &, PBWriterState &) const { @@ -1045,9 +1058,6 @@ private: { // disable base class implementation } - - std::string m_name; - int m_name_tag; }; /** @@ -1351,11 +1361,11 @@ private: */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (void (Parent::*setter) (const Value &), int tag, const PBElementList *children) +pb_make_element (void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberDummyReadAdaptor (), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1363,11 +1373,11 @@ pb_make_element (void (Parent::*setter) (const Value &), int tag, const PBElemen */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (void (Parent::*setter) (Value *), int tag, const PBElementList *children) +pb_make_element (void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberDummyReadAdaptor (), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1375,11 +1385,11 @@ pb_make_element (void (Parent::*setter) (Value *), int tag, const PBElementList */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList *children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1387,11 +1397,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList *children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1399,11 +1409,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberAccWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value), int tag, const PBElementList *children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag, children); + PBMemberAccWriteAdaptor (setter), name, tag, children); } /** @@ -1411,11 +1421,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList *children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1423,11 +1433,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList *children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1435,11 +1445,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value */ template PBElement, PBMemberAccWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value), int tag, const PBElementList *children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag, children); + PBMemberAccWriteAdaptor (setter), name, tag, children); } /** @@ -1447,11 +1457,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value */ template PBElement, PBMemberWriteAdaptor > -pb_make_element (Value Parent::*member, int tag, const PBElementList *children) +pb_make_element (Value Parent::*member, const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberWriteAdaptor > ( PBMemberReadAdaptor (member), - PBMemberWriteAdaptor (member), tag, children); + PBMemberWriteAdaptor (member), name, tag, children); } /** @@ -1459,11 +1469,11 @@ pb_make_element (Value Parent::*member, int tag, const PBElementList *children) */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList *children) +pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1471,11 +1481,11 @@ pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, v */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), int tag, const PBElementList *children) +pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList *children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1483,11 +1493,11 @@ pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, v */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element (void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberDummyReadAdaptor (), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1495,11 +1505,11 @@ pb_make_element (void (Parent::*setter) (const Value &), int tag, const PBElemen */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element (void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberDummyReadAdaptor (), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1507,11 +1517,11 @@ pb_make_element (void (Parent::*setter) (Value *), int tag, const PBElementList */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1519,11 +1529,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1531,11 +1541,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberAccWriteAdaptor > -pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value), int tag, const PBElementList &children) +pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag, children); + PBMemberAccWriteAdaptor (setter), name, tag, children); } /** @@ -1543,11 +1553,11 @@ pb_make_element (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1555,11 +1565,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (const */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1567,11 +1577,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value */ template PBElement, PBMemberAccWriteAdaptor > -pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value), int tag, const PBElementList &children) +pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccWriteAdaptor > ( PBMemberAccReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag, children); + PBMemberAccWriteAdaptor (setter), name, tag, children); } /** @@ -1579,11 +1589,11 @@ pb_make_element (Value (Parent::*getter) () const, void (Parent::*setter) (Value */ template PBElement, PBMemberWriteAdaptor > -pb_make_element (Value Parent::*member, int tag, const PBElementList &children) +pb_make_element (Value Parent::*member, const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberWriteAdaptor > ( PBMemberReadAdaptor (member), - PBMemberWriteAdaptor (member), tag, children); + PBMemberWriteAdaptor (member), name, tag, children); } /** @@ -1591,11 +1601,11 @@ pb_make_element (Value Parent::*member, int tag, const PBElementList &children) */ template PBElement, PBMemberAccRefWriteAdaptor > -pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberAccRefWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } /** @@ -1603,65 +1613,65 @@ pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, v */ template PBElement, PBMemberTransferWriteAdaptor > -pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElement, PBMemberTransferWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberAccRefWriteAdaptor > -pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElementWithParentRef, PBMemberAccRefWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberAccRefWriteAdaptor > -pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList *children) +pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList *children) { return PBElementWithParentRef, PBMemberAccRefWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberTransferWriteAdaptor > -pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElementWithParentRef, PBMemberTransferWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberTransferWriteAdaptor > -pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), int tag, const PBElementList *children) +pb_make_element_with_parent_ref (const Value &(Parent::*getter) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList *children) { return PBElementWithParentRef, PBMemberTransferWriteAdaptor > ( PBMemberAccRefReadAdaptor (getter), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberAccRefWriteAdaptor > -pb_make_element_with_parent_ref (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), int tag, const PBElementList &children) +pb_make_element_with_parent_ref (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, const PBElementList &children) { return PBElementWithParentRef, PBMemberAccRefWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberAccRefWriteAdaptor (setter), tag, children); + PBMemberAccRefWriteAdaptor (setter), name, tag, children); } template PBElementWithParentRef, PBMemberTransferWriteAdaptor > -pb_make_element_with_parent_ref (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), int tag, const PBElementList &children) +pb_make_element_with_parent_ref (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (Value *), const std::string &name, int tag, const PBElementList &children) { return PBElementWithParentRef, PBMemberTransferWriteAdaptor > ( PBMemberIterReadAdaptor (begin, end), - PBMemberTransferWriteAdaptor (setter), tag, children); + PBMemberTransferWriteAdaptor (setter), name, tag, children); } /** @@ -1689,11 +1699,11 @@ struct PBStdConverter */ template PBMember, PBMemberDummyWriteAdaptor , PBStdConverter > -pb_make_member (int tag) +pb_make_member (const std::string &name, int tag) { return PBMember, PBMemberDummyWriteAdaptor , PBStdConverter > ( PBMemberDummyReadAdaptor (), - PBMemberDummyWriteAdaptor (), tag); + PBMemberDummyWriteAdaptor (), name, tag); } /** @@ -1701,11 +1711,11 @@ pb_make_member (int tag) */ template PBMember, PBMemberWriteAdaptor , PBStdConverter > -pb_make_member (Value Parent::*member, int tag) +pb_make_member (Value Parent::*member, const std::string &name, int tag) { return PBMember, PBMemberWriteAdaptor , PBStdConverter > ( PBMemberReadAdaptor (member), - PBMemberWriteAdaptor (member), tag); + PBMemberWriteAdaptor (member), name, tag); } /** @@ -1713,11 +1723,11 @@ pb_make_member (Value Parent::*member, int tag) */ template PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > -pb_make_member (void (Parent::*setter) (const Value &), int tag) +pb_make_member (void (Parent::*setter) (const Value &), const std::string &name, int tag) { return PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > ( PBMemberDummyReadAdaptor (), - PBMemberAccRefWriteAdaptor (setter), tag); + PBMemberAccRefWriteAdaptor (setter), name, tag); } /** @@ -1725,11 +1735,11 @@ pb_make_member (void (Parent::*setter) (const Value &), int tag) */ template PBMember, PBMemberAccWriteAdaptor , PBStdConverter > -pb_make_member (void (Parent::*setter) (Value), int tag) +pb_make_member (void (Parent::*setter) (Value), const std::string &name, int tag) { return PBMember, PBMemberAccWriteAdaptor , PBStdConverter > ( PBMemberDummyReadAdaptor (), - PBMemberAccWriteAdaptor (setter), tag); + PBMemberAccWriteAdaptor (setter), name, tag); } /** @@ -1737,11 +1747,11 @@ pb_make_member (void (Parent::*setter) (Value), int tag) */ template PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > -pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag) +pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag) { return PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag); + PBMemberAccRefWriteAdaptor (setter), name, tag); } /** @@ -1749,11 +1759,11 @@ pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBMember, PBMemberAccWriteAdaptor , PBStdConverter > -pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value), int tag) +pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag) { return PBMember, PBMemberAccWriteAdaptor , PBStdConverter > ( PBMemberAccReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag); + PBMemberAccWriteAdaptor (setter), name, tag); } /** @@ -1761,11 +1771,11 @@ pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value) */ template PBMember, PBMemberAccWriteAdaptor , PBStdConverter > -pb_make_member (const Value & (Parent::*getter) () const, void (Parent::*setter) (Value), int tag) +pb_make_member (const Value & (Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag) { return PBMember, PBMemberAccWriteAdaptor , PBStdConverter > ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag); + PBMemberAccWriteAdaptor (setter), name, tag); } /** @@ -1773,11 +1783,11 @@ pb_make_member (const Value & (Parent::*getter) () const, void (Parent::*setter) */ template PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > -pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag) +pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag) { return PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > ( PBMemberAccReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag); + PBMemberAccRefWriteAdaptor (setter), name, tag); } /** @@ -1785,11 +1795,11 @@ pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (const */ template PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > -pb_make_member (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), int tag) +pb_make_member (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag) { return PBMember, PBMemberAccRefWriteAdaptor , PBStdConverter > ( PBMemberIterReadAdaptor (begin, end), - PBMemberAccRefWriteAdaptor (setter), tag); + PBMemberAccRefWriteAdaptor (setter), name, tag); } /** @@ -1797,11 +1807,11 @@ pb_make_member (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, vo */ template PBMember, PBMemberWriteAdaptor , Converter> -pb_make_member (Value Parent::*member, int tag, Converter conv) +pb_make_member (Value Parent::*member, const std::string &name, int tag, Converter conv) { return PBMember, PBMemberWriteAdaptor , Converter> ( PBMemberReadAdaptor (member), - PBMemberWriteAdaptor (member), tag, conv); + PBMemberWriteAdaptor (member), name, tag, conv); } /** @@ -1809,11 +1819,11 @@ pb_make_member (Value Parent::*member, int tag, Converter conv) */ template PBMember, PBMemberAccRefWriteAdaptor , Converter> -pb_make_member (void (Parent::*setter) (const Value &), int tag, Converter conv) +pb_make_member (void (Parent::*setter) (const Value &), const std::string &name, int tag, Converter conv) { return PBMember, PBMemberAccRefWriteAdaptor , Converter> ( PBMemberDummyReadAdaptor (), - PBMemberAccRefWriteAdaptor (setter), tag, conv); + PBMemberAccRefWriteAdaptor (setter), name, tag, conv); } /** @@ -1821,11 +1831,11 @@ pb_make_member (void (Parent::*setter) (const Value &), int tag, Converter conv) */ template PBMember, PBMemberDummyWriteAdaptor , Converter> -pb_make_member (void (Parent::*setter) (Value), int tag, Converter conv) +pb_make_member (void (Parent::*setter) (Value), const std::string &name, int tag, Converter conv) { return PBMember, PBMemberDummyWriteAdaptor , Converter> ( PBMemberAccReadAdaptor (setter), - PBMemberDummyWriteAdaptor (), tag, conv); + PBMemberDummyWriteAdaptor (), name, tag, conv); } /** @@ -1833,11 +1843,11 @@ pb_make_member (void (Parent::*setter) (Value), int tag, Converter conv) */ template PBMember, PBMemberAccRefWriteAdaptor , Converter> -pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), int tag, Converter conv) +pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, Converter conv) { return PBMember, PBMemberAccRefWriteAdaptor , Converter> ( PBMemberAccRefReadAdaptor (getter), - PBMemberAccRefWriteAdaptor (setter), tag, conv); + PBMemberAccRefWriteAdaptor (setter), name, tag, conv); } /** @@ -1845,11 +1855,11 @@ pb_make_member (const Value &(Parent::*getter) () const, void (Parent::*setter) */ template PBMember, PBMemberAccWriteAdaptor , Converter> -pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value), int tag, Converter conv) +pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value), const std::string &name, int tag, Converter conv) { return PBMember, PBMemberAccWriteAdaptor , Converter> ( PBMemberAccReadAdaptor (getter), - PBMemberAccWriteAdaptor (setter), tag, conv); + PBMemberAccWriteAdaptor (setter), name, tag, conv); } /** @@ -1857,11 +1867,11 @@ pb_make_member (Value (Parent::*getter) () const, void (Parent::*setter) (Value) */ template PBMember, PBMemberAccRefWriteAdaptor , Converter> -pb_make_member (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), int tag, Converter conv) +pb_make_member (Iter (Parent::*begin) () const, Iter (Parent::*end) () const, void (Parent::*setter) (const Value &), const std::string &name, int tag, Converter conv) { return PBMember, PBMemberAccRefWriteAdaptor , Converter> ( PBMemberIterReadAdaptor (begin, end), - PBMemberAccRefWriteAdaptor (setter), tag, conv); + PBMemberAccRefWriteAdaptor (setter), name, tag, conv); } } diff --git a/src/tl/unit_tests/tlProtocolBufferTests.cc b/src/tl/unit_tests/tlProtocolBufferTests.cc index 68ea64f06..e50b33a45 100644 --- a/src/tl/unit_tests/tlProtocolBufferTests.cc +++ b/src/tl/unit_tests/tlProtocolBufferTests.cc @@ -206,21 +206,18 @@ struct Root { }; static tl::PBElementList child_struct = - tl::pb_make_member (&Child::txt, 1) + - tl::pb_make_member (&Child::d, 2) + - tl::pb_make_element (&Child::begin_children, &Child::end_children, &Child::add_child, 3, &child_struct); + tl::pb_make_member (&Child::txt, "txt", 1) + + tl::pb_make_member (&Child::d, "d", 2) + + tl::pb_make_element (&Child::begin_children, &Child::end_children, &Child::add_child, "children", 3, &child_struct); static tl::PBStruct structure ("pbtest-struct", 88888888, - tl::pb_make_member (&Root::begin_subs, &Root::end_subs, &Root::add_sub, 1) + - tl::pb_make_member (&Root::begin_isubs, &Root::end_isubs, &Root::add_isub, 2) + - tl::pb_make_element (&Root::begin_children, &Root::end_children, &Root::add_child, 3, &child_struct) + - tl::pb_make_element (&Root::get_child, &Root::set_child, 4, - tl::pb_make_member (&Child::txt, 1) + - tl::pb_make_member (&Child::d, 2) - ) + - tl::pb_make_member (&Root::m, 5) + - tl::pb_make_member (&Root::get_mi, &Root::set_mi, 6) + - tl::pb_make_member (&Root::b, 7) + tl::pb_make_member (&Root::begin_subs, &Root::end_subs, &Root::add_sub, "sub", 1) + + tl::pb_make_member (&Root::begin_isubs, &Root::end_isubs, &Root::add_isub, "isub", 2) + + tl::pb_make_element (&Root::begin_children, &Root::end_children, &Root::add_child, "childredn", 3, &child_struct) + + tl::pb_make_element (&Root::get_child, &Root::set_child, "child", 4, &child_struct) + + tl::pb_make_member (&Root::m, "m", 5) + + tl::pb_make_member (&Root::get_mi, &Root::set_mi, "mi", 6) + + tl::pb_make_member (&Root::b, "b", 7) ); static void build_struct (Root &root) @@ -410,7 +407,7 @@ struct TestClassEnumConverter }; tl::PBStruct tc_structure ("pbtest-tc", 1, - tl::pb_make_member (&TestClass::e, 2, TestClassEnumConverter ()) + tl::pb_make_member (&TestClass::e, "e", 2, TestClassEnumConverter ()) ); TEST (101_Converter)