diff options
Diffstat (limited to 'src/marshal.cpp')
-rw-r--r-- | src/marshal.cpp | 857 |
1 files changed, 0 insertions, 857 deletions
diff --git a/src/marshal.cpp b/src/marshal.cpp deleted file mode 100644 index c68718a..0000000 --- a/src/marshal.cpp +++ /dev/null @@ -1,857 +0,0 @@ -#include <qfile.h> -#include <assert.h> - -#include "sortdict.h" -#include "marshal.h" -#include "entry.h" -#include "section.h" -#include "memberlist.h" -#include "definition.h" -#include "groupdef.h" -#include "example.h" -#include "arguments.h" -#include "doxygen.h" - -#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!' - -void marshalInt(StorageIntf *s,int v) -{ - uchar b[4]; - b[0]=((uint)v)>>24; - b[1]=(((uint)v)>>16)&0xff; - b[2]=(((uint)v)>>8)&0xff; - b[3]=v&0xff; - s->write((const char *)b,4); -} - -void marshalUInt(StorageIntf *s,uint v) -{ - uchar b[4]; - b[0]=v>>24; - b[1]=(v>>16)&0xff; - b[2]=(v>>8)&0xff; - b[3]=v&0xff; - s->write((const char *)b,4); -} - -void marshalUInt64(StorageIntf *s,uint64 v) -{ - marshalUInt(s, uint(v>>32)); - marshalUInt(s, uint(v&0xFFFFFFFF)); -} - -void marshalBool(StorageIntf *s,bool b) -{ - char c = b; - s->write(&c,sizeof(char)); -} - -void marshalQCString(StorageIntf *s,const QCString &str) -{ - uint l=str.length(); - marshalUInt(s,l); - if (l>0) s->write(str.data(),l); -} - -void marshalQGString(StorageIntf *s,const QGString &str) -{ - uint l=str.length(); - marshalUInt(s,l); - if (l>0) s->write(str.data(),l); -} - -void marshalArgumentList(StorageIntf *s,ArgumentList *argList) -{ - ArgumentList::marshal(s,argList); -} - -void marshalArgumentLists(StorageIntf *s,QList<ArgumentList> *argLists) -{ - if (argLists==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,argLists->count()); - QListIterator<ArgumentList> ali(*argLists); - ArgumentList *al; - for (ali.toFirst();(al=ali.current());++ali) - { - marshalArgumentList(s,al); - } - } -} - -void marshalBaseInfoList(StorageIntf *s, QList<BaseInfo> *baseList) -{ - if (baseList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,baseList->count()); - QListIterator<BaseInfo> bli(*baseList); - BaseInfo *bi; - for (bli.toFirst();(bi=bli.current());++bli) - { - marshalQCString(s,bi->name); - marshalInt(s,(int)bi->prot); - marshalInt(s,(int)bi->virt); - } - } -} - -void marshalGroupingList(StorageIntf *s, QList<Grouping> *groups) -{ - if (groups==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,groups->count()); - QListIterator<Grouping> gli(*groups); - Grouping *g; - for (gli.toFirst();(g=gli.current());++gli) - { - marshalQCString(s,g->groupname); - marshalInt(s,(int)g->pri); - } - } -} - -void marshalSectionInfoList(StorageIntf *s, QList<SectionInfo> *anchors) -{ - if (anchors==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,anchors->count()); - QListIterator<SectionInfo> sli(*anchors); - SectionInfo *si; - for (sli.toFirst();(si=sli.current());++sli) - { - marshalQCString(s,si->label); - marshalQCString(s,si->title); - marshalQCString(s,si->ref); - marshalInt(s,(int)si->type); - marshalQCString(s,si->fileName); - marshalInt(s,si->lineNr); - marshalInt(s,si->level); - } - anchors->clear(); - } -} - -void marshalItemInfoList(StorageIntf *s, QList<ListItemInfo> *sli) -{ - if (sli==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,sli->count()); - QListIterator<ListItemInfo> liii(*sli); - ListItemInfo *lii; - for (liii.toFirst();(lii=liii.current());++liii) - { - marshalQCString(s,lii->type); - marshalInt(s,lii->itemId); - } - } -} - -void marshalObjPointer(StorageIntf *s,void *obj) -{ - char *b = (char *)&obj; - s->write(b,sizeof(void *)); -} - -void marshalSectionDict(StorageIntf *s,SectionDict *sections) -{ - if (sections==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,sections->count()); - SDict<SectionInfo>::IteratorDict sli(*sections); - SectionInfo *si; - for (sli.toFirst();(si=sli.current());++sli) - { - marshalQCString(s,sli.currentKey()); - marshalObjPointer(s,si); - } - } -} - -void marshalMemberSDict(StorageIntf *s,MemberSDict *memberSDict) -{ - if (memberSDict==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,memberSDict->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<MemberDef>::IteratorDict mdi(*memberSDict); - MemberDef *md; - int count=0; - for (mdi.toFirst();(md=mdi.current());++mdi) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,mdi.currentKey()); - marshalObjPointer(s,md); - count++; - } - assert(count==memberSDict->count()); - } -} - -void marshalDocInfo(StorageIntf *s,DocInfo *docInfo) -{ - if (docInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalQCString(s,docInfo->doc); - marshalInt(s,docInfo->line); - marshalQCString(s,docInfo->file); - } -} - -void marshalBriefInfo(StorageIntf *s,BriefInfo *briefInfo) -{ - if (briefInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalQCString(s,briefInfo->doc); - marshalQCString(s,briefInfo->tooltip); - marshalInt(s,briefInfo->line); - marshalQCString(s,briefInfo->file); - } -} - -void marshalBodyInfo(StorageIntf *s,BodyInfo *bodyInfo) -{ - if (bodyInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalInt(s,bodyInfo->startLine); - marshalInt(s,bodyInfo->endLine); - marshalObjPointer(s,bodyInfo->fileDef); - } -} - -void marshalGroupList(StorageIntf *s,GroupList *groupList) -{ - if (groupList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,groupList->count()); - QListIterator<GroupDef> gli(*groupList); - GroupDef *gd=0; - for (gli.toFirst();(gd=gli.current());++gli) - { - marshalObjPointer(s,gd); - } - } -} - -void marshalMemberList(StorageIntf *s,MemberList *ml) -{ - if (ml==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,ml->count()); - MemberListIterator mli(*ml); - MemberDef *md; - uint count=0; - for (mli.toFirst();(md=mli.current());++mli) - { - marshalObjPointer(s,md); - count++; - } - assert(count==ml->count()); - - ml->marshal(s); - } -} - -void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed) -{ - if (ed==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,ed->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<Example>::IteratorDict edi(*ed); - Example *e; - for (edi.toFirst();(e=edi.current());++edi) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,edi.currentKey()); - marshalQCString(s,e->anchor); - marshalQCString(s,e->name); - marshalQCString(s,e->file); - } - } -} - -void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls) -{ - if (mls==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,mls->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<MemberList>::IteratorDict mli(*mls); - MemberList *ml; - for (mli.toFirst();(ml=mli.current());++mli) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,mli.currentKey()); - marshalObjPointer(s,ml); // assume we are not owner of the list - } - } -} - -void marshalLocalToc(StorageIntf *s,const LocalToc <) -{ - marshalInt(s,lt.mask()); - marshalInt(s,lt.htmlLevel()); - marshalInt(s,lt.latexLevel()); - marshalInt(s,lt.xmlLevel()); - marshalInt(s,lt.docbookLevel()); -} - -void marshalEntry(StorageIntf *s,Entry *e) -{ - marshalUInt(s,HEADER); - marshalQCString(s,e->name); - marshalQCString(s,e->type); - marshalInt(s,e->section); - marshalInt(s,(int)e->protection); - marshalInt(s,(int)e->mtype); - marshalUInt64(s,e->spec); - marshalInt(s,e->initLines); - marshalBool(s,e->stat); - marshalLocalToc(s,e->localToc); - marshalBool(s,e->explicitExternal); - marshalBool(s,e->proto); - marshalBool(s,e->subGrouping); - marshalBool(s,e->callGraph); - marshalBool(s,e->callerGraph); - marshalBool(s,e->referencedByRelation); - marshalBool(s,e->referencesRelation); - marshalInt(s,(int)e->virt); - marshalQCString(s,e->args); - marshalQCString(s,e->bitfields); - marshalArgumentList(s,e->argList); - marshalArgumentLists(s,e->tArgLists); - marshalQGString(s,e->program); - marshalQGString(s,e->initializer); - marshalQCString(s,e->includeFile); - marshalQCString(s,e->includeName); - marshalQCString(s,e->doc); - marshalInt(s,e->docLine); - marshalQCString(s,e->docFile); - marshalQCString(s,e->brief); - marshalInt(s,e->briefLine); - marshalQCString(s,e->briefFile); - marshalQCString(s,e->inbodyDocs); - marshalInt(s,e->inbodyLine); - marshalQCString(s,e->inbodyFile); - marshalQCString(s,e->relates); - marshalInt(s,e->relatesType); - marshalQCString(s,e->read); - marshalQCString(s,e->write); - marshalQCString(s,e->inside); - marshalQCString(s,e->exception); - marshalArgumentList(s,e->typeConstr); - marshalInt(s,e->bodyLine); - marshalInt(s,e->endBodyLine); - marshalInt(s,e->mGrpId); - marshalBaseInfoList(s,e->extends); - marshalGroupingList(s,e->groups); - marshalSectionInfoList(s,e->anchors); - marshalQCString(s,e->fileName); - marshalInt(s,e->startLine); - marshalItemInfoList(s,e->sli); - marshalInt(s,(int)e->lang); - marshalBool(s,e->hidden); - marshalBool(s,e->artificial); - marshalInt(s,(int)e->groupDocType); - marshalQCString(s,e->id); - marshalQCString(s,e->metaData); -} - -void marshalEntryTree(StorageIntf *s,Entry *e) -{ - marshalEntry(s,e); - marshalUInt(s,e->children()->count()); - QListIterator<Entry> eli(*e->children()); - Entry *child; - for (eli.toFirst();(child=eli.current());++eli) - { - marshalEntryTree(s,child); - } -} - -//------------------------------------------------------------------ - -int unmarshalInt(StorageIntf *s) -{ - uchar b[4]; - s->read((char *)b,4); - int result=(int)((((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3]); - //printf("unmarshalInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos()); - return result; -} - -uint unmarshalUInt(StorageIntf *s) -{ - uchar b[4]; - s->read((char *)b,4); - uint result=(((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3]; - //printf("unmarshalUInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos()); - return result; -} - -uint64 unmarshalUInt64(StorageIntf *s) -{ - uint64 result=uint64(unmarshalUInt(s))<<32; - result|=unmarshalUInt(s); - return result; -} - -bool unmarshalBool(StorageIntf *s) -{ - char result; - s->read(&result,sizeof(result)); - //printf("unmarshalBool: %x offset=%llx\n",result,f.pos()); - return result; -} - -QCString unmarshalQCString(StorageIntf *s) -{ - uint len = unmarshalUInt(s); - //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos()); - QCString result(len+1); - result.at(len)='\0'; - if (len>0) - { - s->read(result.rawData(),len); - } - //printf("unmarshalQCString: result=%s\n",result.data()); - return result; -} - -QGString unmarshalQGString(StorageIntf *s) -{ - uint len = unmarshalUInt(s); - //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos()); - QGString result(len+1); - result.at(len)='\0'; - if (len>0) - { - s->read(result.data(),len); - } - //printf("unmarshalQCString: result=%s\n",result.data()); - return result; -} - -ArgumentList *unmarshalArgumentList(StorageIntf *s) -{ - return ArgumentList::unmarshal(s); -} - -QList<ArgumentList> *unmarshalArgumentLists(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<ArgumentList> *result = new QList<ArgumentList>; - result->setAutoDelete(TRUE); - assert(count<1000000); - //printf("unmarshalArgumentLists: %d\n",count); - for (i=0;i<count;i++) - { - result->append(unmarshalArgumentList(s)); - } - return result; -} - -QList<BaseInfo> *unmarshalBaseInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<BaseInfo> *result = new QList<BaseInfo>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString name = unmarshalQCString(s); - Protection prot = (Protection)unmarshalInt(s); - Specifier virt = (Specifier)unmarshalInt(s); - result->append(new BaseInfo(name,prot,virt)); - } - return result; -} - -QList<Grouping> *unmarshalGroupingList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<Grouping> *result = new QList<Grouping>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString name = unmarshalQCString(s); - Grouping::GroupPri_t prio = (Grouping::GroupPri_t)unmarshalInt(s); - result->append(new Grouping(name,prio)); - } - return result; -} - -QList<SectionInfo> *unmarshalSectionInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<SectionInfo> *anchors = new QList<SectionInfo>; - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString label = unmarshalQCString(s); - QCString title = unmarshalQCString(s); - QCString ref = unmarshalQCString(s); - SectionInfo::SectionType type = (SectionInfo::SectionType)unmarshalInt(s); - QCString fileName = unmarshalQCString(s); - int lineNr = unmarshalInt(s); - int level = unmarshalInt(s); - SectionInfo *si = Doxygen::sectionDict->find(label); - if (si==0) // This should actually never be true since all anchors should be in sectionDict. - // Could still optimize the marshaling routine by only storing label. - { - SectionInfo *si = new SectionInfo(fileName,lineNr,label,title,type,level,ref); - anchors->append(si); - Doxygen::sectionDict->append(label,si); // this dict owns the anchor objects - } - else - { - anchors->append(si); - } - } - return anchors; -} - -QList<ListItemInfo> *unmarshalItemInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<ListItemInfo> *result = new QList<ListItemInfo>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - ListItemInfo *lii = new ListItemInfo; - lii->type = unmarshalQCString(s); - lii->itemId = unmarshalInt(s); - result->append(lii); - } - return result; -} - -void *unmarshalObjPointer(StorageIntf *s) -{ - void *result; - s->read((char *)&result,sizeof(void*)); - return result; -} - -SectionDict *unmarshalSectionDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - //printf("unmarshalSectionDict count=%d\n",count); - if (count==NULL_LIST) return 0; // null list - SectionDict *result = new SectionDict(17); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - SectionInfo *si = (SectionInfo *)unmarshalObjPointer(s); - //printf(" unmarshalSectionDict i=%d key=%s si=%s\n",count,key.data(),si->label.data()); - result->append(key,si); - } - return result; -} - -MemberSDict *unmarshalMemberSDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - //printf("--- unmarshalMemberSDict count=%d\n",count); - if (count==NULL_LIST) - { - //printf("--- end unmarshalMemberSDict\n"); - return 0; // null list - } - MemberSDict *result = new MemberSDict; - assert(count<1000000); - //printf("Reading %d key-value pairs\n",count); - for (i=0;i<count;i++) - { - //printf(" unmarshaling pair %d\n",i); - QCString key = unmarshalQCString(s); - //printf(" unmarshaling key %s\n",key.data()); - MemberDef *md = (MemberDef *)unmarshalObjPointer(s); - //printf(" unmarshalMemberSDict i=%d key=%s md=%p\n",i,key.data(),md); - result->append(key,md); - } - - //printf("--- end unmarshalMemberSDict\n"); - return result; -} - -DocInfo *unmarshalDocInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - DocInfo *result = new DocInfo; - result->doc = unmarshalQCString(s); - result->line = unmarshalInt(s); - result->file = unmarshalQCString(s); - return result; -} - -BriefInfo *unmarshalBriefInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - BriefInfo *result = new BriefInfo; - result->doc = unmarshalQCString(s); - result->tooltip = unmarshalQCString(s); - result->line = unmarshalInt(s); - result->file = unmarshalQCString(s); - return result; -} - -BodyInfo *unmarshalBodyInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - BodyInfo *result = new BodyInfo; - result->startLine = unmarshalInt(s); - result->endLine = unmarshalInt(s); - result->fileDef = (FileDef*)unmarshalObjPointer(s); - return result; -} - -GroupList *unmarshalGroupList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - assert(count<1000000); - GroupList *result = new GroupList; - for (i=0;i<count;i++) - { - GroupDef *gd = (GroupDef *)unmarshalObjPointer(s); - result->append(gd); - } - return result; -} - -MemberList *unmarshalMemberList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - MemberList *result = new MemberList; - assert(count<1000000); - for (i=0;i<count;i++) - { - MemberDef *md = (MemberDef*)unmarshalObjPointer(s); - result->append(md); - } - result->unmarshal(s); - return result; -} - -ExampleSDict *unmarshalExampleSDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - ExampleSDict *result = new ExampleSDict; - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - Example *e = new Example; - e->anchor = unmarshalQCString(s); - e->name = unmarshalQCString(s); - e->file = unmarshalQCString(s); - result->inSort(key,e); - } - return result; -} - -SDict<MemberList> *unmarshalMemberLists(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - SDict<MemberList> *result = new SDict<MemberList>(7); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - MemberList *ml = (MemberList *)unmarshalObjPointer(s); - result->append(key,ml); - } - return result; -} - -LocalToc unmarshalLocalToc(StorageIntf *s) -{ - LocalToc result; - int mask = unmarshalInt(s); - int htmlLevel = unmarshalInt(s); - int latexLevel = unmarshalInt(s); - int xmlLevel = unmarshalInt(s); - int docbookLevel = unmarshalInt(s); - if ((mask & (1<<LocalToc::Html))!=0) - { - result.enableHtml(htmlLevel); - } - if ((mask & (1<<LocalToc::Latex))!=0) - { - result.enableLatex(latexLevel); - } - if ((mask & (1<<LocalToc::Xml))!=0) - { - result.enableXml(xmlLevel); - } - if ((mask & (1<<LocalToc::Docbook))!=0) - { - result.enableDocbook(docbookLevel); - } - return result; -} - -Entry * unmarshalEntry(StorageIntf *s) -{ - Entry *e = new Entry; - uint header=unmarshalUInt(s); - ASSERT(header==HEADER); - e->name = unmarshalQCString(s); - e->type = unmarshalQCString(s); - e->section = unmarshalInt(s); - e->protection = (Protection)unmarshalInt(s); - e->mtype = (MethodTypes)unmarshalInt(s); - e->spec = unmarshalUInt64(s); - e->initLines = unmarshalInt(s); - e->stat = unmarshalBool(s); - e->localToc = unmarshalLocalToc(s); - e->explicitExternal = unmarshalBool(s); - e->proto = unmarshalBool(s); - e->subGrouping = unmarshalBool(s); - e->callGraph = unmarshalBool(s); - e->callerGraph = unmarshalBool(s); - e->referencedByRelation = unmarshalBool(s); - e->referencesRelation = unmarshalBool(s); - e->virt = (Specifier)unmarshalInt(s); - e->args = unmarshalQCString(s); - e->bitfields = unmarshalQCString(s); - delete e->argList; - e->argList = unmarshalArgumentList(s); - e->tArgLists = unmarshalArgumentLists(s); - e->program = unmarshalQGString(s); - e->initializer = unmarshalQGString(s); - e->includeFile = unmarshalQCString(s); - e->includeName = unmarshalQCString(s); - e->doc = unmarshalQCString(s); - e->docLine = unmarshalInt(s); - e->docFile = unmarshalQCString(s); - e->brief = unmarshalQCString(s); - e->briefLine = unmarshalInt(s); - e->briefFile = unmarshalQCString(s); - e->inbodyDocs = unmarshalQCString(s); - e->inbodyLine = unmarshalInt(s); - e->inbodyFile = unmarshalQCString(s); - e->relates = unmarshalQCString(s); - e->relatesType = (RelatesType)unmarshalInt(s); - e->read = unmarshalQCString(s); - e->write = unmarshalQCString(s); - e->inside = unmarshalQCString(s); - e->exception = unmarshalQCString(s); - e->typeConstr = unmarshalArgumentList(s); - e->bodyLine = unmarshalInt(s); - e->endBodyLine = unmarshalInt(s); - e->mGrpId = unmarshalInt(s); - delete e->extends; - e->extends = unmarshalBaseInfoList(s); - delete e->groups; - e->groups = unmarshalGroupingList(s); - delete e->anchors; - e->anchors = unmarshalSectionInfoList(s); - e->fileName = unmarshalQCString(s); - e->startLine = unmarshalInt(s); - e->sli = unmarshalItemInfoList(s); - e->lang = (SrcLangExt)unmarshalInt(s); - e->hidden = unmarshalBool(s); - e->artificial = unmarshalBool(s); - e->groupDocType = (Entry::GroupDocType)unmarshalInt(s); - e->id = unmarshalQCString(s); - e->metaData = unmarshalQCString(s); - return e; -} - -Entry * unmarshalEntryTree(StorageIntf *s) -{ - Entry *e = unmarshalEntry(s); - uint count = unmarshalUInt(s); - uint i; - for (i=0;i<count;i++) - { - e->addSubEntry(unmarshalEntryTree(s)); - } - return e; -} |