From bc47ebbc8141d127de4451b681c925fda9f110e8 Mon Sep 17 00:00:00 2001 From: Ramin Yaghoubzadeh <ryaghoubzadeh@uni-bielefeld.de> Date: Mon, 23 Feb 2015 21:02:22 +0100 Subject: [PATCH] Towards library-internal options for the cmdline parser --- ipaacalib/cpp/CMakeLists.txt | 1 + .../cpp/include/ipaaca/ipaaca-definitions.h | 16 +++++- ipaacalib/cpp/include/ipaaca/ipaaca-payload.h | 4 +- ipaacalib/cpp/include/ipaaca/ipaaca.h | 2 + ipaacalib/cpp/src/ipaaca-cmdline-parser.cc | 53 ++++++++++++++++--- ipaacalib/cpp/src/ipaaca-fake.cc | 16 +++--- ipaacalib/cpp/src/ipaaca-json.cc | 37 +++++++++---- ipaacalib/cpp/src/ipaaca-payload.cc | 50 +++++------------ 8 files changed, 116 insertions(+), 63 deletions(-) diff --git a/ipaacalib/cpp/CMakeLists.txt b/ipaacalib/cpp/CMakeLists.txt index 63b940c..6e52a42 100644 --- a/ipaacalib/cpp/CMakeLists.txt +++ b/ipaacalib/cpp/CMakeLists.txt @@ -176,6 +176,7 @@ set (JSON_TEST_SOURCE src/ipaaca-locking.cc src/ipaaca-links.cc src/ipaaca-payload.cc + src/ipaaca-cmdline-parser.cc src/ipaaca-string-utils.cc # more stuff going beyond the fake test case src/ipaaca-ius.cc diff --git a/ipaacalib/cpp/include/ipaaca/ipaaca-definitions.h b/ipaacalib/cpp/include/ipaaca/ipaaca-definitions.h index d5b8b24..89030df 100644 --- a/ipaacalib/cpp/include/ipaaca/ipaaca-definitions.h +++ b/ipaacalib/cpp/include/ipaaca/ipaaca-definitions.h @@ -251,7 +251,12 @@ IPAACA_HEADER_EXPORT class Initializer // additional misc classes ( Command line options )//{{{ IPAACA_HEADER_EXPORT class CommandLineOptions { public: - IPAACA_HEADER_EXPORT inline CommandLineOptions() { } + IPAACA_HEADER_EXPORT inline CommandLineOptions() + //: _unconsumed_argc(0), _unconsumed_argv(nullptr) + { } + IPAACA_HEADER_EXPORT inline ~CommandLineOptions() { + //if (_unconsumed_argv) delete[] _unconsumed_argv; + } IPAACA_MEMBER_VAR_EXPORT std::map<std::string, std::string> param_opts; IPAACA_MEMBER_VAR_EXPORT std::map<std::string, bool> param_set; public: @@ -259,6 +264,13 @@ IPAACA_HEADER_EXPORT class CommandLineOptions { IPAACA_HEADER_EXPORT std::string get_param(const std::string& o); IPAACA_HEADER_EXPORT bool is_set(const std::string& o); IPAACA_HEADER_EXPORT void dump(); + public: + //IPAACA_HEADER_EXPORT inline int unconsumed_argc() { return _unconsumed_argc; } + //IPAACA_HEADER_EXPORT inline char** unconsumed_argv() { return _unconsumed_argv; } + protected: + //IPAACA_MEMBER_VAR_EXPORT int _unconsumed_argc; + //IPAACA_MEMBER_VAR_EXPORT char** _unconsumed_argv; + public: typedef boost::shared_ptr<CommandLineOptions> ptr; }; @@ -271,6 +283,8 @@ class CommandLineParser { IPAACA_MEMBER_VAR_EXPORT std::map<std::string, int> set_flag; // for paramless opts protected: IPAACA_HEADER_EXPORT CommandLineParser(); + IPAACA_MEMBER_VAR_EXPORT bool library_options_handled; + IPAACA_HEADER_EXPORT bool consume_library_option(const std::string& name, bool expect, const char* optarg); public: IPAACA_HEADER_EXPORT inline ~CommandLineParser() { } IPAACA_HEADER_EXPORT static inline boost::shared_ptr<CommandLineParser> create() { diff --git a/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h b/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h index ee88c26..f823a36 100644 --- a/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h +++ b/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h @@ -105,8 +105,8 @@ IPAACA_HEADER_EXPORT class PayloadDocumentEntry//{{{ IPAACA_MEMBER_VAR_EXPORT bool modified; IPAACA_MEMBER_VAR_EXPORT std::string json_source; IPAACA_MEMBER_VAR_EXPORT rapidjson::Document document; - IPAACA_HEADER_EXPORT inline PayloadDocumentEntry(): modified(false) { IPAACA_INFO("") } - IPAACA_HEADER_EXPORT inline ~PayloadDocumentEntry() { IPAACA_INFO("") } + IPAACA_HEADER_EXPORT inline PayloadDocumentEntry(): modified(false) { } + IPAACA_HEADER_EXPORT inline ~PayloadDocumentEntry() { } //IPAACA_HEADER_EXPORT PayloadDocumentEntry(const std::string& source): modified(false), json_source(source), {}; IPAACA_HEADER_EXPORT std::string to_json_string_representation(); IPAACA_HEADER_EXPORT static std::shared_ptr<PayloadDocumentEntry> from_json_string_representation(const std::string& input); diff --git a/ipaacalib/cpp/include/ipaaca/ipaaca.h b/ipaacalib/cpp/include/ipaaca/ipaaca.h index 6a01f8a..35620e5 100644 --- a/ipaacalib/cpp/include/ipaaca/ipaaca.h +++ b/ipaacalib/cpp/include/ipaaca/ipaaca.h @@ -75,11 +75,13 @@ #endif #ifdef IPAACA_DEBUG_MESSAGES +#define IPAACA_DEBUG(i) std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION_NAME__ << "() -- " << i << std::endl; #define IPAACA_INFO(i) std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION_NAME__ << "() -- " << i << std::endl; #define IPAACA_WARNING(i) std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION_NAME__ << "() -- WARNING: " << i << std::endl; #define IPAACA_IMPLEMENT_ME std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION_NAME__ << "() -- IMPLEMENT ME" << std::endl; #define IPAACA_TODO(i) std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION_NAME__ << "() -- TODO: " << i << std::endl; #else +#define IPAACA_DEBUG(i) ; #define IPAACA_INFO(i) ; #define IPAACA_WARNING(i) ; #define IPAACA_IMPLEMENT_ME ; diff --git a/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc b/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc index 18035dc..0a50abf 100644 --- a/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc +++ b/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc @@ -75,6 +75,7 @@ void CommandLineOptions::dump() { // CommandLineParser::CommandLineParser() +: library_options_handled(true) { initialize_parser_defaults(); } @@ -85,6 +86,33 @@ void CommandLineParser::initialize_parser_defaults() add_option("verbose", 'v', false, ""); add_option("character-name", 'c', true, "UnknownCharacter"); add_option("component-name", 'n', true, "UnknownComponent"); + if (library_options_handled) { + add_option("ipaaca-payload-type", 0, true, "JSON"); + add_option("ipaaca-default-channel", 0, true, "default"); + add_option("ipaaca-enable-logging", 0, true, "WARNING"); + add_option("rsb-enable-logging", 0, true, "ERROR"); + } +} + +bool CommandLineParser::consume_library_option(const std::string& name, bool expect, const char* optarg) +{ + IPAACA_DEBUG("Trying to consume " << name) + if (name=="ipaaca-payload-type") { + IPAACA_DEBUG("TODO: set default payload type to " << optarg) + IPAACA_IMPLEMENT_ME + } else if (name=="ipaaca-default-channel") { + IPAACA_DEBUG("TODO: set default channel to " << optarg) + IPAACA_IMPLEMENT_ME + } else if (name=="ipaaca-enable-logging") { + IPAACA_DEBUG("TODO: set ipaaca log level to " << optarg) + IPAACA_IMPLEMENT_ME + } else if (name=="rsb-enable-logging") { + IPAACA_DEBUG("TODO: set rsb log level to " << optarg) + IPAACA_IMPLEMENT_ME + } else { + return false; + } + return true; } void CommandLineParser::dump_options() @@ -121,6 +149,7 @@ CommandLineOptions::ptr CommandLineParser::parse(int argc, char* const* argv) LOG_IPAACA_CONSOLE("IMPLEMENT ME: command line parsing for Windows. (req'd: getopt)") throw NotImplementedError(); #else + IPAACA_DEBUG("") int len = options.size(); struct option long_options[len+1]; int i=0; @@ -155,19 +184,23 @@ CommandLineOptions::ptr CommandLineParser::parse(int argc, char* const* argv) // Detect the end of the options. if (c == -1) break; + bool do_set_option = false; + std::string longname; + std::string longoption; + bool expect; switch (c) { case 0: { - std::string longname = long_options[option_index].name; + longname = long_options[option_index].name; if (longname == "help") { std::cout << "Options:" << std::endl; dump_options(); exit(0); } - std::string longoption = long_options[option_index].name; - bool expect = options[longoption]; - clo->set_option(longoption, expect, optarg); + longoption = long_options[option_index].name; + expect = options[longoption]; + do_set_option = true; } break; @@ -177,9 +210,17 @@ CommandLineOptions::ptr CommandLineParser::parse(int argc, char* const* argv) default: std::string s; s += c; - std::string longoption = longopt[c]; - bool expect = options[longoption]; + longoption = longopt[c]; + expect = options[longoption]; + do_set_option = true; + } + if (do_set_option) { + if (library_options_handled) { + do_set_option = ! consume_library_option(longoption, expect, optarg ); + } + if (do_set_option) { clo->set_option(longoption, expect, optarg); + } } } ensure_defaults_in( clo ); diff --git a/ipaacalib/cpp/src/ipaaca-fake.cc b/ipaacalib/cpp/src/ipaaca-fake.cc index df0354c..c0d2797 100644 --- a/ipaacalib/cpp/src/ipaaca-fake.cc +++ b/ipaacalib/cpp/src/ipaaca-fake.cc @@ -49,16 +49,16 @@ IPAACA_EXPORT void FakeIU::add_fake_payload_item(const std::string& key, Payload { _payload._remotely_enforced_setitem(key, entry); } -IPAACA_EXPORT inline FakeIU::~FakeIU() { IPAACA_INFO("") } +IPAACA_EXPORT inline FakeIU::~FakeIU() { } IPAACA_EXPORT inline Payload& FakeIU::payload() { return _payload; } IPAACA_EXPORT inline const Payload& FakeIU::const_payload() const { return _payload; } -IPAACA_EXPORT inline void FakeIU::commit() { IPAACA_INFO("") } -IPAACA_EXPORT inline void FakeIU::_modify_links(bool is_delta, const LinkMap& new_links, const LinkMap& links_to_remove, const std::string& writer_name) { IPAACA_INFO("") } -IPAACA_EXPORT inline void FakeIU::_modify_payload(bool is_delta, const std::map<std::string, PayloadDocumentEntry::ptr>& new_items, const std::vector<std::string>& keys_to_remove, const std::string& writer_name) { IPAACA_INFO("")} -IPAACA_EXPORT inline void FakeIU::_apply_update(IUPayloadUpdate::ptr update) { IPAACA_INFO("") } -IPAACA_EXPORT inline void FakeIU::_apply_link_update(IULinkUpdate::ptr update) { IPAACA_INFO("") } -IPAACA_EXPORT inline void FakeIU::_apply_commission() { IPAACA_INFO("") } -IPAACA_EXPORT inline void FakeIU::_apply_retraction() { IPAACA_INFO("") } +IPAACA_EXPORT inline void FakeIU::commit() { } +IPAACA_EXPORT inline void FakeIU::_modify_links(bool is_delta, const LinkMap& new_links, const LinkMap& links_to_remove, const std::string& writer_name) { } +IPAACA_EXPORT inline void FakeIU::_modify_payload(bool is_delta, const std::map<std::string, PayloadDocumentEntry::ptr>& new_items, const std::vector<std::string>& keys_to_remove, const std::string& writer_name) { } +IPAACA_EXPORT inline void FakeIU::_apply_update(IUPayloadUpdate::ptr update) { } +IPAACA_EXPORT inline void FakeIU::_apply_link_update(IULinkUpdate::ptr update) { } +IPAACA_EXPORT inline void FakeIU::_apply_commission() { } +IPAACA_EXPORT inline void FakeIU::_apply_retraction() { } } // of namespace ipaaca diff --git a/ipaacalib/cpp/src/ipaaca-json.cc b/ipaacalib/cpp/src/ipaaca-json.cc index 1992996..de82246 100644 --- a/ipaacalib/cpp/src/ipaaca-json.cc +++ b/ipaacalib/cpp/src/ipaaca-json.cc @@ -41,11 +41,15 @@ using namespace std; int fakeiu_main(int argc, char** argv) { - if (argc<2) { - std::cout << "Please provide json content as the first argument." << std::endl; - return 0; - } - std::string json_source(argv[1]); + //if (argc<2) { + // std::cout << "Please provide json content as the first argument." << std::endl; + // return 0; + //} + // + ipaaca::CommandLineParser::ptr parser = ipaaca::CommandLineParser::create(); + ipaaca::CommandLineOptions::ptr options = parser->parse(argc, argv); + + std::string json_source("[\"old\",2,3,4]"); ipaaca::PayloadDocumentEntry::ptr entry = ipaaca::PayloadDocumentEntry::from_json_string_representation(json_source); ipaaca::FakeIU::ptr iu = ipaaca::FakeIU::create(); @@ -134,12 +138,22 @@ int fakeiu_main(int argc, char** argv) std::cout << "Setting value [0] in the object:" << std::endl; try { - iu->payload()["a"][0] = "set by pep::op="; + iu->payload()["a"][0] = "CHANGED_BY_USER"; } catch (ipaaca::PayloadAddressingError& e) { std::cout << " Error - the provided object was not a suitable array" << std::endl; } //iu->payload()["a"]["A"] = "set by pep::op="; + + std::cout << "Appending two words to key 'b' the currently wrong way:" << std::endl; + auto proxy = iu->payload()["b"]; + proxy = (std::string) proxy + " WORD1"; + proxy = (std::string) proxy + " WORD2"; + + std::cout << "Appending two words to key 'c' the compatible way:" << std::endl; + iu->payload()["c"] = (std::string) iu->payload()["c"] + " WORD1"; + iu->payload()["c"] = (std::string) iu->payload()["c"] + " WORD2"; + std::cout << "Printing final payload using PayloadIterator:" << std::endl; for (auto it = iu->payload().begin(); it != iu->payload().end(); ++it) { std::cout << " " << std::left << std::setw(15) << ((*it).first+": ") << (*it).second << std::endl; @@ -172,7 +186,12 @@ int iu_main(int argc, char** argv) std::cout << "Received a new IU, payload: " << iu->payload() << std::endl; std::cout << "Will write something." << std::endl; //iu->commit(); - iu->payload()["list"][0] = "Overridden from C++"; + try { + iu->payload()["list"][0] = "Overridden from C++"; + } catch (ipaaca::PayloadAddressingError& e) { + iu->payload()["newKey"] = std::vector<long>{2,4,6,8}; + std::cout << " (item ['list'][0] could not be addressed, wrote new key)" << std::endl; + } } }); std::cout << "--- Waiting for IUs for 10s " << std::endl; @@ -210,6 +229,6 @@ int iu_main(int argc, char** argv) int main(int argc, char** argv) { - //return fakeiu_main(argc, argv); - return iu_main(argc, argv); + return fakeiu_main(argc, argv); + //return iu_main(argc, argv); } diff --git a/ipaacalib/cpp/src/ipaaca-payload.cc b/ipaacalib/cpp/src/ipaaca-payload.cc index c82ab79..5c2f8bf 100644 --- a/ipaacalib/cpp/src/ipaaca-payload.cc +++ b/ipaacalib/cpp/src/ipaaca-payload.cc @@ -234,27 +234,18 @@ IPAACA_EXPORT PayloadDocumentEntry::ptr PayloadDocumentEntry::create_null() } IPAACA_EXPORT PayloadDocumentEntry::ptr PayloadDocumentEntry::clone() { - IPAACA_INFO("Cloning from: " << this->json_source) auto entry = PayloadDocumentEntry::from_json_string_representation(this->json_source); - IPAACA_INFO("Cloned entry contents: " << entry) + IPAACA_DEBUG("Cloned for copy-on-write, contents: " << entry) return entry; } IPAACA_EXPORT rapidjson::Value& PayloadDocumentEntry::get_or_create_nested_value_from_proxy_path(PayloadEntryProxy* pep) { if (!(pep->parent)) { - IPAACA_INFO("Reached top-most parent") - IPAACA_INFO("doc contents: " << document ) - IPAACA_INFO("doc diag: " << value_diagnosis(&document)) return document; } - IPAACA_INFO("(Check parent ...)") rapidjson::Value& parent_value = get_or_create_nested_value_from_proxy_path(pep->parent); - IPAACA_INFO("(... back from parent)") - IPAACA_INFO("par contents: " << parent_value ) - IPAACA_INFO("par diag: " << value_diagnosis(&parent_value)) - IPAACA_INFO("Resolving address path") if (pep->addressed_as_array) { - IPAACA_INFO("Addressed as array with index " << pep->addressed_index) + IPAACA_DEBUG("Addressed as array with index " << pep->addressed_index) if (! parent_value.IsArray()) { throw PayloadAddressingError(); } else { @@ -291,14 +282,11 @@ IPAACA_EXPORT rapidjson::Value& PayloadDocumentEntry::get_or_create_nested_value throw PayloadAddressingError(); }*/ } else { - IPAACA_INFO("Addressed as dict with key " << pep->addressed_key) + IPAACA_DEBUG("Addressed as dict with key " << pep->addressed_key) // addressed as object (dict) //rapidjson::Value& parent_value = *(pep->parent->json_value); if (! parent_value.IsObject()) { - IPAACA_INFO("parent is not of type Object") - IPAACA_INFO("parent contents: " << *(pep->parent) ) - IPAACA_INFO("parent_value contents: " << parent_value ) - IPAACA_INFO("parent_value diag: " << value_diagnosis(&parent_value)) + IPAACA_DEBUG("parent is not of type Object") throw PayloadAddressingError(); } else { rapidjson::Document::AllocatorType& allocator = document.GetAllocator(); @@ -309,13 +297,10 @@ IPAACA_EXPORT rapidjson::Value& PayloadDocumentEntry::get_or_create_nested_value key.SetString(pep->addressed_key, allocator); auto it = parent_value.FindMember(key); if (it != parent_value.MemberEnd()) { - IPAACA_INFO("Returning existing child Value") return parent_value[key]; } else { - IPAACA_INFO("Creating new child Value") rapidjson::Value val; parent_value.AddMember(key, val, allocator); - IPAACA_INFO("Returning new child Value") rapidjson::Value rkey; rkey.SetString(pep->addressed_key, allocator); return parent_value[rkey]; @@ -392,15 +377,12 @@ IPAACA_EXPORT void PayloadEntryProxy::connect_to_existing_parents() IPAACA_EXPORT PayloadEntryProxy::PayloadEntryProxy(Payload* payload, const std::string& key) : _payload(payload), _key(key), parent(nullptr) { - //IPAACA_INFO("PEP construction on parent document ...") document_entry = _payload->get_entry(key); json_value = &(document_entry->document); - //IPAACA_INFO("... parent done.") } IPAACA_EXPORT PayloadEntryProxy::PayloadEntryProxy(PayloadEntryProxy* parent_, const std::string& addr_key_) : parent(parent_), addressed_key(addr_key_), addressed_as_array(false) { - //IPAACA_INFO("PEP construction as dict child, addressed by " << addr_key_ << " ...") _payload = parent->_payload; _key = parent->_key; document_entry = parent->document_entry; @@ -412,18 +394,15 @@ IPAACA_EXPORT PayloadEntryProxy::PayloadEntryProxy(PayloadEntryProxy* parent_, c json_value = nullptr; // avoid heap construction here existent = false; } - IPAACA_INFO("... dict child done.") } IPAACA_EXPORT PayloadEntryProxy::PayloadEntryProxy(PayloadEntryProxy* parent_, size_t addr_idx_) : parent(parent_), addressed_index(addr_idx_), addressed_as_array(true) { - //IPAACA_INFO("PEP construction as array child, addressed by " << addr_idx_ << " ...") _payload = parent->_payload; _key = parent->_key; document_entry = parent->document_entry; json_value = &(parent->json_value->operator[](addr_idx_)); existent = true; - IPAACA_INFO("... array child done.") } IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](const char* addr_key_) @@ -433,11 +412,11 @@ IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](const char* addr_k IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](const std::string& addr_key_) { if (!json_value) { - IPAACA_INFO("Invalid json_value!") + IPAACA_DEBUG("Invalid json_value!") throw PayloadAddressingError(); } if (! json_value->IsObject()) { - IPAACA_INFO("Expected Object for operator[](string)!") + IPAACA_DEBUG("Expected Object for operator[](string)!") throw PayloadAddressingError(); } return PayloadEntryProxy(this, addr_key_); @@ -445,16 +424,16 @@ IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](const std::string& IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](size_t addr_idx_) { if (!json_value) { - IPAACA_INFO("Invalid json_value!") + IPAACA_DEBUG("Invalid json_value!") throw PayloadAddressingError(); } if (! json_value->IsArray()) { - IPAACA_INFO("Expected Array for operator[](size_t)!") + IPAACA_DEBUG("Expected Array for operator[](size_t)!") throw PayloadAddressingError(); } long s = json_value->Size(); if (addr_idx_>=s) { - IPAACA_INFO("Array out of bounds!") + IPAACA_DEBUG("Array out of bounds!") throw PayloadAddressingError(); } return PayloadEntryProxy(this, addr_idx_); @@ -462,7 +441,7 @@ IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](size_t addr_idx_) IPAACA_EXPORT PayloadEntryProxy PayloadEntryProxy::operator[](int addr_idx_) { if (addr_idx_ < 0) { - IPAACA_INFO("Negative index!") + IPAACA_DEBUG("Negative index!") throw PayloadAddressingError(); } return operator[]((size_t) addr_idx_); @@ -619,17 +598,15 @@ IPAACA_EXPORT Payload::operator std::map<std::string, std::string>() } IPAACA_EXPORT void Payload::_internal_set(const std::string& k, PayloadDocumentEntry::ptr v, const std::string& writer_name) { - IPAACA_INFO("") std::map<std::string, PayloadDocumentEntry::ptr> _new; std::vector<std::string> _remove; _new[k] = v; _iu.lock()->_modify_payload(true, _new, _remove, writer_name ); - IPAACA_INFO(" Setting local payload item \"" << k << "\" to " << v) + IPAACA_DEBUG(" Setting local payload item \"" << k << "\" to " << v) _document_store[k] = v; mark_revision_change(); } IPAACA_EXPORT void Payload::_internal_remove(const std::string& k, const std::string& writer_name) { - IPAACA_INFO("") std::map<std::string, PayloadDocumentEntry::ptr> _new; std::vector<std::string> _remove; _remove.push_back(k); @@ -639,7 +616,6 @@ IPAACA_EXPORT void Payload::_internal_remove(const std::string& k, const std::st } IPAACA_EXPORT void Payload::_internal_replace_all(const std::map<std::string, PayloadDocumentEntry::ptr>& new_contents, const std::string& writer_name) { - IPAACA_INFO("") std::vector<std::string> _remove; _iu.lock()->_modify_payload(false, new_contents, _remove, writer_name ); _document_store = new_contents; @@ -647,7 +623,6 @@ IPAACA_EXPORT void Payload::_internal_replace_all(const std::map<std::string, Pa } IPAACA_EXPORT void Payload::_internal_merge(const std::map<std::string, PayloadDocumentEntry::ptr>& contents_to_merge, const std::string& writer_name) { - IPAACA_INFO("") std::vector<std::string> _remove; _iu.lock()->_modify_payload(true, contents_to_merge, _remove, writer_name ); for (auto& kv: contents_to_merge) { @@ -679,7 +654,6 @@ IPAACA_EXPORT void Payload::_remotely_enforced_delitem(const std::string& k) } IPAACA_EXPORT void Payload::_remotely_enforced_setitem(const std::string& k, PayloadDocumentEntry::ptr entry) { - //IPAACA_INFO("Setting payload entry for \"" << k <<"\" to " << entry) _document_store[k] = entry; mark_revision_change(); } @@ -694,6 +668,7 @@ IPAACA_EXPORT PayloadIterator Payload::end() //}}} +// PayloadIterator//{{{ IPAACA_EXPORT PayloadIterator::PayloadIterator(Payload* payload, PayloadDocumentStore::iterator&& ref_it) : _payload(payload), reference_payload_revision(payload->internal_revision), raw_iterator(std::move(ref_it)) { @@ -727,5 +702,6 @@ IPAACA_EXPORT bool PayloadIterator::operator!=(const PayloadIterator& ref) if (_payload->revision_changed(reference_payload_revision)) throw PayloadIteratorInvalidError(); return (raw_iterator!=ref.raw_iterator); } +//}}} } // of namespace ipaaca -- GitLab