本文整理汇总了C++中ProxyPtr::_class方法的典型用法代码示例。如果您正苦于以下问题:C++ ProxyPtr::_class方法的具体用法?C++ ProxyPtr::_class怎么用?C++ ProxyPtr::_class使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProxyPtr
的用法示例。
在下文中一共展示了ProxyPtr::_class方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: moduleName
string
Slice::ObjCGenerator::typeToObjCTypeString(const TypePtr& type)
{
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
return moduleName(findModule(proxy->_class())) + (proxy->_class()->name()) + "Prx";
}
else
{
return typeToString(type);
}
}
示例2: getModuleMetadata
string
Slice::JsGenerator::getModuleMetadata(const TypePtr& type)
{
static const char* builtinModuleTable[] =
{
"", // byte
"", // bool
"", // short
"", // int
"ice", // long
"", // float
"", // double
"", // string
"ice", // Ice.Value
"ice", // Ice.ObjectPrx
"", // LocalObject
"ice" // Ice.Object
};
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
return builtinModuleTable[builtin->kind()];
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
return getModuleMetadata(proxy ? ContainedPtr::dynamicCast(proxy->_class()->definition()) :
ContainedPtr::dynamicCast(type));
}
示例3: fixId
string
Slice::JsGenerator::typeToString(const TypePtr& type)
{
if(!type)
{
return "void";
}
static const char* builtinTable[] =
{
"Number", // byte
"Boolean", // bool
"Number", // short
"Number", // int
"Number", // long
"Number", // float
"Number", // double
"String",
"Ice.Value",
"Ice.ObjectPrx",
"Object",
"Ice.Value"
};
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
return builtinTable[builtin->kind()];
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
return fixId(proxy->_class()->scoped() + "Prx");
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
return typeToString(seq->type()) + "[]";
}
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(d)
{
const TypePtr keyType = d->keyType();
BuiltinPtr b = BuiltinPtr::dynamicCast(keyType);
return ((b && b->kind() == Builtin::KindLong) || StructPtr::dynamicCast(keyType)) ? "Ice.HashMap" : "Map";
}
ContainedPtr contained = ContainedPtr::dynamicCast(type);
if(contained)
{
return fixId(contained->scoped());
}
return "???";
}
示例4: if
void
Slice::ObjCGenerator::writeOptParamMarshalUnmarshalCode(Output &out, const TypePtr& type, const string& param,
int tag, bool marshal) const
{
string helper;
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(builtin)
{
helper = "ICE" + getBuiltinName(builtin) + "Helper";
}
else if(proxy)
{
helper = moduleName(findModule(proxy->_class())) + (proxy->_class()->name()) + "PrxHelper";
}
else
{
helper = typeToString(type) + "Helper";
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl)
{
out << nl;
if(marshal)
{
out << "[" << helper << " writeOpt:" << param << " stream:os_ tag:" << tag << "];";
}
else
{
out << "[" << helper << " readOpt:&" << param << " stream:is_ tag:" << tag << "];";
}
return;
}
out << nl;
if(marshal)
{
out << "[" << helper << " writeOpt:" << param << " stream:os_ tag:" << tag << "];";
}
else
{
out << param << " = [" << helper << " readOpt:is_ tag:" << tag << "];";
}
}
示例5: typeToString
string
Slice::JsGenerator::importPrefix(const TypePtr& type,
const ContainedPtr& toplevel,
const vector<pair<string, string> >& imports)
{
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
return typeToString(type, toplevel, imports, true);
}
else if(ProxyPtr::dynamicCast(type))
{
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
return importPrefix(ContainedPtr::dynamicCast(proxy->_class()->definition()), toplevel, imports);
}
else if(ContainedPtr::dynamicCast(type))
{
bool local = false;
if(toplevel)
{
if(ConstructedPtr::dynamicCast(toplevel))
{
local = ConstructedPtr::dynamicCast(toplevel)->isLocal();
}
else if(ClassDefPtr::dynamicCast(toplevel))
{
local = ClassDefPtr::dynamicCast(toplevel)->isLocal();
}
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl && cl->isInterface() && !local)
{
return "iceNS0.";
}
else
{
return importPrefix(ContainedPtr::dynamicCast(type), toplevel, imports);
}
}
return "";
}
示例6: if
string
FreezeScript::typeToString(const TypePtr& type)
{
BuiltinPtr b = BuiltinPtr::dynamicCast(type);
ContainedPtr c = ContainedPtr::dynamicCast(type);
if(b)
{
return b->kindAsString();
}
else if(c)
{
return c->scoped();
}
else
{
ProxyPtr p = ProxyPtr::dynamicCast(type);
assert(p);
return p->_class()->scoped() + "*";
}
}
示例7: assert
string Slice::ChecksumVisitor::typeToString(const TypePtr& type)
{
static const char* builtinTable[] = { "byte", "boolean", "short", "int", "long", "float",
"double", "string", "Object", "Object*", "LocalObject" };
if (!type) {
return "void";
}
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if (builtin) {
return builtinTable[builtin->kind()];
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if (proxy) {
return proxy->_class()->scoped() + "*";
}
ContainedPtr cont = ContainedPtr::dynamicCast(type);
assert(cont);
return cont->scoped();
}
示例8: typeToString
std::string
Slice::JsGenerator::getHelper(const TypePtr& type)
{
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
switch(builtin->kind())
{
case Builtin::KindByte:
{
return "Ice.ByteHelper";
}
case Builtin::KindBool:
{
return "Ice.BoolHelper";
}
case Builtin::KindShort:
{
return "Ice.ShortHelper";
}
case Builtin::KindInt:
{
return "Ice.IntHelper";
}
case Builtin::KindLong:
{
return "Ice.LongHelper";
}
case Builtin::KindFloat:
{
return "Ice.FloatHelper";
}
case Builtin::KindDouble:
{
return "Ice.DoubleHelper";
}
case Builtin::KindString:
{
return "Ice.StringHelper";
}
case Builtin::KindObject:
case Builtin::KindValue:
{
return "Ice.ObjectHelper";
}
case Builtin::KindObjectProxy:
{
return "Ice.ObjectPrx";
}
case Builtin::KindLocalObject:
{
assert(false);
break;
}
}
}
if(EnumPtr::dynamicCast(type))
{
return typeToString(type) + "._helper";
}
if(StructPtr::dynamicCast(type))
{
return typeToString(type);
}
ProxyPtr prx = ProxyPtr::dynamicCast(type);
if(prx)
{
ClassDefPtr def = prx->_class()->definition();
if(def->isInterface() || def->allOperations().size() > 0)
{
return typeToString(type);
}
else
{
return "Ice.ObjectPrx";
}
}
if(SequencePtr::dynamicCast(type) || DictionaryPtr::dynamicCast(type))
{
stringstream s;
s << getLocalScope(ContainedPtr::dynamicCast(type)->scoped()) << "Helper";
return s.str();
}
if(ClassDeclPtr::dynamicCast(type))
{
return "Ice.ObjectHelper";
}
assert(false);
return "???";
}
示例9: if
//.........这里部分代码省略.........
{
if(cl->isInterface() && !local)
{
prefix = importPrefix("Ice.Value", toplevel);
}
else
{
prefix = importPrefix(ContainedPtr::dynamicCast(cl), toplevel, imports);
}
}
os << prefix;
if(!prefix.empty() && typescript)
{
if(cl->isInterface() && !local)
{
os << getUnqualified("Ice.Value", toplevel->scope(), prefix);
}
else
{
os << getUnqualified(fixId(cl->scoped()), toplevel->scope(), prefix);
}
}
else
{
os << fixId(cl->scoped());
}
return os.str();
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
ostringstream os;
ClassDefPtr def = proxy->_class()->definition();
if(!def->isInterface() && def->allOperations().empty())
{
if(getModuleMetadata(toplevel) != "ice")
{
os << "iceNS0.";
}
os << getUnqualified(typeScriptBuiltinTable[Builtin::KindObjectProxy],
toplevel->scope(),
getModuleMetadata(toplevel));
}
else
{
string prefix;
if(typescript)
{
prefix = importPrefix(ContainedPtr::dynamicCast(def), toplevel, imports);
os << prefix;
}
if(prefix.empty() && typescript)
{
os << getUnqualified(fixId(proxy->_class()->scoped() + "Prx"), toplevel->scope(), prefix);
}
else
{
os << fixId(proxy->_class()->scoped() + "Prx");
}
}
return os.str();
}
if(!typescript || definition)
示例10: fixName
string
Slice::ObjCGenerator::typeToString(const TypePtr& type)
{
if(!type)
{
return "void";
}
static const char* builtinTable[] =
{
"ICEByte",
"BOOL",
"ICEShort",
"ICEInt",
"ICELong",
"ICEFloat",
"ICEDouble",
"NSString",
"ICEObject",
"id<ICEObjectPrx>",
"id", // Dummy--we don't support Slice local Object
"ICEObject"
};
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
return builtinTable[builtin->kind()];
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
string mName = moduleName(findModule(proxy->_class()));
return "id<" + mName + (proxy->_class()->name()) + "Prx>";
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
return fixName(seq);
}
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(d)
{
return fixName(d);
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl)
{
if(cl->isInterface())
{
if(cl->definition() && cl->definition()->isDelegate())
{
return fixName(cl);
}
else if(cl->isLocal())
{
return "id<" + fixName(cl) + ">";
}
else
{
return "ICEObject";
}
}
else if(cl->isLocal())
{
string name = fixName(cl);
return name + "<" + name + ">";
}
}
ContainedPtr contained = ContainedPtr::dynamicCast(type);
if(contained)
{
return fixName(contained);
}
return "???";
}
示例11: switch
void
CodeVisitor::writeType(const TypePtr& p)
{
BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
if(builtin)
{
switch(builtin->kind())
{
case Builtin::KindBool:
{
_out << "$IcePHP__t_bool";
break;
}
case Builtin::KindByte:
{
_out << "$IcePHP__t_byte";
break;
}
case Builtin::KindShort:
{
_out << "$IcePHP__t_short";
break;
}
case Builtin::KindInt:
{
_out << "$IcePHP__t_int";
break;
}
case Builtin::KindLong:
{
_out << "$IcePHP__t_long";
break;
}
case Builtin::KindFloat:
{
_out << "$IcePHP__t_float";
break;
}
case Builtin::KindDouble:
{
_out << "$IcePHP__t_double";
break;
}
case Builtin::KindString:
{
_out << "$IcePHP__t_string";
break;
}
case Builtin::KindObject:
{
_out << "$Ice__t_Object";
break;
}
case Builtin::KindObjectProxy:
{
_out << "$Ice__t_ObjectPrx";
break;
}
case Builtin::KindLocalObject:
{
_out << "$Ice__t_LocalObject";
break;
}
}
return;
}
ProxyPtr prx = ProxyPtr::dynamicCast(p);
if(prx)
{
_out << getTypeVar(prx->_class(), "Prx");
return;
}
ContainedPtr cont = ContainedPtr::dynamicCast(p);
assert(cont);
_out << getTypeVar(cont);
}
示例12: switch
void
Slice::Ruby::CodeVisitor::writeType(const TypePtr& p)
{
BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
if(builtin)
{
switch(builtin->kind())
{
case Builtin::KindBool:
{
_out << "::Ice::T_bool";
break;
}
case Builtin::KindByte:
{
_out << "::Ice::T_byte";
break;
}
case Builtin::KindShort:
{
_out << "::Ice::T_short";
break;
}
case Builtin::KindInt:
{
_out << "::Ice::T_int";
break;
}
case Builtin::KindLong:
{
_out << "::Ice::T_long";
break;
}
case Builtin::KindFloat:
{
_out << "::Ice::T_float";
break;
}
case Builtin::KindDouble:
{
_out << "::Ice::T_double";
break;
}
case Builtin::KindString:
{
_out << "::Ice::T_string";
break;
}
case Builtin::KindObject:
{
_out << "::Ice::T_Object";
break;
}
case Builtin::KindObjectProxy:
{
_out << "::Ice::T_ObjectPrx";
break;
}
case Builtin::KindLocalObject:
{
_out << "::Ice::T_LocalObject";
break;
}
}
return;
}
ProxyPtr prx = ProxyPtr::dynamicCast(p);
if(prx)
{
_out << getAbsolute(prx->_class(), IdentToUpper, "T_") << "Prx";
return;
}
ContainedPtr cont = ContainedPtr::dynamicCast(p);
assert(cont);
_out << getAbsolute(cont, IdentToUpper, "T_");
}
示例13: stringTypeToString
string
Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
{
static const char* outputBuiltinTable[] =
{
"::Ice::Byte&",
"bool&",
"::Ice::Short&",
"::Ice::Int&",
"::Ice::Long&",
"::Ice::Float&",
"::Ice::Double&",
"::std::string&",
"::Ice::ObjectPtr&",
"::Ice::ObjectPrx&",
"::Ice::LocalObjectPtr&"
};
if(optional)
{
return "IceUtil::Optional<" + toTemplateArg(typeToString(type, metaData, typeCtx)) +">&";
}
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
if(builtin->kind() == Builtin::KindString)
{
return stringTypeToString(type, metaData, typeCtx) + "&";
}
else
{
return outputBuiltinTable[builtin->kind()];
}
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl)
{
return fixKwd(cl->scoped() + "Ptr&");
}
StructPtr st = StructPtr::dynamicCast(type);
if(st)
{
if(findMetaData(st->getMetaData()) == "%class")
{
return fixKwd(st->scoped() + "Ptr&");
}
return fixKwd(st->scoped()) + "&";
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
return fixKwd(proxy->_class()->scoped() + "Prx&");
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
return sequenceTypeToString(seq, metaData, typeCtx) + "&";
}
DictionaryPtr dict = DictionaryPtr::dynamicCast(type);
if(dict)
{
return dictionaryTypeToString(dict, metaData, typeCtx) + "&";
}
ContainedPtr contained = ContainedPtr::dynamicCast(type);
if(contained)
{
return fixKwd(contained->scoped()) + "&";
}
return "???";
}
示例14: assert
//.........这里部分代码省略.........
{
_errors.push_back("class " + newcl->scoped() + " declared but not defined");
return;
}
if(checkClasses(cl, newcl))
{
return;
}
}
typeChange(desc, oldType, newType);
return;
}
StructPtr s = StructPtr::dynamicCast(oldType);
if(s)
{
StructPtr news = StructPtr::dynamicCast(newType);
if(news && s->scoped() == news->scoped())
{
return;
}
//
// Allow target type of class.
//
if(ClassDeclPtr::dynamicCast(newType))
{
return;
}
typeChange(desc, oldType, newType);
return;
}
ProxyPtr proxy = ProxyPtr::dynamicCast(oldType);
if(proxy)
{
//
// Allow target type of Object* and string.
//
BuiltinPtr newb = BuiltinPtr::dynamicCast(newType);
if(newb && (newb->kind() == Builtin::KindObjectProxy || newb->kind() == Builtin::KindString))
{
return;
}
ProxyPtr newProxy = ProxyPtr::dynamicCast(newType);
if(newProxy && checkClasses(proxy->_class(), newProxy->_class()))
{
return;
}
typeChange(desc, oldType, newType);
return;
}
DictionaryPtr dict = DictionaryPtr::dynamicCast(oldType);
if(dict)
{
DictionaryPtr newDict = DictionaryPtr::dynamicCast(newType);
if(newDict && dict->scoped() == newDict->scoped())
{
return;
}
typeChange(desc, oldType, newType);
return;
}
SequencePtr seq = SequencePtr::dynamicCast(oldType);
if(seq)
{
SequencePtr newSeq = SequencePtr::dynamicCast(newType);
if(newSeq && seq->scoped() == newSeq->scoped())
{
return;
}
typeChange(desc, oldType, newType);
return;
}
EnumPtr en = EnumPtr::dynamicCast(oldType);
if(en)
{
EnumPtr newen = EnumPtr::dynamicCast(newType);
BuiltinPtr newb = BuiltinPtr::dynamicCast(newType);
if((newen && en->scoped() == newen->scoped()) || (newb && newb->kind() == Builtin::KindString))
{
return;
}
typeChange(desc, oldType, newType);
return;
}
assert(false);
}
示例15: stringTypeToString
//.........这里部分代码省略.........
return stringTypeToString(type, metaData, typeCtx) + "&";
}
else
{
if(cpp11)
{
if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocalOperation))
{
return "::std::shared_ptr<::Ice::Value>";
}
else
{
return cpp11OutputBuiltinTable[builtin->kind()];
}
}
else
{
return outputBuiltinTable[builtin->kind()];
}
}
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl)
{
if(cpp11)
{
if(cl->isInterface() && !cl->isLocal())
{
return "::std::shared_ptr<::Ice::Value>&";
}
else
{
return "::std::shared_ptr<" + fixKwd(cl->scoped()) + ">&";
}
}
else
{
return fixKwd(cl->scoped() + "Ptr&");
}
}
StructPtr st = StructPtr::dynamicCast(type);
if(st)
{
if(!cpp11 && findMetaData(st->getMetaData()) == "%class")
{
return fixKwd(st->scoped() + "Ptr&");
}
else
{
return fixKwd(st->scoped()) + "&";
}
}
ProxyPtr proxy = ProxyPtr::dynamicCast(type);
if(proxy)
{
if(cpp11)
{
ClassDefPtr def = proxy->_class()->definition();
//
// Non local classes without operations map to the base
// proxy class shared_ptr<Ice::ObjectPrx>
//
if(def && !def->isInterface() && def->allOperations().empty())
{
return "::std::shared_ptr<::Ice::ObjectPrx>";
}
else
{
return "::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">&";
}
}
else
{
return fixKwd(proxy->_class()->scoped() + "Prx&");
}
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
return sequenceTypeToString(seq, metaData, typeCtx) + "&";
}
DictionaryPtr dict = DictionaryPtr::dynamicCast(type);
if(dict)
{
return dictionaryTypeToString(dict, metaData, typeCtx) + "&";
}
ContainedPtr contained = ContainedPtr::dynamicCast(type);
if(contained)
{
return fixKwd(contained->scoped()) + "&";
}
return "???";
}