本文整理汇总了C++中SequencePtr类的典型用法代码示例。如果您正苦于以下问题:C++ SequencePtr类的具体用法?C++ SequencePtr怎么用?C++ SequencePtr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SequencePtr类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: typeChange
void
FreezeScript::AnalyzeInitVisitor::visitSequence(const SequencePtr& v)
{
if(v->isLocal())
{
return;
}
string scoped = v->scoped();
TypeList l = _oldUnit->lookupTypeNoBuiltin(scoped, false);
if(!l.empty())
{
SequencePtr s = SequencePtr::dynamicCast(l.front());
if(!s)
{
typeChange(l.front(), scoped, "sequence");
}
else
{
return;
}
}
_out.newline();
_out.newline();
_out << "<!-- sequence " << scoped << " -->";
_out << se("init") << attr("type", scoped);
_out << ee;
}
示例2: 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 "???";
}
示例3: typeToString
void Slice::ChecksumVisitor::visitSequence(const SequencePtr& p)
{
if (p->isLocal()) {
return;
}
ostringstream ostr;
ostr << "sequence<" << typeToString(p->type()) << "> " << p->name() << endl;
updateMap(p->scoped(), ostr.str());
}
示例4: if
string
Slice::ObjCGenerator::outTypeToString(const TypePtr& type, bool optional, bool autoreleasing, bool reference)
{
if(!type)
{
return "void";
}
string s;
if(optional)
{
s = "id";
}
else
{
SequencePtr seq = SequencePtr::dynamicCast(type);
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(isString(type))
{
s = "NSMutableString";
}
else if(seq)
{
string prefix = moduleName(findModule(seq));
s = prefix + "Mutable" + seq->name();
}
else if(d)
{
string prefix = moduleName(findModule(d));
s = prefix + "Mutable" + d->name();
}
else
{
s = typeToString(type);
}
if(mapsToPointerType(type))
{
s += "*";
}
}
if(autoreleasing && !isValueType(type))
{
s += " ICE_AUTORELEASING_QUALIFIER";
}
if(reference)
{
s += "*";
}
return s;
}
示例5: fixIdent
void
Slice::Ruby::CodeVisitor::visitSequence(const SequencePtr& p)
{
//
// Emit the type information.
//
string name = fixIdent(p->name(), IdentToUpper);
string scoped = p->scoped();
_out << sp << nl << "if not defined?(" << getAbsolute(p, IdentToUpper, "T_") << ')';
_out.inc();
_out << nl << "T_" << name << " = ::Ice::__defineSequence('" << scoped << "', ";
writeType(p->type());
_out << ")";
_out.dec();
_out << nl << "end"; // if not defined?()
}
示例6: AddStep
void Translator::AddStep(IEnginePtr engine, MSXML2::IXMLDOMNodePtr currentStep, std::map<std::string, std::string> stepProperties, std::string stepName, SequenceFilePtr seqFile, std::string parentSeqName)
{
SequencePtr seq = seqFile->GetSequenceByName(parentSeqName.c_str());
std::string stepTypeString = GetParser()->GetStepType(currentStep);
StepPtr newStep = engine->NewStep(GetAdapter(stepTypeString).c_str() ,GetStepType(stepTypeString).c_str());
newStep->Name = stepName.c_str();
PropertyObjectPtr stepPropObject = newStep->AsPropertyObject();
SetStepProperties(currentStep, stepPropObject, stepProperties);
if ( GetParser()->StepHasResult( currentStep))
{
std::map<std::string, std::string> resultData = GetParser()->GetResultData(currentStep);
AddReportVariable(newStep->AsPropertyObject(), seq, resultData);
}
seq->InsertStep(newStep, m_totalSteps, StepGroup_Main);
m_totalSteps++;
//Add the step to the TypeUsagelist of the sequence file
seqFile->AsPropertyObjectFile()->GetTypeUsageList()->AddUsedTypes(newStep->AsPropertyObject());
}
示例7: if
string
Slice::getEndArg(const TypePtr& type, const StringList& metaData, const string& arg)
{
string endArg = arg;
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
string seqType = findMetaData(metaData, TypeContextInParam);
if(seqType.empty())
{
seqType = findMetaData(seq->getMetaData(), TypeContextInParam);
}
if(seqType == "%array")
{
BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
if(builtin &&
builtin->kind() != Builtin::KindByte &&
builtin->kind() != Builtin::KindString &&
builtin->kind() != Builtin::KindObject &&
builtin->kind() != Builtin::KindObjectProxy)
{
endArg = "___" + endArg;
}
else if(!builtin || builtin->kind() != Builtin::KindByte)
{
endArg = "___" + endArg;
}
}
else if(seqType.find("%range") == 0)
{
StringList md;
if(seqType.find("%range:") == 0)
{
md.push_back("cpp:type:" + seqType.substr(strlen("%range:")));
}
endArg = "___" + endArg;
}
}
return endArg;
}
示例8: getTypeVar
void
CodeVisitor::visitSequence(const SequencePtr& p)
{
string type = getTypeVar(p);
TypePtr content = p->type();
startNamespace(p);
//
// Emit the type information.
//
string scoped = p->scoped();
_out << sp << nl << "if(!isset(" << type << "))";
_out << sb;
_out << nl << type << " = IcePHP_defineSequence('" << scoped << "', ";
writeType(content);
_out << ");";
_out << eb;
endNamespace();
}
示例9: writeMarshalUnmarshalCode
void
Slice::ObjCGenerator::writeOptMemberMarshalUnmarshalCode(Output &out, const TypePtr& type, const string& param,
bool marshal) const
{
string stream = marshal ? "os_" : "is_";
string optionalHelper;
string helper;
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
if(builtin)
{
if(builtin->kind() == Builtin::KindObjectProxy)
{
optionalHelper = "ICEVarLengthOptionalHelper";
helper = "[ICEProxyHelper class]";
}
else
{
writeMarshalUnmarshalCode(out, type, param, marshal, false);
return;
}
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
if(cl)
{
writeMarshalUnmarshalCode(out, type, param, marshal, false);
return;
}
EnumPtr en = EnumPtr::dynamicCast(type);
if(en)
{
writeMarshalUnmarshalCode(out, type, param, marshal, false);
return;
}
ProxyPtr prx = ProxyPtr::dynamicCast(type);
if(prx)
{
optionalHelper = "ICEVarLengthOptionalHelper";
helper = "objc_getClass(\"" + moduleName(findModule(prx->_class())) + prx->_class()->name() + "PrxHelper\")";
}
StructPtr st = StructPtr::dynamicCast(type);
if(st)
{
if(st->isVariableLength())
{
optionalHelper = "ICEVarLengthOptionalHelper";
}
else
{
optionalHelper = "ICEFixedLengthOptionalHelper";
}
helper = "[" + typeToString(st) + "Helper class]";
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
TypePtr element = seq->type();
if(element->isVariableLength())
{
optionalHelper = "ICEVarLengthOptionalHelper";
}
else if(element->minWireSize() == 1)
{
writeMarshalUnmarshalCode(out, type, param, marshal, false);
return;
}
else
{
optionalHelper = "ICEFixedSequenceOptionalHelper";
}
helper = "[" + moduleName(findModule(seq)) + seq->name() + "Helper class]";
}
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(d)
{
if(d->keyType()->isVariableLength() || d->valueType()->isVariableLength())
{
optionalHelper = "ICEVarLengthOptionalHelper";
}
else
{
optionalHelper = "ICEFixedDictionaryOptionalHelper";
}
helper = "[" + moduleName(findModule(d)) + d->name() + "Helper class]";
}
out << nl;
if(marshal)
{
out << "[" << optionalHelper << " write:" << param << " stream:" << stream << " helper:" << helper << "];";
}
else
{
out << param << " = [" << optionalHelper << " readRetained:" << stream << " helper:" << helper << "];";
//.........这里部分代码省略.........
示例10: switch
string
Slice::ObjCGenerator::getOptionalFormat(const TypePtr& type)
{
BuiltinPtr bp = BuiltinPtr::dynamicCast(type);
if(bp)
{
switch(bp->kind())
{
case Builtin::KindByte:
case Builtin::KindBool:
{
return "ICEOptionalFormatF1";
}
case Builtin::KindShort:
{
return "ICEOptionalFormatF2";
}
case Builtin::KindInt:
case Builtin::KindFloat:
{
return "ICEOptionalFormatF4";
}
case Builtin::KindLong:
case Builtin::KindDouble:
{
return "ICEOptionalFormatF8";
}
case Builtin::KindString:
{
return "ICEOptionalFormatVSize";
}
case Builtin::KindObject:
case Builtin::KindValue:
{
return "ICEOptionalFormatClass";
}
case Builtin::KindObjectProxy:
{
return "ICEOptionalFormatFSize";
}
case Builtin::KindLocalObject:
{
assert(false);
break;
}
}
}
if(EnumPtr::dynamicCast(type))
{
return "ICEOptionalFormatSize";
}
SequencePtr seq = SequencePtr::dynamicCast(type);
if(seq)
{
return seq->type()->isVariableLength() ? "ICEOptionalFormatFSize" : "ICEOptionalFormatVSize";
}
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(d)
{
return (d->keyType()->isVariableLength() || d->valueType()->isVariableLength()) ?
"ICEOptionalFormatFSize" : "ICEOptionalFormatVSize";
}
StructPtr st = StructPtr::dynamicCast(type);
if(st)
{
return st->isVariableLength() ? "ICEOptionalFormatFSize" : "ICEOptionalFormatVSize";
}
if(ProxyPtr::dynamicCast(type))
{
return "ICEOptionalFormatFSize";
}
ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
assert(cl);
return "ICEOptionalFormatClass";
}
示例11: if
//.........这里部分代码省略.........
{
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)
{
SequencePtr seq = SequencePtr::dynamicCast(type);
if (seq)
{
BuiltinPtr b = BuiltinPtr::dynamicCast(seq->type());
if (b && b->kind() == Builtin::KindByte)
{
return "Uint8Array";
}
else
{
return typeToString(seq->type(), toplevel, imports, typescript) + "[]";
}
}
DictionaryPtr d = DictionaryPtr::dynamicCast(type);
if(d)
{
const TypePtr keyType = d->keyType();
BuiltinPtr builtin = BuiltinPtr::dynamicCast(keyType);
ostringstream os;
if ((builtin && builtin->kind() == Builtin::KindLong) || StructPtr::dynamicCast(keyType))
{
const string prefix = importPrefix("Ice.HashMap", toplevel);
os << prefix << getUnqualified("Ice.HashMap", toplevel->scope(), prefix);
}
else
{
os << "Map";
}
if (typescript)
{
os << "<"
<< typeToString(keyType, toplevel, imports, true) << ", "
<< typeToString(d->valueType(), toplevel, imports, true) << ">";
}
return os.str();
}
}
ContainedPtr contained = ContainedPtr::dynamicCast(type);
if(contained)
{
ostringstream os;
string prefix;
if(typescript)
{
prefix = importPrefix(contained, toplevel, imports);
os << prefix;
}
if(prefix.empty() && typescript)
{
os << getUnqualified(fixId(contained->scoped()), toplevel->scope(), prefix);
}
else
{
os << fixId(contained->scoped());
}
return os.str();
}
return "???";
}
示例12: QLatin1String
ResourcePtr ModelMaker::readResource(Model& model, const QDomElement& el)
{
QString rdfns = RDFVocab::self()->namespaceURI();
QString about = QLatin1String("about");
QString resource = QLatin1String("resource");
QString descriptionStr = QLatin1String("Description");
ResourcePtr res;
ResourcePtr type = model.createResource(el.namespaceURI() + el.localName());
if (*type == *(RDFVocab::self()->seq()))
{
SequencePtr seq = model.createSequence(el.attribute(about));
res = seq;
}
else
{
res = model.createResource(el.attribute(about));
}
model.addStatement(res, RDFVocab::self()->type(), type);
QDomNodeList children = el.childNodes();
bool isSeq = res->isSequence();
for (uint i = 0; i < children.length(); ++i)
{
if (children.item(i).isElement())
{
QDomElement ce = children.item(i).toElement();
PropertyPtr pred = model.createProperty(ce.namespaceURI() + ce.localName());
if (ce.hasAttribute(resource)) // referenced Resource via (rdf:)resource
{
NodePtr obj = model.createResource(ce.attribute(resource));
if (isSeq && *pred == *(RDFVocab::self()->li()))
{
SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);
tseq->append(obj);
}
else
model.addStatement(res, pred, obj);
}
else if (!ce.text().isEmpty() && ce.lastChildElement().isNull()) // Literal
{
NodePtr obj = model.createLiteral(ce.text());
if (isSeq && *pred == *(RDFVocab::self()->li()))
{
SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);
tseq->append(obj);
}
else
model.addStatement(res, pred, obj);
}
else // embedded description
{
QDomElement re = ce.lastChildElement();
QString uri = re.attribute(about);
// read recursively
NodePtr obj = readResource(model, re);
if (isSeq && *pred == *(RDFVocab::self()->li()))
{
SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);
tseq->append(obj);
}
else
model.addStatement(res, pred, obj);
}
//TODO: bag, reification (nice to have, but not important for basic RSS 1.0)
}
}
return res;
}
示例13: 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);
}
示例14: foreach
foreach (const ResourcePtr &i, sorted)
{
seq->append(i);
// add rdf:about (type)
model.addStatement(i, RDFVocab::self()->type(), RSSVocab::self()->item());
//add to items sequence
model.addStatement(seq, RDFVocab::self()->li(), i);
}