本文整理汇总了C++中LockingPtr类的典型用法代码示例。如果您正苦于以下问题:C++ LockingPtr类的具体用法?C++ LockingPtr怎么用?C++ LockingPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LockingPtr类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: xrefListItems
void GroupDef::addListReferences()
{
{
LockingPtr< QList<ListItemInfo> > xrefItems = xrefListItems();
addRefItem(xrefItems.pointer(),
getOutputFileBase(),
theTranslator->trGroup(TRUE,TRUE),
getOutputFileBase(),name(),
0
);
}
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
mg->addListReferences(this);
}
QListIterator<MemberList> mli(m_memberLists);
MemberList *ml;
for (mli.toFirst();(ml=mli.current());++mli)
{
if (ml->listType()&MemberList::documentationLists)
{
ml->addListReferences(this);
}
}
}
示例2: generateDEFForMember
void generateDEFForMember(MemberDef *md,
FTextStream &t,
Definition *def,
const char* Prefix)
{
QCString memPrefix;
// + declaration
// - reimplements
// - reimplementedBy
// - exceptions
// - const/volatile specifiers
// - examples
// + source definition
// - source references
// - source referenced by
// - include code
if (md->memberType()==MemberDef::EnumValue) return;
QCString scopeName;
if (md->getClassDef())
scopeName=md->getClassDef()->name();
else if (md->getNamespaceDef())
scopeName=md->getNamespaceDef()->name();
t << " " << Prefix << "-member = {" << endl;
memPrefix = " ";
memPrefix.append( Prefix );
memPrefix.append( "-mem-" );
QCString memType;
bool isFunc=FALSE;
switch (md->memberType())
{
case MemberDef::Define: memType="define"; break;
case MemberDef::EnumValue: ASSERT(0); break;
case MemberDef::Property: memType="property"; break;
case MemberDef::Event: memType="event"; break;
case MemberDef::Variable: memType="variable"; break;
case MemberDef::Typedef: memType="typedef"; break;
case MemberDef::Enumeration: memType="enum"; break;
case MemberDef::Function: memType="function"; isFunc=TRUE; break;
case MemberDef::Signal: memType="signal"; isFunc=TRUE; break;
case MemberDef::Friend: memType="friend"; isFunc=TRUE; break;
case MemberDef::DCOP: memType="dcop"; isFunc=TRUE; break;
case MemberDef::Slot: memType="slot"; isFunc=TRUE; break;
}
t << memPrefix << "kind = '" << memType << "';" << endl;
t << memPrefix << "id = '"
<< md->getOutputFileBase() << "_1" << md->anchor()
<< "';" << endl;
t << memPrefix << "virt = ";
switch (md->virtualness())
{
case Normal: t << "normal;" << endl; break;
case Virtual: t << "virtual;" << endl; break;
case Pure: t << "pure-virtual;" << endl; break;
default: ASSERT(0);
}
t << memPrefix << "prot = ";
switch(md->protection())
{
case Public: t << "public;" << endl; break;
case Protected: t << "protected;" << endl; break;
case Private: t << "private;" << endl; break;
case Package: t << "package;" << endl; break;
}
if (md->memberType()!=MemberDef::Define &&
md->memberType()!=MemberDef::Enumeration
)
{
QCString typeStr = replaceAnonymousScopes(md->typeString());
t << memPrefix << "type = <<_EnD_oF_dEf_TeXt_" << endl << typeStr << endl
<< "_EnD_oF_dEf_TeXt_;" << endl;
}
t << memPrefix << "name = '" << md->name() << "';" << endl;
if (isFunc) //function
{
ArgumentList *declAl = new ArgumentList;
LockingPtr<ArgumentList> defAl = md->argumentList();
stringToArgumentList(md->argsString(),declAl);
QCString fcnPrefix = " " + memPrefix + "param-";
if (declAl->count()>0)
{
ArgumentListIterator declAli(*declAl);
ArgumentListIterator defAli(*defAl);
Argument *a;
for (declAli.toFirst();(a=declAli.current());++declAli)
{
Argument *defArg = defAli.current();
t << memPrefix << "param = {" << endl;
if (!a->attrib.isEmpty())
//.........这里部分代码省略.........
示例3: generateSqlite3ForMember
static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
{
// + declaration/definition arg lists
// + reimplements
// + reimplementedBy
// + exceptions
// + const/volatile specifiers
// - examples
// + source definition
// + source references
// + source referenced by
// - body code
// + template arguments
// (templateArguments(), definitionTemplateParameterLists())
// - call graph
// enum values are written as part of the enum
if (md->memberType()==MemberType_EnumValue) return;
if (md->isHidden()) return;
//if (md->name().at(0)=='@') return; // anonymous member
// group members are only visible in their group
//if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return;
QCString memType;
#if 0
// member
idx = sqlite3_bind_parameter_index(stmt, ":refid");
sqlite3_bind_text(stmt, idx, memberOutputFileBase(md).data(),-1,SQLITE_TRANSIENT);
idx = sqlite3_bind_parameter_index(stmt,":kind");
sqlite3_bind_int(stmt, idx, md->memberType());
idx = sqlite3_bind_parameter_index(stmt, ":name");
sqlite3_bind_text(stmt, idx, md->name().data(),-1,SQLITE_TRANSIENT);
#endif
// memberdef
bindTextParameter(i_s_memberdef,":refid",md->anchor());
bindIntParameter(i_s_memberdef,":kind",md->memberType());
bindIntParameter(i_s_memberdef,":prot",md->protection());
bindIntParameter(i_s_memberdef,":static",md->isStatic());
bool isFunc=FALSE;
switch (md->memberType())
{
case MemberType_Function: // fall through
case MemberType_Signal: // fall through
case MemberType_Friend: // fall through
case MemberType_DCOP: // fall through
case MemberType_Slot:
isFunc=TRUE;
break;
default:
break;
}
if (isFunc)
{
LockingPtr<ArgumentList> al = md->argumentList();
if (al!=0 && al->constSpecifier)
{
bindIntParameter(i_s_memberdef,":const",al->constSpecifier);
}
bindIntParameter(i_s_memberdef,":explicit",md->isExplicit());
bindIntParameter(i_s_memberdef,":inline",md->isInline());
bindIntParameter(i_s_memberdef,":final",md->isFinal());
bindIntParameter(i_s_memberdef,":sealed",md->isSealed());
bindIntParameter(i_s_memberdef,":new",md->isNew());
bindIntParameter(i_s_memberdef,":optional",md->isOptional());
bindIntParameter(i_s_memberdef,":required",md->isRequired());
bindIntParameter(i_s_memberdef,":virt",md->virtualness());
}
// place in the arguments and linkify the arguments
if (md->memberType() == MemberType_Variable)
{
bindIntParameter(i_s_memberdef,":mutable",md->isMutable());
bindIntParameter(i_s_memberdef,":initonly",md->isInitonly());
}
else if (md->memberType() == MemberType_Property)
{
bindIntParameter(i_s_memberdef,":readable",md->isReadable());
bindIntParameter(i_s_memberdef,":writable",md->isWritable());
bindIntParameter(i_s_memberdef,":gettable",md->isGettable());
bindIntParameter(i_s_memberdef,":settable",md->isSettable());
if (md->isAssign() || md->isCopy() || md->isRetain())
{
int accessor = md->isAssign() ? md->isAssign() :
(md->isCopy() ? md->isCopy() : md->isRetain()) ;
bindIntParameter(i_s_memberdef,":accessor",accessor);
}
}
else if (md->memberType() == MemberType_Event)
{
bindIntParameter(i_s_memberdef,":addable",md->isAddable());
bindIntParameter(i_s_memberdef,":removable",md->isRemovable());
bindIntParameter(i_s_memberdef,":raisable",md->isRaisable());
}
//.........这里部分代码省略.........
示例4: partOfGroups
bool GroupDef::isASubGroup() const
{
LockingPtr<GroupList> groups = partOfGroups();
return groups!=0 && groups->count()!=0;
}
示例5: srcMnii
bool GroupDef::insertMember(MemberDef *md,bool docOnly)
{
if (md->isHidden()) return FALSE;
//printf("GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data());
MemberNameInfo *mni=0;
if ((mni=(*allMemberNameInfoSDict)[md->name()]))
{ // member with this name already found
MemberNameInfoIterator srcMnii(*mni);
MemberInfo *srcMi;
for ( ; (srcMi=srcMnii.current()) ; ++srcMnii )
{
MemberDef *srcMd = srcMi->memberDef;
if (srcMd==md) return FALSE; // already added before!
bool sameScope = srcMd->getOuterScope()==md->getOuterScope() || // same class or namespace
// both inside a file => definition and declaration do not have to be in the same file
(srcMd->getOuterScope()->definitionType()==Definition::TypeFile &&
md->getOuterScope()->definitionType()==Definition::TypeFile);
LockingPtr<ArgumentList> srcMdAl = srcMd->argumentList();
LockingPtr<ArgumentList> mdAl = md->argumentList();
LockingPtr<ArgumentList> tSrcMdAl = srcMd->templateArguments();
LockingPtr<ArgumentList> tMdAl = md->templateArguments();
if (srcMd->isFunction() && md->isFunction() && // both are a function
((tSrcMdAl.pointer()==0 && tMdAl.pointer()==0) ||
(tSrcMdAl.pointer()!=0 && tMdAl.pointer()!=0 && tSrcMdAl->count()==tMdAl->count())
) && // same number of template arguments
matchArguments2(srcMd->getOuterScope(),srcMd->getFileDef(),srcMdAl.pointer(),
md->getOuterScope(),md->getFileDef(),mdAl.pointer(),
TRUE
) && // matching parameters
sameScope // both are found in the same scope
)
{
if (srcMd->getGroupAlias()==0)
{
md->setGroupAlias(srcMd);
}
else
{
md->setGroupAlias(srcMd->getGroupAlias());
}
return FALSE; // member is the same as one that is already added
}
}
mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE));
}
else
{
mni = new MemberNameInfo(md->name());
mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE));
allMemberNameInfoSDict->append(mni->memberName(),mni);
}
//printf("Added member!\n");
allMemberList->append(md);
switch(md->memberType())
{
case MemberDef::Variable:
if (!docOnly)
{
addMemberToList(MemberList::decVarMembers,md);
}
addMemberToList(MemberList::docVarMembers,md);
break;
case MemberDef::Function:
if (!docOnly)
{
addMemberToList(MemberList::decFuncMembers,md);
}
addMemberToList(MemberList::docFuncMembers,md);
break;
case MemberDef::Typedef:
if (!docOnly)
{
addMemberToList(MemberList::decTypedefMembers,md);
}
addMemberToList(MemberList::docTypedefMembers,md);
break;
case MemberDef::Enumeration:
if (!docOnly)
{
addMemberToList(MemberList::decEnumMembers,md);
}
addMemberToList(MemberList::docEnumMembers,md);
break;
case MemberDef::EnumValue:
if (!docOnly)
{
addMemberToList(MemberList::decEnumValMembers,md);
}
addMemberToList(MemberList::docEnumValMembers,md);
break;
case MemberDef::Define:
if (!docOnly)
{
addMemberToList(MemberList::decDefineMembers,md);
}
addMemberToList(MemberList::docDefineMembers,md);
break;
//.........这里部分代码省略.........
示例6: lock
void VerilogDocGen::writeVerilogDeclarations(MemberDef* mdef,OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
bool inGroup) {
static bool bComp=false;
LockingPtr<MemberDef> lock(mdef,mdef);
Definition *d=0;
ASSERT (cd!=0 || nd!=0 || fd!=0 || gd!=0); // member should belong to something
if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
//if (cd) d=cd;
// write tag file information of this member
int memType=mdef->getMemberSpecifiers();
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
{
Doxygen::tagFile << " <member kind=\"";
Doxygen::tagFile << VerilogDocGen::convertTypeToString(memType);
Doxygen::tagFile << "\">" << endl;
Doxygen::tagFile << " <type>" << convertToXML(mdef->typeString()) << "</type>" << endl;
Doxygen::tagFile << " <name>" << convertToXML(mdef->name()) << "</name>" << endl;
Doxygen::tagFile << " <anchorfile>" << convertToXML(mdef->getOutputFileBase()+Doxygen::htmlFileExtension) << "</anchorfile>" << endl;
Doxygen::tagFile << " <anchor>" << convertToXML(mdef->anchor()) << "</anchor>" << endl;
if(memType==VerilogDocGen::FUNCTION)
Doxygen::tagFile << " <arglist>" << convertToXML(VhdlDocGen::convertArgumentListToString(mdef->argumentList().pointer(),true)) << "</arglist>" << endl;
else if(memType==VerilogDocGen::ALWAYS)
Doxygen::tagFile << " <arglist>" << convertToXML(VhdlDocGen::convertArgumentListToString(mdef->argumentList().pointer(),false)) << "</arglist>" << endl;
else{
Doxygen::tagFile << " <arglist>" << convertToXML(mdef->argsString()) << "</arglist>" << endl;
Doxygen::tagFile << " <arglist>" << convertToXML(mdef->typeString()) << "</arglist>" << endl;
}
mdef->writeDocAnchorsToTagFile();
Doxygen::tagFile << " </member>" << endl;
}
// write search index info
if (Doxygen::searchIndex)
{
Doxygen::searchIndex->setCurrentDoc(mdef->qualifiedName(),mdef->getOutputFileBase(),mdef->anchor());
Doxygen::searchIndex->addWord(mdef->localName(),TRUE);
Doxygen::searchIndex->addWord(mdef->qualifiedName(),FALSE);
}
QCString cname = d->name();
QCString cfname = mdef->getOutputFileBase();
// HtmlHelp *htmlHelp=0;
// bool hasHtmlHelp = Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP");
// if (hasHtmlHelp) htmlHelp = HtmlHelp::getInstance();
// search for the last anonymous scope in the member type
// ClassDef *annoClassDef=mdef->getClassDefOfAnonymousType();
// start a new member declaration
// bool isAnonymous = annoClassDef; // || m_impl->annMemb || m_impl->annEnumType;
///printf("startMemberItem for %s\n",name().data());
// if(mdef->getMemberSpecifiers()==VerilogDocGen::FEATURE)
// ol.startMemberItem(mdef->anchor(),3); //? 1 : m_impl->tArgList ? 3 : 0);
// else
ol.startMemberItem(mdef->anchor(), 0);// ? 1 : m_impl->tArgList ? 3 : 0);
// If there is no detailed description we need to write the anchor here.
bool detailsVisible = mdef->isDetailedSectionLinkable();
if (!detailsVisible) // && !m_impl->annMemb)
{
QCString doxyName=mdef->name().copy();
if (!cname.isEmpty()) doxyName.prepend(cname+"::");
QCString doxyArgs=mdef->argsString();
ol.startDoxyAnchor(cfname,cname,mdef->anchor(),doxyName,doxyArgs);
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::Latex);
ol.docify("\n");
ol.popGeneratorState();
}
// *** write type
/*Verilog CHANGE */
VhdlDocGen::adjustRecordMember(mdef);
QCString ltype(mdef->typeString());
QCString largs(mdef->argsString());
int mm=mdef->getMemberSpecifiers();
ClassDef *kl=NULL;
FileDef *fdd=NULL;
LockingPtr<ArgumentList> alp = mdef->argumentList();
QCString nn;
if(gd)gd=NULL;
switch(mm)
{
case VhdlDocGen::MISCELLANEOUS:
//.........这里部分代码省略.........