From 520ece21644c4f3a97f722e351fce382c1661183 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Wed, 29 Feb 2012 14:43:16 -0600 Subject: [PATCH] Fixed problem with the Python build --- src/item.cc | 7 ++----- src/item.h | 13 +++++++++++++ src/py_post.cc | 3 +++ src/py_xact.cc | 5 +++-- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/item.cc b/src/item.cc index a1b9b6bb..d123ee5a 100644 --- a/src/item.cc +++ b/src/item.cc @@ -338,13 +338,10 @@ namespace { } value_t get_seq(item_t& item) { - return item.pos ? long(item.pos->sequence) : 0L; + return long(item.seq()); } value_t get_id(item_t& item) { - if (optional ref = item.get_tag(_("UUID"))) - return *ref; - else - return item.pos ? long(item.pos->sequence) : 0L; + return string_value(item.id()); } value_t get_addr(item_t& item) { diff --git a/src/item.h b/src/item.h index 62575d8b..af3992c0 100644 --- a/src/item.h +++ b/src/item.h @@ -151,6 +151,19 @@ public: return ! (*this == xact); } + string id() const { + if (optional ref = get_tag(_("UUID"))) { + return ref->to_string(); + } else { + std::ostringstream buf; + buf << seq(); + return buf.str(); + } + } + std::size_t seq() const { + return pos ? pos->sequence : 0L; + } + virtual bool has_tag(const string& tag, bool inherit = true) const; virtual bool has_tag(const mask_t& tag_mask, diff --git a/src/py_post.cc b/src/py_post.cc index 1c187ff1..cace419f 100644 --- a/src/py_post.cc +++ b/src/py_post.cc @@ -132,6 +132,9 @@ void export_post() class_< post_t, bases > ("Posting") //.def(init()) + .def("id", &post_t::id) + .def("seq", &post_t::seq) + .add_property("xact", make_getter(&post_t::xact, return_internal_reference<>()), diff --git a/src/py_xact.cc b/src/py_xact.cc index 604d8d59..af1fcdd5 100644 --- a/src/py_xact.cc +++ b/src/py_xact.cc @@ -107,6 +107,9 @@ void export_xact() ; class_< xact_t, bases > ("Transaction") + .def("id", &xact_t::id) + .def("seq", &xact_t::seq) + .add_property("code", make_getter(&xact_t::code), make_setter(&xact_t::code)) @@ -117,8 +120,6 @@ void export_xact() .def("add_post", &xact_t::add_post, with_custodian_and_ward<1, 2>()) .def("magnitude", &xact_t::magnitude) - .def("idstring", &xact_t::idstring) - .def("id", &xact_t::id) .def("lookup", &xact_t::lookup)