summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamroot.jam1
-rw-r--r--slicer/db/sqlInsertSerializer.cpp14
-rw-r--r--slicer/db/sqlInsertSerializer.h14
-rw-r--r--slicer/db/sqlSelectDeserializer.cpp10
-rw-r--r--slicer/db/sqlSelectDeserializer.h8
-rw-r--r--slicer/db/sqlUpdateSerializer.cpp8
-rw-r--r--slicer/db/sqlUpdateSerializer.h8
-rw-r--r--slicer/json/serializer.cpp4
-rw-r--r--slicer/json/serializer.h4
-rw-r--r--slicer/slicer/modelPartsTypes.cpp2
-rw-r--r--slicer/test/compilation.cpp3
-rw-r--r--slicer/tool/parser.cpp4
-rw-r--r--slicer/tool/parser.h4
-rw-r--r--slicer/xml/serializer.cpp16
-rw-r--r--slicer/xml/serializer.h16
15 files changed, 59 insertions, 57 deletions
diff --git a/Jamroot.jam b/Jamroot.jam
index 11ef158..38ee232 100644
--- a/Jamroot.jam
+++ b/Jamroot.jam
@@ -23,6 +23,7 @@ project
<toolset>tidy:<checkxx>misc-*
<toolset>tidy:<checkxx>modernize-*
<toolset>tidy:<checkxx>hicpp-*
+ <toolset>tidy:<checkxx>performance-*
;
build-project slicer ;
diff --git a/slicer/db/sqlInsertSerializer.cpp b/slicer/db/sqlInsertSerializer.cpp
index 6d02212..8890cc3 100644
--- a/slicer/db/sqlInsertSerializer.cpp
+++ b/slicer/db/sqlInsertSerializer.cpp
@@ -34,14 +34,14 @@ namespace Slicer {
}
void
- SqlInsertSerializer::SerializeObject(Slicer::ModelPartPtr mp) const
+ SqlInsertSerializer::SerializeObject(const Slicer::ModelPartPtr & mp) const
{
auto ins = createInsert(mp);
bindObjectAndExecute(mp, ins.get());
}
void
- SqlInsertSerializer::SerializeSequence(Slicer::ModelPartPtr mp) const
+ SqlInsertSerializer::SerializeSequence(const Slicer::ModelPartPtr & mp) const
{
auto ins = createInsert(mp->GetContainedModelPart());
mp->OnEachChild([&ins, this](const std::string &, ModelPartPtr cmp, const HookCommon *) {
@@ -50,7 +50,7 @@ namespace Slicer {
}
void
- SqlInsertSerializer::bindObjectAndExecute(Slicer::ModelPartPtr cmp, DB::ModifyCommand * ins) const
+ SqlInsertSerializer::bindObjectAndExecute(const Slicer::ModelPartPtr & cmp, DB::ModifyCommand * ins) const
{
int paramNo = 0;
cmp->OnEachChild(std::bind(&SqlInsertSerializer::bindObjectAndExecuteField, this, std::ref(paramNo), ins, _2, _3));
@@ -87,7 +87,7 @@ namespace Slicer {
};
void
- SqlFetchIdInsertSerializer::bindObjectAndExecute(Slicer::ModelPartPtr cmp, DB::ModifyCommand * ins) const
+ SqlFetchIdInsertSerializer::bindObjectAndExecute(const Slicer::ModelPartPtr & cmp, DB::ModifyCommand * ins) const
{
SqlAutoIdInsertSerializer::bindObjectAndExecute(cmp, ins);
cmp->OnEachChild([this](const std::string &, ModelPartPtr cmp, const HookCommon * h) {
@@ -98,7 +98,7 @@ namespace Slicer {
}
void
- SqlInsertSerializer::bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand * ins, Slicer::ModelPartPtr cmp, const HookCommon * h) const
+ SqlInsertSerializer::bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand * ins, const Slicer::ModelPartPtr & cmp, const HookCommon * h) const
{
if (isBind(h)) {
if (!cmp->GetValue(SqlBinder(*ins, paramNo))) {
@@ -109,7 +109,7 @@ namespace Slicer {
}
void
- SqlAutoIdInsertSerializer::bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand * ins, Slicer::ModelPartPtr cmp, const HookCommon * h) const
+ SqlAutoIdInsertSerializer::bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand * ins, const Slicer::ModelPartPtr & cmp, const HookCommon * h) const
{
if (isNotAuto(h)) {
SqlInsertSerializer::bindObjectAndExecuteField(paramNo, ins, cmp, h);
@@ -117,7 +117,7 @@ namespace Slicer {
}
DB::ModifyCommandPtr
- SqlInsertSerializer::createInsert(Slicer::ModelPartPtr mp) const
+ SqlInsertSerializer::createInsert(const Slicer::ModelPartPtr & mp) const
{
AdHoc::Buffer insert;
insert.appendbf("INSERT INTO %s(", tableName);
diff --git a/slicer/db/sqlInsertSerializer.h b/slicer/db/sqlInsertSerializer.h
index fcabb4a..d3e2215 100644
--- a/slicer/db/sqlInsertSerializer.h
+++ b/slicer/db/sqlInsertSerializer.h
@@ -14,12 +14,12 @@ namespace Slicer {
virtual void Serialize(Slicer::ModelPartForRootPtr) override;
protected:
- void SerializeObject(Slicer::ModelPartPtr) const;
- void SerializeSequence(Slicer::ModelPartPtr) const;
- DB::ModifyCommandPtr createInsert(Slicer::ModelPartPtr) const;
+ void SerializeObject(const Slicer::ModelPartPtr &) const;
+ void SerializeSequence(const Slicer::ModelPartPtr &) const;
+ DB::ModifyCommandPtr createInsert(const Slicer::ModelPartPtr &) const;
virtual void createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const;
- virtual void bindObjectAndExecute(Slicer::ModelPartPtr, DB::ModifyCommand *) const;
- virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, Slicer::ModelPartPtr, const HookCommon *) const;
+ virtual void bindObjectAndExecute(const Slicer::ModelPartPtr &, DB::ModifyCommand *) const;
+ virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const;
DB::Connection * const connection;
const std::string tableName;
@@ -32,7 +32,7 @@ namespace Slicer {
protected:
virtual void createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const;
- virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, Slicer::ModelPartPtr, const HookCommon *) const;
+ virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const;
};
class DLL_PUBLIC SqlFetchIdInsertSerializer : public SqlAutoIdInsertSerializer {
@@ -41,7 +41,7 @@ namespace Slicer {
SqlFetchIdInsertSerializer(const P & ... p) : SqlAutoIdInsertSerializer(p...) { }
protected:
- virtual void bindObjectAndExecute(Slicer::ModelPartPtr, DB::ModifyCommand *) const;
+ virtual void bindObjectAndExecute(const Slicer::ModelPartPtr &, DB::ModifyCommand *) const;
};
}
diff --git a/slicer/db/sqlSelectDeserializer.cpp b/slicer/db/sqlSelectDeserializer.cpp
index c4ea0d5..d56c7f2 100644
--- a/slicer/db/sqlSelectDeserializer.cpp
+++ b/slicer/db/sqlSelectDeserializer.cpp
@@ -35,7 +35,7 @@ namespace Slicer {
}
void
- SqlSelectDeserializer::DeserializeSimple(Slicer::ModelPartPtr mp)
+ SqlSelectDeserializer::DeserializeSimple(const Slicer::ModelPartPtr & mp)
{
if (!cmd->fetch()) {
if (!mp->IsOptional()) {
@@ -55,16 +55,16 @@ namespace Slicer {
}
void
- SqlSelectDeserializer::DeserializeSequence(Slicer::ModelPartPtr mp)
+ SqlSelectDeserializer::DeserializeSequence(const Slicer::ModelPartPtr & omp)
{
- mp = mp->GetAnonChild();
+ auto mp = omp->GetAnonChild();
while (cmd->fetch()) {
DeserializeRow(mp);
}
}
void
- SqlSelectDeserializer::DeserializeObject(Slicer::ModelPartPtr mp)
+ SqlSelectDeserializer::DeserializeObject(const Slicer::ModelPartPtr & mp)
{
if (!cmd->fetch()) {
if (!mp->IsOptional()) {
@@ -80,7 +80,7 @@ namespace Slicer {
}
void
- SqlSelectDeserializer::DeserializeRow(Slicer::ModelPartPtr mp)
+ SqlSelectDeserializer::DeserializeRow(const Slicer::ModelPartPtr & mp)
{
auto rmp = mp->GetAnonChild();
if (rmp) {
diff --git a/slicer/db/sqlSelectDeserializer.h b/slicer/db/sqlSelectDeserializer.h
index 96c7334..736bb11 100644
--- a/slicer/db/sqlSelectDeserializer.h
+++ b/slicer/db/sqlSelectDeserializer.h
@@ -13,10 +13,10 @@ namespace Slicer {
virtual void Deserialize(Slicer::ModelPartForRootPtr) override;
protected:
- void DLL_PRIVATE DeserializeSimple(Slicer::ModelPartPtr);
- void DLL_PRIVATE DeserializeObject(Slicer::ModelPartPtr);
- void DLL_PRIVATE DeserializeSequence(Slicer::ModelPartPtr);
- void DLL_PRIVATE DeserializeRow(Slicer::ModelPartPtr);
+ void DLL_PRIVATE DeserializeSimple(const Slicer::ModelPartPtr &);
+ void DLL_PRIVATE DeserializeObject(const Slicer::ModelPartPtr &);
+ void DLL_PRIVATE DeserializeSequence(const Slicer::ModelPartPtr &);
+ void DLL_PRIVATE DeserializeRow(const Slicer::ModelPartPtr &);
DB::SelectCommand * cmd;
unsigned int columnCount;
diff --git a/slicer/db/sqlUpdateSerializer.cpp b/slicer/db/sqlUpdateSerializer.cpp
index 0153fbf..bf690dc 100644
--- a/slicer/db/sqlUpdateSerializer.cpp
+++ b/slicer/db/sqlUpdateSerializer.cpp
@@ -33,14 +33,14 @@ namespace Slicer {
}
void
- SqlUpdateSerializer::SerializeObject(Slicer::ModelPartPtr mp) const
+ SqlUpdateSerializer::SerializeObject(const Slicer::ModelPartPtr & mp) const
{
auto ins = createUpdate(mp);
bindObjectAndExecute(mp, ins.get());
}
void
- SqlUpdateSerializer::SerializeSequence(Slicer::ModelPartPtr mp) const
+ SqlUpdateSerializer::SerializeSequence(const Slicer::ModelPartPtr & mp) const
{
auto ins = createUpdate(mp->GetContainedModelPart());
mp->OnEachChild([&ins](const std::string &, ModelPartPtr cmp, const HookCommon *) {
@@ -49,7 +49,7 @@ namespace Slicer {
}
void
- SqlUpdateSerializer::bindObjectAndExecute(Slicer::ModelPartPtr cmp, DB::ModifyCommand * upd)
+ SqlUpdateSerializer::bindObjectAndExecute(const Slicer::ModelPartPtr & cmp, DB::ModifyCommand * upd)
{
int paramNo = 0;
cmp->OnEachChild([&upd, &paramNo](const std::string &, ModelPartPtr cmp, const HookCommon * h) {
@@ -71,7 +71,7 @@ namespace Slicer {
}
DB::ModifyCommandPtr
- SqlUpdateSerializer::createUpdate(Slicer::ModelPartPtr mp) const
+ SqlUpdateSerializer::createUpdate(const Slicer::ModelPartPtr & mp) const
{
AdHoc::Buffer update;
update.appendbf("UPDATE %s SET ", tableName);
diff --git a/slicer/db/sqlUpdateSerializer.h b/slicer/db/sqlUpdateSerializer.h
index d142c04..7c451b2 100644
--- a/slicer/db/sqlUpdateSerializer.h
+++ b/slicer/db/sqlUpdateSerializer.h
@@ -13,10 +13,10 @@ namespace Slicer {
virtual void Serialize(Slicer::ModelPartForRootPtr) override;
protected:
- void SerializeObject(Slicer::ModelPartPtr) const;
- void SerializeSequence(Slicer::ModelPartPtr) const;
- DB::ModifyCommandPtr createUpdate(Slicer::ModelPartPtr) const;
- static void bindObjectAndExecute(Slicer::ModelPartPtr, DB::ModifyCommand *);
+ void SerializeObject(const Slicer::ModelPartPtr &) const;
+ void SerializeSequence(const Slicer::ModelPartPtr &) const;
+ DB::ModifyCommandPtr createUpdate(const Slicer::ModelPartPtr &) const;
+ static void bindObjectAndExecute(const Slicer::ModelPartPtr &, DB::ModifyCommand *);
DB::Connection * const connection;
const std::string tableName;
diff --git a/slicer/json/serializer.cpp b/slicer/json/serializer.cpp
index 8c41550..e921573 100644
--- a/slicer/json/serializer.cpp
+++ b/slicer/json/serializer.cpp
@@ -194,7 +194,7 @@ namespace Slicer {
};
void
- JsonSerializer::ModelTreeIterateSeq(json::Value * n, ModelPartPtr mp)
+ JsonSerializer::ModelTreeIterateSeq(json::Value * n, const ModelPartPtr & mp)
{
if (!mp->HasValue()) {
return;
@@ -205,7 +205,7 @@ namespace Slicer {
}
void
- JsonSerializer::ModelTreeIterateDictObj(json::Value * n, ModelPartPtr mp)
+ JsonSerializer::ModelTreeIterateDictObj(json::Value * n, const ModelPartPtr & mp)
{
if (!mp->HasValue()) {
return;
diff --git a/slicer/json/serializer.h b/slicer/json/serializer.h
index b1a97b3..64679ed 100644
--- a/slicer/json/serializer.h
+++ b/slicer/json/serializer.h
@@ -9,8 +9,8 @@ namespace Slicer {
class JsonSerializer : public Serializer {
protected:
static void ModelTreeIterate(json::Value *, const std::string &, ModelPartPtr mp);
- static void ModelTreeIterateDictObj(json::Value *, ModelPartPtr mp);
- static void ModelTreeIterateSeq(json::Value *, ModelPartPtr mp);
+ static void ModelTreeIterateDictObj(json::Value *, const ModelPartPtr & mp);
+ static void ModelTreeIterateSeq(json::Value *, const ModelPartPtr & mp);
static void ModelTreeIterateRoot(json::Value *, ModelPartPtr mp);
};
diff --git a/slicer/slicer/modelPartsTypes.cpp b/slicer/slicer/modelPartsTypes.cpp
index 0f95c1f..ac95164 100644
--- a/slicer/slicer/modelPartsTypes.cpp
+++ b/slicer/slicer/modelPartsTypes.cpp
@@ -267,7 +267,7 @@ namespace Slicer {
ModelPartType ModelPartForStreamBase::GetType() const { return mpt_Sequence; }
bool ModelPartForStreamBase::HasValue() const { return true; }
// Stream Roots
- ModelPartForStreamRootBase::ModelPartForStreamRootBase(ModelPartPtr mp) : ModelPartForRootBase(mp) { }
+ ModelPartForStreamRootBase::ModelPartForStreamRootBase(ModelPartPtr mp) : ModelPartForRootBase(std::move(mp)) { }
// NOLINTNEXTLINE(hicpp-no-array-decay)
void ModelPartForStreamRootBase::Write(Ice::OutputStream&) const { throw InvalidStreamOperation(__FUNCTION__); }
// NOLINTNEXTLINE(hicpp-no-array-decay)
diff --git a/slicer/test/compilation.cpp b/slicer/test/compilation.cpp
index e6e9d02..445e867 100644
--- a/slicer/test/compilation.cpp
+++ b/slicer/test/compilation.cpp
@@ -35,8 +35,9 @@ BOOST_AUTO_TEST_CASE( compile_auto_modelpart_type_class )
BOOST_REQUIRE_EQUAL(mpp.get(), mpp->GetContainedModelPart().get());
}
+static
void
-hookHandler(std::vector<std::string> * names, const std::string & name, Slicer::ModelPartPtr mpp, const Slicer::HookCommon * h)
+hookHandler(std::vector<std::string> * names, const std::string & name, const Slicer::ModelPartPtr & mpp, const Slicer::HookCommon * h)
{
names->push_back(name);
BOOST_REQUIRE(mpp);
diff --git a/slicer/tool/parser.cpp b/slicer/tool/parser.cpp
index ca92390..9aa27cd 100644
--- a/slicer/tool/parser.cpp
+++ b/slicer/tool/parser.cpp
@@ -23,7 +23,7 @@ namespace Slicer {
}
void
- Slicer::defineConversions(Slice::DataMemberPtr dm) const
+ Slicer::defineConversions(const Slice::DataMemberPtr & dm) const
{
if (!cpp) { return; }
@@ -239,7 +239,7 @@ namespace Slicer {
}
void
- Slicer::visitComplexDataMembers(Slice::ConstructedPtr it, const Slice::DataMemberList & dataMembers) const
+ Slicer::visitComplexDataMembers(const Slice::ConstructedPtr & it, const Slice::DataMemberList & dataMembers) const
{
if (!cpp) { return; }
diff --git a/slicer/tool/parser.h b/slicer/tool/parser.h
index 139cd32..b9474d3 100644
--- a/slicer/tool/parser.h
+++ b/slicer/tool/parser.h
@@ -56,9 +56,9 @@ namespace Slicer {
std::string getBasicModelPart(const Slice::TypePtr & type) const;
void defineMODELPART(const std::string & type, const Slice::TypePtr & stype, const Slice::StringList & metadata) const;
- void visitComplexDataMembers(Slice::ConstructedPtr t, const Slice::DataMemberList &) const;
+ void visitComplexDataMembers(const Slice::ConstructedPtr & t, const Slice::DataMemberList &) const;
- void defineConversions(Slice::DataMemberPtr dm) const;
+ void defineConversions(const Slice::DataMemberPtr & dm) const;
void defineRoot(const std::string & type, const std::string & name, const Slice::TypePtr & stype) const;
bool hasMetadata(const std::list<std::string> & metadata) const;
diff --git a/slicer/xml/serializer.cpp b/slicer/xml/serializer.cpp
index dbd0af1..6d9a60d 100644
--- a/slicer/xml/serializer.cpp
+++ b/slicer/xml/serializer.cpp
@@ -182,7 +182,7 @@ namespace Slicer {
};
void
- XmlDeserializer::DocumentTreeIterateDictAttrs(const xmlpp::Element::const_AttributeList & attrs, ModelPartPtr dict)
+ XmlDeserializer::DocumentTreeIterateDictAttrs(const xmlpp::Element::const_AttributeList & attrs, const ModelPartPtr & dict)
{
for (const auto & attr : attrs) {
auto emp = dict->GetAnonChild();
@@ -198,7 +198,7 @@ namespace Slicer {
}
void
- XmlDeserializer::DocumentTreeIterateDictElements(const xmlpp::Element * element, ModelPartPtr dict)
+ XmlDeserializer::DocumentTreeIterateDictElements(const xmlpp::Element * element, const ModelPartPtr & dict)
{
auto node = element->get_first_child();
while (node) {
@@ -251,7 +251,7 @@ namespace Slicer {
}
void
- XmlDeserializer::DocumentTreeIterate(const xmlpp::Node * node, ModelPartPtr mp)
+ XmlDeserializer::DocumentTreeIterate(const xmlpp::Node * node, const ModelPartPtr & mp)
{
while (node) {
if (auto element = dynamic_cast<const xmlpp::Element *>(node)) {
@@ -297,13 +297,13 @@ namespace Slicer {
}
void
- XmlDeserializer::DocumentTreeIterate(const xmlpp::Document * doc, ModelPartPtr mp)
+ XmlDeserializer::DocumentTreeIterate(const xmlpp::Document * doc, const ModelPartPtr & mp)
{
DocumentTreeIterate(doc->get_root_node(), mp);
}
void
- XmlSerializer::ModelTreeIterate(xmlpp::Element * n, const std::string & name, ModelPartPtr mp, const HookCommon * hp, const ElementCreator & ec)
+ XmlSerializer::ModelTreeIterate(xmlpp::Element * n, const std::string & name, const ModelPartPtr & mp, const HookCommon * hp, const ElementCreator & ec)
{
if (name.empty()) {
return;
@@ -332,7 +332,7 @@ namespace Slicer {
}
void
- XmlSerializer::ModelTreeIterateDictAttrs(xmlpp::Element * element, ModelPartPtr dict)
+ XmlSerializer::ModelTreeIterateDictAttrs(xmlpp::Element * element, const ModelPartPtr & dict)
{
dict->OnEachChild([element](const auto &, const auto & mp, const auto &) {
if (mp->HasValue()) {
@@ -344,7 +344,7 @@ namespace Slicer {
}
void
- XmlSerializer::ModelTreeIterateDictElements(xmlpp::Element * element, ModelPartPtr dict)
+ XmlSerializer::ModelTreeIterateDictElements(xmlpp::Element * element, const ModelPartPtr & dict)
{
dict->OnEachChild([element](const auto &, const auto & mp, const auto &) {
if (mp->HasValue()) {
@@ -375,7 +375,7 @@ namespace Slicer {
}
void
- XmlSerializer::ModelTreeIterateRoot(xmlpp::Document * doc, const std::string & name, ModelPartPtr mp)
+ XmlSerializer::ModelTreeIterateRoot(xmlpp::Document * doc, const std::string & name, const ModelPartPtr & mp)
{
ModelTreeProcessElement(doc->create_root_node(name), mp, defaultElementCreator);
}
diff --git a/slicer/xml/serializer.h b/slicer/xml/serializer.h
index 1ab2ec2..d2220ef 100644
--- a/slicer/xml/serializer.h
+++ b/slicer/xml/serializer.h
@@ -13,13 +13,13 @@ namespace Slicer {
class DLL_PUBLIC XmlSerializer : public Serializer {
protected:
typedef std::function<xmlpp::Element *(xmlpp::Element *, const Glib::ustring &)> ElementCreator;
- static void ModelTreeIterate(xmlpp::Element *, const std::string &, ModelPartPtr mp, const HookCommon * hp, const ElementCreator &);
- static void ModelTreeIterateRoot(xmlpp::Document *, const std::string &, ModelPartPtr mp);
+ static void ModelTreeIterate(xmlpp::Element *, const std::string &, const ModelPartPtr & mp, const HookCommon * hp, const ElementCreator &);
+ static void ModelTreeIterateRoot(xmlpp::Document *, const std::string &, const ModelPartPtr & mp);
protected:
static void ModelTreeProcessElement(const CurrentElementCreator &, ModelPartPtr mp, const ElementCreator &);
- static void ModelTreeIterateDictAttrs(xmlpp::Element * element, ModelPartPtr dict);
- static void ModelTreeIterateDictElements(xmlpp::Element * element, ModelPartPtr dict);
+ static void ModelTreeIterateDictAttrs(xmlpp::Element * element, const ModelPartPtr & dict);
+ static void ModelTreeIterateDictElements(xmlpp::Element * element, const ModelPartPtr & dict);
};
class DLL_PUBLIC XmlStreamSerializer : public XmlSerializer {
@@ -54,11 +54,11 @@ namespace Slicer {
class DLL_PUBLIC XmlDeserializer : public Deserializer {
protected:
- static void DocumentTreeIterate(const xmlpp::Node * node, ModelPartPtr mp);
+ static void DocumentTreeIterate(const xmlpp::Node * node, const ModelPartPtr & mp);
static void DocumentTreeIterateElement(const xmlpp::Element * element, ModelPartPtr mp, const ChildRef & c);
- static void DocumentTreeIterate(const xmlpp::Document * doc, ModelPartPtr mp);
- static void DocumentTreeIterateDictAttrs(const xmlpp::Element::const_AttributeList & attrs, ModelPartPtr dict);
- static void DocumentTreeIterateDictElements(const xmlpp::Element * parent, ModelPartPtr dict);
+ static void DocumentTreeIterate(const xmlpp::Document * doc, const ModelPartPtr & mp);
+ static void DocumentTreeIterateDictAttrs(const xmlpp::Element::const_AttributeList & attrs, const ModelPartPtr & dict);
+ static void DocumentTreeIterateDictElements(const xmlpp::Element * parent, const ModelPartPtr & dict);
};
class DLL_PUBLIC XmlStreamDeserializer : public XmlDeserializer {