summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp645
1 files changed, 81 insertions, 564 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index e0e4df2aba7..038568cf64c 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -163,6 +163,7 @@ initValue(const TypePtr& p)
case Builtin::KindObject:
case Builtin::KindObjectProxy:
case Builtin::KindLocalObject:
+ case Builtin::KindValue:
{
return "null";
}
@@ -799,7 +800,7 @@ Slice::JavaVisitor::writeMarshalDataMember(Output& out, const string& package, c
}
else
{
- out << nl << "if(__has_" << member->name() << " && __os.writeOpt(" << member->tag() << ", "
+ out << nl << "if(__has_" << member->name() << " && __os.writeOptional(" << member->tag() << ", "
<< getOptionalFormat(member->type()) << "))";
out << sb;
writeMarshalUnmarshalCode(out, package, member->type(), OptionalMember, false, 0, fixKwd(member->name()), true,
@@ -831,7 +832,7 @@ Slice::JavaVisitor::writeUnmarshalDataMember(Output& out, const string& package,
}
else
{
- out << nl << "if(__has_" << member->name() << " = __is.readOpt(" << member->tag() << ", "
+ out << nl << "if(__has_" << member->name() << " = __is.readOptional(" << member->tag() << ", "
<< getOptionalFormat(member->type()) << "))";
out << sb;
writeMarshalUnmarshalCode(out, package, member->type(), OptionalMember, false, 0, fixKwd(member->name()), false,
@@ -841,66 +842,10 @@ Slice::JavaVisitor::writeUnmarshalDataMember(Output& out, const string& package,
}
void
-Slice::JavaVisitor::writeStreamMarshalDataMember(Output& out, const string& package, const DataMemberPtr& member,
- int& iter)
-{
- if(!member->optional())
- {
- writeStreamMarshalUnmarshalCode(out, package, member->type(), false, 0, fixKwd(member->name()), true,
- iter, false, member->getMetaData());
- }
- else
- {
- out << nl << "if(__has_" << member->name() << " && __outS.writeOptional(" << member->tag() << ", "
- << getOptionalFormat(member->type()) << "))";
- out << sb;
- writeStreamMarshalUnmarshalCode(out, package, member->type(), true, member->tag(), fixKwd(member->name()),
- true, iter, false, member->getMetaData());
- out << eb;
- }
-}
-
-void
-Slice::JavaVisitor::writeStreamUnmarshalDataMember(Output& out, const string& package, const DataMemberPtr& member,
- int& iter, bool needPatcher, int& patchIter)
-{
- string patchParams;
- if(needPatcher)
- {
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(member->type());
- if((builtin && builtin->kind() == Builtin::KindObject) || ClassDeclPtr::dynamicCast(member->type()))
- {
- ostringstream ostr;
- ostr << "new Patcher(" << patchIter++ << ')';
- patchParams = ostr.str();
- }
- }
-
- if(!member->optional())
- {
- writeStreamMarshalUnmarshalCode(out, package, member->type(), false, 0, fixKwd(member->name()), false,
- iter, false, member->getMetaData(), patchParams);
- }
- else
- {
- out << nl << "if(__has_" << member->name() << " = __inS.readOptional(" << member->tag() << ", "
- << getOptionalFormat(member->type()) << "))";
- out << sb;
- writeStreamMarshalUnmarshalCode(out, package, member->type(), true, member->tag(), fixKwd(member->name()),
- false, iter, false, member->getMetaData(), patchParams);
- out << eb;
- }
-}
-
-void
Slice::JavaVisitor::writePatcher(Output& out, const string& package, const DataMemberList& classMembers,
- const DataMemberList& optionalMembers, bool stream)
+ const DataMemberList& optionalMembers)
{
- out << sp << nl << "private class Patcher implements IceInternal.Patcher";
- if(stream)
- {
- out << ", Ice.ReadObjectCallback";
- }
+ out << sp << nl << "private class Patcher implements Ice.ReadObjectCallback";
out << sb;
if(classMembers.size() > 1)
{
@@ -910,7 +855,7 @@ Slice::JavaVisitor::writePatcher(Output& out, const string& package, const DataM
out << eb;
}
- out << sp << nl << "public void" << nl << "patch(Ice.Object v)";
+ out << sp << nl << "public void" << nl << "objectReady(Ice.Object v)";
out << sb;
if(classMembers.size() > 1)
{
@@ -1047,14 +992,6 @@ Slice::JavaVisitor::writePatcher(Output& out, const string& package, const DataM
}
out << eb;
- if(stream)
- {
- out << sp << nl << "public void" << nl << "invoke(Ice.Object v)";
- out << sb;
- out << nl << "patch(v);";
- out << eb;
- }
-
if(classMembers.size() > 1)
{
out << sp << nl << "private int __member;";
@@ -1065,7 +1002,7 @@ Slice::JavaVisitor::writePatcher(Output& out, const string& package, const DataM
}
void
-Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr& p, bool stream)
+Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr& p)
{
string name = fixKwd(p->name());
string package = getPackage(p);
@@ -1333,7 +1270,7 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
//
// Unmarshal 'in' parameters.
//
- out << nl << "IceInternal.BasicStream __is = __inS.startReadParams();";
+ out << nl << "Ice.InputStream __is = __inS.startReadParams();";
for(ParamDeclList::const_iterator pli = inParams.begin(); pli != inParams.end(); ++pli)
{
TypePtr paramType = (*pli)->type();
@@ -1425,7 +1362,7 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
//
if(!outParams.empty() || ret)
{
- out << nl << "IceInternal.BasicStream __os = __inS.__startWriteParams("
+ out << nl << "Ice.OutputStream __os = __inS.__startWriteParams("
<< opFormatTypeToString(op) << ");";
writeMarshalUnmarshalParams(out, package, outParams, op, iter, true, optionalMapping, true);
if(op->returnsClasses(false))
@@ -1480,7 +1417,7 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
//
// Unmarshal 'in' parameters.
//
- out << nl << "IceInternal.BasicStream __is = __inS.startReadParams();";
+ out << nl << "Ice.InputStream __is = __inS.startReadParams();";
iter = 0;
for(ParamDeclList::const_iterator pli = inParams.begin(); pli != inParams.end(); ++pli)
{
@@ -1725,48 +1662,24 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
if(preserved && !basePreserved)
{
- out << sp << nl << "public void __write(IceInternal.BasicStream __os)";
+ out << sp << nl << "public void __write(Ice.OutputStream __os)";
out << sb;
- out << nl << "__os.startWriteObject(__slicedData);";
+ out << nl << "__os.startObject(__slicedData);";
out << nl << "__writeImpl(__os);";
- out << nl << "__os.endWriteObject();";
+ out << nl << "__os.endObject();";
out << eb;
- out << sp << nl << "public void __read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public void __read(Ice.InputStream __is)";
out << sb;
- out << nl << "__is.startReadObject();";
+ out << nl << "__is.startObject();";
out << nl << "__readImpl(__is);";
- out << nl << "__slicedData = __is.endReadObject(true);";
+ out << nl << "__slicedData = __is.endObject(true);";
out << eb;
-
- if(stream)
- {
- out << sp << nl << "public void __write(Ice.OutputStream __outS)";
- out << sb;
- if(preserved)
- {
- out << nl << "__outS.startObject(__slicedData);";
- }
- else
- {
- out << nl << "__outS.startObject(null);";
- }
- out << nl << "__writeImpl(__outS);";
- out << nl << "__outS.endObject();";
- out << eb;
-
- out << sp << nl << "public void __read(Ice.InputStream __inS)";
- out << sb;
- out << nl << "__inS.startObject();";
- out << nl << "__readImpl(__inS);";
- out << nl << "__slicedData = __inS.endObject(true);";
- out << eb;
- }
}
- out << sp << nl << "protected void __writeImpl(IceInternal.BasicStream __os)";
+ out << sp << nl << "protected void __writeImpl(Ice.OutputStream __os)";
out << sb;
- out << nl << "__os.startWriteSlice(ice_staticId(), " << p->compactId() << (!base ? ", true" : ", false") << ");";
+ out << nl << "__os.startSlice(ice_staticId(), " << p->compactId() << (!base ? ", true" : ", false") << ");";
iter = 0;
for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
{
@@ -1779,7 +1692,7 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
{
writeMarshalDataMember(out, package, *d, iter);
}
- out << nl << "__os.endWriteSlice();";
+ out << nl << "__os.endSlice();";
if(base)
{
out << nl << "super.__writeImpl(__os);";
@@ -1791,12 +1704,12 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
if(classMembers.size() != 0)
{
- writePatcher(out, package, classMembers, optionalMembers, stream);
+ writePatcher(out, package, classMembers, optionalMembers);
}
- out << sp << nl << "protected void __readImpl(IceInternal.BasicStream __is)";
+ out << sp << nl << "protected void __readImpl(Ice.InputStream __is)";
out << sb;
- out << nl << "__is.startReadSlice();";
+ out << nl << "__is.startSlice();";
int patchIter = 0;
const bool needCustomPatcher = classMembers.size() > 1;
@@ -1812,61 +1725,13 @@ Slice::JavaVisitor::writeDispatchAndMarshalling(Output& out, const ClassDefPtr&
{
writeUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
}
- out << nl << "__is.endReadSlice();";
+ out << nl << "__is.endSlice();";
if(base)
{
out << nl << "super.__readImpl(__is);";
}
out << eb;
- if(stream)
- {
- out << sp << nl << "protected void __writeImpl(Ice.OutputStream __outS)";
- out << sb;
- out << nl << "__outS.startSlice(ice_staticId(), " << p->compactId() << (!base ? ", true" : ", false") << ");";
- iter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- if(!(*d)->optional())
- {
- writeStreamMarshalDataMember(out, package, *d, iter);
- }
- }
- for(DataMemberList::const_iterator d = optionalMembers.begin(); d != optionalMembers.end(); ++d)
- {
- writeStreamMarshalDataMember(out, package, *d, iter);
- }
- out << nl << "__outS.endSlice();";
- if(base)
- {
- out << nl << "super.__writeImpl(__outS);";
- }
- out << eb;
-
- out << sp << nl << "protected void __readImpl(Ice.InputStream __inS)";
- out << sb;
- out << nl << "__inS.startSlice();";
- iter = 0;
- patchIter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- if(!(*d)->optional())
- {
- writeStreamUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
- }
- }
- for(DataMemberList::const_iterator d = optionalMembers.begin(); d != optionalMembers.end(); ++d)
- {
- writeStreamUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
- }
- out << nl << "__inS.endSlice();";
- if(base)
- {
- out << nl << "super.__readImpl(__inS);";
- }
- out << eb;
- }
-
if(preserved && !basePreserved)
{
out << sp << nl << "protected Ice.SlicedData __slicedData;";
@@ -2076,6 +1941,7 @@ Slice::JavaVisitor::writeConstantValue(Output& out, const TypePtr& type, const S
case Builtin::KindObject:
case Builtin::KindObjectProxy:
case Builtin::KindLocalObject:
+ case Builtin::KindValue:
{
out << value;
break;
@@ -2569,7 +2435,7 @@ Slice::Gen::~Gen()
}
void
-Slice::Gen::generate(const UnitPtr& p, bool stream)
+Slice::Gen::generate(const UnitPtr& p)
{
JavaGenerator::validateMetaData(p);
@@ -2579,7 +2445,7 @@ Slice::Gen::generate(const UnitPtr& p, bool stream)
PackageVisitor packageVisitor(_dir);
p->visit(&packageVisitor, false);
- TypesVisitor typesVisitor(_dir, stream);
+ TypesVisitor typesVisitor(_dir);
p->visit(&typesVisitor, false);
CompactIdVisitor compactIdVisitor(_dir);
@@ -2588,13 +2454,13 @@ Slice::Gen::generate(const UnitPtr& p, bool stream)
HolderVisitor holderVisitor(_dir);
p->visit(&holderVisitor, false);
- HelperVisitor helperVisitor(_dir, stream);
+ HelperVisitor helperVisitor(_dir);
p->visit(&helperVisitor, false);
ProxyVisitor proxyVisitor(_dir);
p->visit(&proxyVisitor, false);
- DispatcherVisitor dispatcherVisitor(_dir, stream);
+ DispatcherVisitor dispatcherVisitor(_dir);
p->visit(&dispatcherVisitor, false);
AsyncVisitor asyncVisitor(_dir);
@@ -3056,8 +2922,8 @@ Slice::Gen::PackageVisitor::visitModuleStart(const ModulePtr& p)
return false;
}
-Slice::Gen::TypesVisitor::TypesVisitor(const string& dir, bool stream) :
- JavaVisitor(dir), _stream(stream)
+Slice::Gen::TypesVisitor::TypesVisitor(const string& dir) :
+ JavaVisitor(dir)
{
}
@@ -3245,9 +3111,9 @@ Slice::Gen::TypesVisitor::visitClassDefStart(const ClassDefPtr& p)
out << ';';
//
- // Generate asynchronous API for local operations marked with "async" metadata.
+ // Generate asynchronous API for local operations marked with "async-oneway" metadata.
//
- if(p->hasMetaData("async") || op->hasMetaData("async"))
+ if(p->hasMetaData("async-oneway") || op->hasMetaData("async-oneway"))
{
vector<string> inParams = getInOutParams(op, package, InParam, true, true);
@@ -3449,20 +3315,17 @@ Slice::Gen::TypesVisitor::visitClassDefStart(const ClassDefPtr& p)
if(!p->isInterface() && p->allOperations().size() == 0 && !p->isLocal())
{
out << sp;
- out << nl << "private static class __F implements Ice.ObjectFactory";
+ out << nl << "private static class __F implements Ice.ValueFactory";
out << sb;
out << nl << "public Ice.Object create(String type)";
out << sb;
out << nl << "assert(type.equals(ice_staticId()));";
out << nl << "return new " << fixKwd(name) << "();";
out << eb;
- out << sp << nl << "public void destroy()";
- out << sb;
- out << eb;
out << eb;
- out << nl << "private static Ice.ObjectFactory _factory = new __F();";
+ out << nl << "private static Ice.ValueFactory _factory = new __F();";
out << sp;
- out << nl << "public static Ice.ObjectFactory" << nl << "ice_factory()";
+ out << nl << "public static Ice.ValueFactory" << nl << "ice_factory()";
out << sb;
out << nl << "return _factory;";
out << eb;
@@ -3473,7 +3336,7 @@ Slice::Gen::TypesVisitor::visitClassDefStart(const ClassDefPtr& p)
//
if(!p->isInterface() && !p->isLocal())
{
- writeDispatchAndMarshalling(out, p, _stream);
+ writeDispatchAndMarshalling(out, p);
}
return true;
@@ -3828,9 +3691,9 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
}
}
- out << sp << nl << "public String" << nl << "ice_name()";
+ out << sp << nl << "public String" << nl << "ice_id()";
out << sb;
- out << nl << "return \"" << scoped.substr(2) << "\";";
+ out << nl << "return \"" << scoped << "\";";
out << eb;
return true;
@@ -3857,41 +3720,24 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
if(preserved && !basePreserved)
{
- out << sp << nl << "public void" << nl << "__write(IceInternal.BasicStream __os)";
+ out << sp << nl << "public void" << nl << "__write(Ice.OutputStream __os)";
out << sb;
- out << nl << "__os.startWriteException(__slicedData);";
+ out << nl << "__os.startException(__slicedData);";
out << nl << "__writeImpl(__os);";
- out << nl << "__os.endWriteException();";
+ out << nl << "__os.endException();";
out << eb;
- out << sp << nl << "public void" << nl << "__read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public void" << nl << "__read(Ice.InputStream __is)";
out << sb;
- out << nl << "__is.startReadException();";
+ out << nl << "__is.startException();";
out << nl << "__readImpl(__is);";
- out << nl << "__slicedData = __is.endReadException(true);";
+ out << nl << "__slicedData = __is.endException(true);";
out << eb;
-
- if(_stream)
- {
- out << sp << nl << "public void" << nl << "__write(Ice.OutputStream __outS)";
- out << sb;
- out << nl << "__outS.startException(__slicedData);";
- out << nl << "__writeImpl(__outS);";
- out << nl << "__outS.endException();";
- out << eb;
-
- out << sp << nl << "public void" << nl << "__read(Ice.InputStream __inS)";
- out << sb;
- out << nl << "__inS.startException();";
- out << nl << "__readImpl(__inS);";
- out << nl << "__slicedData = __inS.endException(true);";
- out << eb;
- }
}
- out << sp << nl << "protected void" << nl << "__writeImpl(IceInternal.BasicStream __os)";
+ out << sp << nl << "protected void" << nl << "__writeImpl(Ice.OutputStream __os)";
out << sb;
- out << nl << "__os.startWriteSlice(\"" << scoped << "\", -1, " << (!base ? "true" : "false") << ");";
+ out << nl << "__os.startSlice(\"" << scoped << "\", -1, " << (!base ? "true" : "false") << ");";
iter = 0;
for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
{
@@ -3904,7 +3750,7 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
{
writeMarshalDataMember(out, package, *d, iter);
}
- out << nl << "__os.endWriteSlice();";
+ out << nl << "__os.endSlice();";
if(base)
{
out << nl << "super.__writeImpl(__os);";
@@ -3916,11 +3762,11 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
if(classMembers.size() != 0)
{
- writePatcher(out, package, classMembers, optionalMembers, _stream);
+ writePatcher(out, package, classMembers, optionalMembers);
}
- out << sp << nl << "protected void" << nl << "__readImpl(IceInternal.BasicStream __is)";
+ out << sp << nl << "protected void" << nl << "__readImpl(Ice.InputStream __is)";
out << sb;
- out << nl << "__is.startReadSlice();";
+ out << nl << "__is.startSlice();";
iter = 0;
int patchIter = 0;
const bool needCustomPatcher = classMembers.size() > 1;
@@ -3935,61 +3781,13 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
{
writeUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
}
- out << nl << "__is.endReadSlice();";
+ out << nl << "__is.endSlice();";
if(base)
{
out << nl << "super.__readImpl(__is);";
}
out << eb;
- if(_stream)
- {
- out << sp << nl << "protected void" << nl << "__writeImpl(Ice.OutputStream __outS)";
- out << sb;
- out << nl << "__outS.startSlice(\"" << scoped << "\", -1, " << (!base ? "true" : "false") << ");";
- iter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- if(!(*d)->optional())
- {
- writeStreamMarshalDataMember(out, package, *d, iter);
- }
- }
- for(DataMemberList::const_iterator d = optionalMembers.begin(); d != optionalMembers.end(); ++d)
- {
- writeStreamMarshalDataMember(out, package, *d, iter);
- }
- out << nl << "__outS.endSlice();";
- if(base)
- {
- out << nl << "super.__writeImpl(__outS);";
- }
- out << eb;
-
- out << sp << nl << "protected void" << nl << "__readImpl(Ice.InputStream __inS)";
- out << sb;
- out << nl << "__inS.startSlice();";
- iter = 0;
- patchIter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- if(!(*d)->optional())
- {
- writeStreamUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
- }
- }
- for(DataMemberList::const_iterator d = optionalMembers.begin(); d != optionalMembers.end(); ++d)
- {
- writeStreamUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
- }
- out << nl << "__inS.endSlice();";
- if(base)
- {
- out << nl << "super.__readImpl(__inS);";
- }
- out << eb;
- }
-
if(p->usesClasses(false))
{
if(!base || (base && !base->usesClasses(false)))
@@ -4153,6 +3951,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
case Builtin::KindObject:
case Builtin::KindObjectProxy:
case Builtin::KindLocalObject:
+ case Builtin::KindValue:
{
out << nl << "if(" << memberName << " != _r." << memberName << ')';
out << sb;
@@ -4248,7 +4047,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
if(!p->isLocal())
{
- out << sp << nl << "public void" << nl << "__write(IceInternal.BasicStream __os)";
+ out << sp << nl << "public void" << nl << "ice_write(Ice.OutputStream __os)";
out << sb;
iter = 0;
for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
@@ -4261,10 +4060,10 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
if(classMembers.size() != 0)
{
- writePatcher(out, package, classMembers, DataMemberList(), _stream);
+ writePatcher(out, package, classMembers, DataMemberList());
}
- out << sp << nl << "public void" << nl << "__read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public void" << nl << "ice_read(Ice.InputStream __is)";
out << sb;
iter = 0;
int patchIter = 0;
@@ -4275,75 +4074,28 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
}
out << eb;
- if(_stream)
- {
- out << sp << nl << "public void" << nl << "ice_write(Ice.OutputStream __outS)";
- out << sb;
- iter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- writeStreamMarshalDataMember(out, package, *d, iter);
- }
- out << eb;
-
- out << sp << nl << "public void" << nl << "ice_read(Ice.InputStream __inS)";
- out << sb;
- iter = 0;
- patchIter = 0;
- for(DataMemberList::const_iterator d = members.begin(); d != members.end(); ++d)
- {
- writeStreamUnmarshalDataMember(out, package, *d, iter, needCustomPatcher, patchIter);
- }
- out << eb;
- }
-
- out << sp << nl << "static public void" << nl << "__write(IceInternal.BasicStream __os, " << name << " __v)";
+ out << sp << nl << "static public void" << nl << "ice_write(Ice.OutputStream __os, " << name << " __v)";
out << sb;
out << nl << "if(__v == null)";
out << sb;
- out << nl << "__nullMarshalValue.__write(__os);";
+ out << nl << "__nullMarshalValue.ice_write(__os);";
out << eb;
out << nl << "else";
out << sb;
- out << nl << "__v.__write(__os);";
+ out << nl << "__v.ice_write(__os);";
out << eb;
out << eb;
- out << sp << nl << "static public " << name << nl << "__read(IceInternal.BasicStream __is, " << name << " __v)";
+ out << sp << nl << "static public " << name << nl << "ice_read(Ice.InputStream __is, " << name << " __v)";
out << sb;
out << nl << "if(__v == null)";
out << sb;
out << nl << " __v = new " << name << "();";
out << eb;
- out << nl << "__v.__read(__is);";
+ out << nl << "__v.ice_read(__is);";
out << nl << "return __v;";
out << eb;
- if(_stream)
- {
- out << sp << nl << "static public void" << nl << "ice_write(Ice.OutputStream __outS, " << name << " __v)";
- out << sb;
- out << nl << "if(__v == null)";
- out << sb;
- out << nl << "__nullMarshalValue.ice_write(__outS);";
- out << eb;
- out << nl << "else";
- out << sb;
- out << nl << "__v.ice_write(__outS);";
- out << eb;
- out << eb;
-
- out << sp << nl << "static public " << name << nl << "ice_read(Ice.InputStream __inS, " << name << " __v)";
- out << sb;
- out << nl << "if(__v == null)";
- out << sb;
- out << nl << " __v = new " << name << "();";
- out << eb;
- out << nl << "__v.ice_read(__inS);";
- out << nl << "return __v;";
- out << eb;
- }
-
out << nl << nl << "private static final " << name << " __nullMarshalValue = new " << name << "();";
}
@@ -4713,12 +4465,12 @@ Slice::Gen::TypesVisitor::visitEnum(const EnumPtr& p)
if(!p->isLocal())
{
- out << sp << nl << "public void" << nl << "__write(IceInternal.BasicStream __os)";
+ out << sp << nl << "public void" << nl << "ice_write(Ice.OutputStream __os)";
out << sb;
out << nl << "__os.writeEnum(value(), " << p->maxValue() << ");";
out << eb;
- out << sp << nl << "public static void" << nl << "__write(IceInternal.BasicStream __os, " << name << " __v)";
+ out << sp << nl << "public static void" << nl << "ice_write(Ice.OutputStream __os, " << name << " __v)";
out << sb;
out << nl << "if(__v == null)";
out << sb;
@@ -4731,38 +4483,12 @@ Slice::Gen::TypesVisitor::visitEnum(const EnumPtr& p)
out << eb;
out << eb;
- out << sp << nl << "public static " << name << nl << "__read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public static " << name << nl << "ice_read(Ice.InputStream __is)";
out << sb;
out << nl << "int __v = __is.readEnum(" << p->maxValue() << ");";
out << nl << "return __validate(__v);";
out << eb;
- if(_stream)
- {
- out << sp << nl << "public void" << nl << "ice_write(Ice.OutputStream __outS)";
- out << sb;
- out << nl << "__outS.writeEnum(value(), " << p->maxValue() << ");";
- out << eb;
-
- out << sp << nl << "public static void" << nl << "ice_write(Ice.OutputStream __outS, " << name << " __v)";
- out << sb;
- out << nl << "if(__v == null)";
- out << sb;
- out << nl << "__outS.writeEnum(" << absolute << '.' << firstEnum << ".value(), " << p->maxValue() << ");";
- out << eb;
- out << nl << "else";
- out << sb;
- out << nl << "__outS.writeEnum(__v.value(), " << p->maxValue() << ");";
- out << eb;
- out << eb;
-
- out << sp << nl << "public static " << name << nl << "ice_read(Ice.InputStream __inS)";
- out << sb;
- out << nl << "int __v = __inS.readEnum(" << p->maxValue() << ");";
- out << nl << "return __validate(__v);";
- out << eb;
- }
-
out << sp << nl << "private static " << name
<< nl << "__validate(int __v)";
out << sb;
@@ -4960,7 +4686,7 @@ Slice::Gen::HolderVisitor::writeHolder(const TypePtr& p)
out << eb;
out << sp << nl << "public void";
- out << nl << "patch(Ice.Object v)";
+ out << nl << "objectReady(Ice.Object v)";
out << sb;
out << nl << "if(v == null || v instanceof " << typeS << ")";
out << sb;
@@ -5004,8 +4730,8 @@ Slice::Gen::HolderVisitor::writeHolder(const TypePtr& p)
close();
}
-Slice::Gen::HelperVisitor::HelperVisitor(const string& dir, bool stream) :
- JavaVisitor(dir), _stream(stream)
+Slice::Gen::HelperVisitor::HelperVisitor(const string& dir) :
+ JavaVisitor(dir)
{
}
@@ -5117,13 +4843,13 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
}
out << nl << "catch(Ice.UserException __ex)";
out << sb;
- out << nl << "throw new Ice.UnknownUserException(__ex.ice_name(), __ex);";
+ out << nl << "throw new Ice.UnknownUserException(__ex.ice_id(), __ex);";
out << eb;
out << eb;
if(ret || !outParams.empty())
{
- out << nl << "IceInternal.BasicStream __is = __result.startReadParams();";
+ out << nl << "Ice.InputStream __is = __result.startReadParams();";
const ParamDeclList paramList = op->parameters();
ParamDeclList pl;
for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli)
@@ -5374,12 +5100,12 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "return __ids[" << scopedPos << "];";
out << eb;
- out << sp << nl << "public static void __write(IceInternal.BasicStream __os, " << name << "Prx v)";
+ out << sp << nl << "public static void __write(Ice.OutputStream __os, " << name << "Prx v)";
out << sb;
out << nl << "__os.writeProxy(v);";
out << eb;
- out << sp << nl << "public static " << name << "Prx __read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public static " << name << "Prx __read(Ice.InputStream __is)";
out << sb;
out << nl << "Ice.ObjectPrx proxy = __is.readProxy();";
out << nl << "if(proxy != null)";
@@ -5391,45 +5117,6 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "return null;";
out << eb;
- if(_stream)
- {
- out << sp;
- writeDocComment(out, "",
- "Writes the proxy to the stream.\n"
- "@param __outS The output stream.\n"
- "@param v The proxy to write. A null value is legal.");
- out << nl << "public static void write(Ice.OutputStream __outS, " << name << "Prx v)";
- out << sb;
- out << nl << "__outS.writeProxy(v);";
- out << eb;
-
- out << sp;
- writeDocComment(out, "",
- "Reads a proxy from the stream.\n"
- "@param __inS The input stream.\n"
- "@return The proxy, which may be null.");
- out << nl << "public static " << name << "Prx read(Ice.InputStream __inS)";
- out << sb;
- out << nl << "Ice.ObjectPrx proxy = __inS.readProxy();";
- out << nl << "if(proxy != null)";
- out << sb;
- out << nl << name << "PrxHelper result = new " << name << "PrxHelper();";
- out << nl << "result.__copyFrom(proxy);";
- out << nl << "return result;";
- out << eb;
- out << nl << "return null;";
- out << eb;
-
- out << sp;
- writeDocComment(out, "",
- "Provides the optional format for a proxy of this type.\n"
- "@return The optional format.");
- out << nl << "public static Ice.OptionalFormat optionalFormat()";
- out << sb;
- out << nl << "return Ice.OptionalFormat.FSize;";
- out << eb;
- }
-
//
// Avoid serialVersionUID warnings for Proxy Helper classes.
//
@@ -5438,93 +5125,6 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
close();
- if(_stream)
- {
- //
- // Class helper.
- //
- open(getAbsolute(p, "", "", "Helper"), p->file());
-
- Output& out2 = output();
-
- out2 << sp;
- writeDocComment(out2, getDeprecateReason(p, 0, p->isInterface() ? "interface" : "class"),
- "Provides type-specific helper functions.");
- out2 << nl << "public final class " << name << "Helper";
- out2 << sb;
-
- out2 << sp;
- writeDocComment(out2, "",
- "Writes an instance to the stream.\n"
- "@param __outS The output stream.\n"
- "@param __v The instance to write. A null value is legal.");
- out2 << nl << "public static void write(Ice.OutputStream __outS, " << fixKwd(name) << " __v)";
- out2 << sb;
- out2 << nl << "__outS.writeObject(__v);";
- out2 << eb;
-
- out2 << sp;
- writeDocComment(out2, "",
- "Reads an instance from the stream.\n"
- "@param __inS The input stream.\n"
- "@param __h A holder to contain the instance when it is eventually unmarshaled.");
- out2 << nl << "public static void read(Ice.InputStream __inS, " << name << "Holder __h)";
- out2 << sb;
- out2 << nl << "__inS.readObject(__h);";
- out2 << eb;
-
- out2 << sp;
- writeDocComment(out2, "",
- "Provides the optional format for an instance of this type.\n"
- "@return The optional format.");
- out2 << nl << "public static Ice.OptionalFormat optionalFormat()";
- out2 << sb;
- out2 << nl << "return " << getOptionalFormat(p->declaration()) << ';';
- out2 << eb;
-
- out2 << eb;
- close();
- }
-
- return false;
-}
-
-bool
-Slice::Gen::HelperVisitor::visitStructStart(const StructPtr& p)
-{
- if(!p->isLocal() && _stream)
- {
- string name = p->name();
- string fixedName = fixKwd(name);
-
- open(getAbsolute(p, "", "", "Helper"), p->file());
-
- Output& out = output();
-
- out << sp << nl << "public final class " << name << "Helper";
- out << sb;
-
- out << sp << nl << "public static void write(Ice.OutputStream __outS, " << fixedName << " __v)";
- out << sb;
- out << nl << "__v.ice_write(__outS);";
- out << eb;
-
- out << sp << nl << "public static " << fixedName << " read(Ice.InputStream __inS)";
- out << sb;
- out << nl << fixedName << " __v = new " << fixedName << "();";
- out << nl << "__v.ice_read(__inS);";
- out << nl << "return __v;";
- out << eb;
-
- out << sp << nl << "public static Ice.OptionalFormat optionalFormat()";
- out << sb;
- out << nl << "return " << getOptionalFormat(p) << ';';
- out << eb;
-
- out << eb;
- close();
- }
-
return false;
}
@@ -5618,7 +5218,7 @@ Slice::Gen::HelperVisitor::visitSequence(const SequencePtr& p)
out << sp << nl << "public final class " << name << "Helper";
out << sb;
- out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << typeS << " __v)";
+ out << nl << "public static void" << nl << "write(Ice.OutputStream __os, " << typeS << " __v)";
out << sb;
iter = 0;
writeSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
@@ -5629,7 +5229,7 @@ Slice::Gen::HelperVisitor::visitSequence(const SequencePtr& p)
{
out << nl << "@SuppressWarnings(\"unchecked\")";
}
- out << nl << "public static " << typeS << nl << "read(IceInternal.BasicStream __is)";
+ out << nl << "public static " << typeS << nl << "read(Ice.InputStream __is)";
out << sb;
out << nl << typeS << " __v;";
iter = 0;
@@ -5637,33 +5237,6 @@ Slice::Gen::HelperVisitor::visitSequence(const SequencePtr& p)
out << nl << "return __v;";
out << eb;
- if(_stream)
- {
- out << sp << nl << "public static void write(Ice.OutputStream __outS, " << typeS << " __v)";
- out << sb;
- iter = 0;
- writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
- out << eb;
-
- out << sp;
- if(suppressUnchecked)
- {
- out << nl << "@SuppressWarnings(\"unchecked\")";
- }
- out << nl << "public static " << typeS << " read(Ice.InputStream __inS)";
- out << sb;
- out << nl << typeS << " __v;";
- iter = 0;
- writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
- out << nl << "return __v;";
- out << eb;
-
- out << sp << nl << "public static Ice.OptionalFormat optionalFormat()";
- out << sb;
- out << nl << "return " << getOptionalFormat(p) << ';';
- out << eb;
- }
-
out << eb;
close();
}
@@ -5697,14 +5270,14 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p)
out << sp << nl << "public final class " << name << "Helper";
out << sb;
- out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << formalType << " __v)";
+ out << nl << "public static void" << nl << "write(Ice.OutputStream __os, " << formalType << " __v)";
out << sb;
iter = 0;
writeDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
out << eb;
out << sp << nl << "public static " << formalType
- << nl << "read(IceInternal.BasicStream __is)";
+ << nl << "read(Ice.InputStream __is)";
out << sb;
out << nl << formalType << " __v;";
iter = 0;
@@ -5712,69 +5285,11 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p)
out << nl << "return __v;";
out << eb;
- if(_stream)
- {
- out << sp << nl << "public static void write(Ice.OutputStream __outS, " << formalType
- << " __v)";
- out << sb;
- iter = 0;
- writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
- out << eb;
-
- out << sp << nl << "public static " << formalType << " read(Ice.InputStream __inS)";
- out << sb;
- out << nl << formalType << " __v;";
- iter = 0;
- writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
- out << nl << "return __v;";
- out << eb;
-
- out << sp << nl << "public static Ice.OptionalFormat optionalFormat()";
- out << sb;
- out << nl << "return " << getOptionalFormat(p) << ';';
- out << eb;
- }
-
out << eb;
close();
}
void
-Slice::Gen::HelperVisitor::visitEnum(const EnumPtr& p)
-{
- if(!p->isLocal() && _stream)
- {
- string name = p->name();
- string fixedName = fixKwd(name);
-
- open(getAbsolute(p, "", "", "Helper"), p->file());
-
- Output& out = output();
-
- out << sp << nl << "public final class " << name << "Helper";
- out << sb;
-
- out << sp << nl << "public static void write(Ice.OutputStream __outS, " << fixedName << " __v)";
- out << sb;
- out << nl << "__v.ice_write(__outS);";
- out << eb;
-
- out << sp << nl << "public static " << fixedName << " read(Ice.InputStream __inS)";
- out << sb;
- out << nl << "return " << fixedName << ".ice_read(__inS);";
- out << eb;
-
- out << sp << nl << "public static Ice.OptionalFormat optionalFormat()";
- out << sb;
- out << nl << "return " << getOptionalFormat(p) << ';';
- out << eb;
-
- out << eb;
- close();
- }
-}
-
-void
Slice::Gen::HelperVisitor::writeOperation(const ClassDefPtr& p, const string& package, const OperationPtr& op,
bool optionalMapping)
{
@@ -6111,7 +5626,7 @@ Slice::Gen::HelperVisitor::writeOperation(const ClassDefPtr& p, const string& pa
iter = 0;
if(!inArgs.empty())
{
- out << nl << "IceInternal.BasicStream __os = __result.startWriteParams("
+ out << nl << "Ice.OutputStream __os = __result.startWriteParams("
<< opFormatTypeToString(op) << ");";
ParamDeclList pl;
for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli)
@@ -6462,8 +5977,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
}
}
-Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir, bool stream) :
- JavaVisitor(dir), _stream(stream)
+Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir) :
+ JavaVisitor(dir)
{
}
@@ -6496,7 +6011,7 @@ Slice::Gen::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "throw new java.lang.CloneNotSupportedException();";
out << eb;
- writeDispatchAndMarshalling(out, p, _stream);
+ writeDispatchAndMarshalling(out, p);
//
// Avoid serialVersionUID warnings for dispatch classes.
@@ -6570,6 +6085,7 @@ Slice::Gen::BaseImplVisitor::writeDecl(Output& out, const string& package, const
case Builtin::KindObject:
case Builtin::KindObjectProxy:
case Builtin::KindLocalObject:
+ case Builtin::KindValue:
{
out << " = null";
break;
@@ -6643,6 +6159,7 @@ Slice::Gen::BaseImplVisitor::writeReturn(Output& out, const TypePtr& type, bool
case Builtin::KindObject:
case Builtin::KindObjectProxy:
case Builtin::KindLocalObject:
+ case Builtin::KindValue:
{
out << nl << "return null;";
break;
@@ -7099,7 +6616,7 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p)
{
out << nl << "try";
out << sb;
- out << nl << "IceInternal.BasicStream __os = this.__startWriteParams("
+ out << nl << "Ice.OutputStream __os = this.__startWriteParams("
<< opFormatTypeToString(p) << ");";
writeMarshalUnmarshalParams(out, classPkg, outParams, p, iter, true, optionalMapping, false);
if(p->returnsClasses(false))