summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/CPlusPlusUtil.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-07-06 23:04:01 -0400
committerBernard Normier <bernard@zeroc.com>2016-07-06 23:04:01 -0400
commitc12f9bad2061f82e872f1b9ebb7b77ee2dcd6519 (patch)
tree104032a6cff8ce93cb44cdbb0f0a76a586f7097b /cpp/src/Slice/CPlusPlusUtil.cpp
parentICE-7217 - Remove makegitignore.py (diff)
downloadice-c12f9bad2061f82e872f1b9ebb7b77ee2dcd6519.tar.bz2
ice-c12f9bad2061f82e872f1b9ebb7b77ee2dcd6519.tar.xz
ice-c12f9bad2061f82e872f1b9ebb7b77ee2dcd6519.zip
Better formatting of generated code
Fixed ice_id/ice_staticId implementation Generate override with C++11 mapping
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp79
1 files changed, 41 insertions, 38 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp
index 9375a4554fc..88e0f96da8e 100644
--- a/cpp/src/Slice/CPlusPlusUtil.cpp
+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
@@ -1401,54 +1401,57 @@ void
Slice::writeStreamHelpers(Output& out, bool checkClassMetaData, const ContainedPtr& c, DataMemberList dataMembers,
DataMemberList optionalDataMembers)
{
- string scoped = c->scoped();
- bool classMetaData = false;
-
- if(checkClassMetaData)
+ if(!dataMembers.empty() || !optionalDataMembers.empty())
{
- classMetaData = findMetaData(c->getMetaData(), false) == "%class";
- }
+ string scoped = c->scoped();
+ bool classMetaData = false;
+
+ if(checkClassMetaData)
+ {
+ classMetaData = findMetaData(c->getMetaData(), false) == "%class";
+ }
- string fullName = classMetaData ? fixKwd(scoped + "Ptr") : fixKwd(scoped);
- string holder = classMetaData ? "v->" : "v.";
+ string fullName = classMetaData ? fixKwd(scoped + "Ptr") : fixKwd(scoped);
+ string holder = classMetaData ? "v->" : "v.";
- out << nl << "template<typename S>";
- out << nl << "struct StreamWriter< " << fullName << ", S>";
- out << sb;
- out << nl << "static void write(S* __os, const " << fullName << "& v)";
- out << sb;
- for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
- {
- if(!(*q)->optional())
+ out << nl << "template<typename S>";
+ out << nl << "struct StreamWriter< " << fullName << ", S>";
+ out << sb;
+ out << nl << "static void write(S* __os, const " << fullName << "& v)";
+ out << sb;
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
+ {
+ if(!(*q)->optional())
+ {
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, true);
+ }
+ }
+ for(DataMemberList::const_iterator q = optionalDataMembers.begin(); q != optionalDataMembers.end(); ++q)
{
writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, true);
}
- }
- for(DataMemberList::const_iterator q = optionalDataMembers.begin(); q != optionalDataMembers.end(); ++q)
- {
- writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, true);
- }
- out << eb;
- out << eb << ";" << nl;
-
- out << nl << "template<typename S>";
- out << nl << "struct StreamReader< " << fullName << ", S>";
- out << sb;
- out << nl << "static void read(S* __is, " << fullName << "& v)";
- out << sb;
- for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
- {
- if(!(*q)->optional())
+ out << eb;
+ out << eb << ";" << nl;
+
+ out << nl << "template<typename S>";
+ out << nl << "struct StreamReader< " << fullName << ", S>";
+ out << sb;
+ out << nl << "static void read(S* __is, " << fullName << "& v)";
+ out << sb;
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
+ {
+ if(!(*q)->optional())
+ {
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, false);
+ }
+ }
+ for(DataMemberList::const_iterator q = optionalDataMembers.begin(); q != optionalDataMembers.end(); ++q)
{
writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, false);
}
+ out << eb;
+ out << eb << ";" << nl;
}
- for(DataMemberList::const_iterator q = optionalDataMembers.begin(); q != optionalDataMembers.end(); ++q)
- {
- writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, false);
- }
- out << eb;
- out << eb << ";" << nl;
}
bool