summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp135
1 files changed, 63 insertions, 72 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index ba1c7c42c43..1ad57199f21 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -1075,14 +1075,12 @@ Slice::Gen::TypesVisitor::visitStructStart(const StructPtr& p)
H << nl;
if(p->hasDefaultValues())
{
- H << nl << name << "();";
-
- C << sp << nl << fixKwd(p->scoped()).substr(2) << "::" << fixKwd(p->name()) << "() :";
- C.inc();
- writeDataMemberInitializers(C, dataMembers, _useWstring);
- C.dec();
- C << sb;
- C << eb;
+ H << nl << name << "() :";
+ H.inc();
+ writeDataMemberInitializers(H, dataMembers, _useWstring);
+ H.dec();
+ H << sb;
+ H << eb;
}
else
{
@@ -1095,7 +1093,7 @@ Slice::Gen::TypesVisitor::visitStructStart(const StructPtr& p)
H << sb;
if(p->hasDefaultValues())
{
- H << nl << _dllExport << name << "() :";
+ H << nl << name << "() :";
H.inc();
writeDataMemberInitializers(H, dataMembers, _useWstring);
@@ -1130,25 +1128,23 @@ Slice::Gen::TypesVisitor::visitStructStart(const StructPtr& p)
{
H << "explicit ";
}
- H << name << spar << types << epar << ';';
-
- C << sp << nl << fixKwd(p->scoped()).substr(2) << "::"
- << fixKwd(p->name()) << spar << paramDecls << epar << " :";
- C.inc();
+ H << fixKwd(p->name()) << spar << paramDecls << epar << " :";
+ H.inc();
for(q = dataMembers.begin(); q != dataMembers.end(); ++q)
{
if(q != dataMembers.begin())
{
- C << ',';
+ H << ',';
}
string memberName = fixKwd((*q)->name());
- C << nl << memberName << '(' << "__ice_" << (*q)->name() << ')';
+ H << nl << memberName << '(' << "__ice_" << (*q)->name() << ')';
}
- C.dec();
- C << sb;
- C << eb;
+ H.dec();
+ H << sb;
+ H << eb;
+ H << nl;
}
H << sp;
@@ -1235,7 +1231,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
if(!p->isLocal())
{
//
- // None of these member functions is virtual!
+ // None of these member functions are virtual!
//
H << sp << nl << dllExport << "void __write(::IceInternal::BasicStream*) const;";
H << nl << dllExport << "void __read(::IceInternal::BasicStream*);";
@@ -3845,7 +3841,6 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p)
H << nl << "typedef " << p->name() << "Prx ProxyType;";
}
H << nl << "typedef " << p->name() << "Ptr PointerType;";
- H << nl;
vector<string> params;
vector<string> allTypes;
@@ -3868,27 +3863,17 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p)
{
if(p->hasDefaultValues())
{
- H << nl << name << "();";
-
- C << sp << nl << scoped.substr(2) << "::" << name << "() :";
- C.inc();
- writeDataMemberInitializers(C, dataMembers, _useWstring);
- C.dec();
- C << sb;
- C << eb;
+ H << name << "() :";
+ H.inc();
+ writeDataMemberInitializers(H, dataMembers, _useWstring);
+ H.dec();
+ H << sb;
+ H << eb;
}
else
{
- H << nl << name << "() {}";
- }
- if(!allParamDecls.empty())
- {
- H << nl;
- if(allParamDecls.size() == 1)
- {
- H << "explicit ";
- }
- H << name << spar << allTypes << epar << ';';
+ H << sp << nl << name << "()";
+ H << sb << eb;
}
/*
@@ -3932,7 +3917,8 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p)
*/
emitOneShotConstructor(p);
-
+ H << sp;
+
/*
* Strong guarantee
@@ -4064,6 +4050,7 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p)
<< "(const ::Ice::Current& = ::Ice::Current()) const;";
H << nl << "virtual const ::std::string& ice_id(const ::Ice::Current& = ::Ice::Current()) const;";
H << nl << "static const ::std::string& ice_staticId();";
+
if(!dataMembers.empty())
{
H << sp;
@@ -5140,7 +5127,7 @@ Slice::Gen::ObjectVisitor::emitVirtualBaseInitializers(const ClassDefPtr& p, boo
{
if(emitVirtualBaseInitializers(bases.front(), virtualInheritance))
{
- C << ',';
+ H << ',';
}
}
}
@@ -5157,18 +5144,18 @@ Slice::Gen::ObjectVisitor::emitVirtualBaseInitializers(const ClassDefPtr& p, boo
}
upcall += ")";
- C.zeroIndent();
- C << nl << "#if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug";
- C.restoreIndent();
- C << nl << fixKwd(p->name()) << upcall;
- C.zeroIndent();
- C << nl << "#else";
- C.restoreIndent();
- C << nl << fixKwd(p->scoped()) << upcall;
- C.zeroIndent();
- C << nl << "#endif";
- C << nl;
- C.restoreIndent();
+ H.zeroIndent();
+ H << nl << "#if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug";
+ H.restoreIndent();
+ H << nl << fixKwd(p->name()) << upcall;
+ H.zeroIndent();
+ H << nl << "#else";
+ H.restoreIndent();
+ H << nl << fixKwd(p->scoped()) << upcall;
+ H.zeroIndent();
+ H << nl << "#endif";
+ H << nl;
+ H.restoreIndent();
return true;
}
@@ -5177,21 +5164,25 @@ void
Slice::Gen::ObjectVisitor::emitOneShotConstructor(const ClassDefPtr& p)
{
DataMemberList allDataMembers = p->allDataMembers();
- DataMemberList::const_iterator q;
-
- vector<string> allParamDecls;
-
- for(q = allDataMembers.begin(); q != allDataMembers.end(); ++q)
- {
- string typeName = inputTypeToString((*q)->type(), (*q)->getMetaData(), _useWstring);
- allParamDecls.push_back(typeName + " __ice_" + (*q)->name());
- }
if(!allDataMembers.empty())
{
- C << sp << nl << fixKwd(p->scoped()).substr(2) << "::" << fixKwd(p->name())
- << spar << allParamDecls << epar << " :";
- C.inc();
+ DataMemberList::const_iterator q;
+ vector<string> allParamDecls;
+
+ for(q = allDataMembers.begin(); q != allDataMembers.end(); ++q)
+ {
+ string typeName = inputTypeToString((*q)->type(), (*q)->getMetaData(), _useWstring);
+ allParamDecls.push_back(typeName + " __ice_" + (*q)->name());
+ }
+
+ H << sp << nl;
+ if(allParamDecls.size() == 1)
+ {
+ H << "explicit ";
+ }
+ H << fixKwd(p->name()) << spar << allParamDecls << epar << " :";
+ H.inc();
DataMemberList dataMembers = p->dataMembers();
@@ -5203,28 +5194,28 @@ Slice::Gen::ObjectVisitor::emitOneShotConstructor(const ClassDefPtr& p)
{
if(!dataMembers.empty())
{
- C << ',';
+ H << ',';
}
}
}
if(!dataMembers.empty())
{
- C << nl;
+ H << nl;
}
for(q = dataMembers.begin(); q != dataMembers.end(); ++q)
{
if(q != dataMembers.begin())
{
- C << ',' << nl;
+ H << ',' << nl;
}
string memberName = fixKwd((*q)->name());
- C << memberName << '(' << "__ice_" << (*q)->name() << ')';
+ H << memberName << '(' << "__ice_" << (*q)->name() << ')';
}
- C.dec();
- C << sb;
- C << eb;
+ H.dec();
+ H << sb;
+ H << eb;
}
}