marshal.cpp
Go to the documentation of this file.
1 #include <qfile.h>
2 #include <assert.h>
3 
4 #include "sortdict.h"
5 #include "marshal.h"
6 #include "entry.h"
7 #include "section.h"
8 #include "memberlist.h"
9 #include "definition.h"
10 #include "groupdef.h"
11 #include "example.h"
12 #include "arguments.h"
13 
14 #define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
15 
16 void marshalInt(StorageIntf *s,int v)
17 {
18  uchar b[4];
19  b[0]=((uint)v)>>24;
20  b[1]=(((uint)v)>>16)&0xff;
21  b[2]=(((uint)v)>>8)&0xff;
22  b[3]=v&0xff;
23  s->write((const char *)b,4);
24 }
25 
27 {
28  uchar b[4];
29  b[0]=v>>24;
30  b[1]=(v>>16)&0xff;
31  b[2]=(v>>8)&0xff;
32  b[3]=v&0xff;
33  s->write((const char *)b,4);
34 }
35 
37 {
38  marshalUInt(s, uint(v>>32));
39  marshalUInt(s, uint(v&0xFFFFFFFF));
40 }
41 
43 {
44  char c = b;
45  s->write(&c,sizeof(char));
46 }
47 
49 {
50  uint l=str.length();
51  marshalUInt(s,l);
52  if (l>0) s->write(str.data(),l);
53 }
54 
56 {
57  uint l=str.length();
58  marshalUInt(s,l);
59  if (l>0) s->write(str.data(),l);
60 }
61 
63 {
64  ArgumentList::marshal(s,argList);
65 }
66 
68 {
69  if (argLists==0)
70  {
71  marshalUInt(s,NULL_LIST); // null pointer representation
72  }
73  else
74  {
75  marshalUInt(s,argLists->count());
76  QListIterator<ArgumentList> ali(*argLists);
77  ArgumentList *al;
78  for (ali.toFirst();(al=ali.current());++ali)
79  {
80  marshalArgumentList(s,al);
81  }
82  }
83 }
84 
86 {
87  if (baseList==0)
88  {
89  marshalUInt(s,NULL_LIST); // null pointer representation
90  }
91  else
92  {
93  marshalUInt(s,baseList->count());
94  QListIterator<BaseInfo> bli(*baseList);
95  BaseInfo *bi;
96  for (bli.toFirst();(bi=bli.current());++bli)
97  {
98  marshalQCString(s,bi->name);
99  marshalInt(s,(int)bi->prot);
100  marshalInt(s,(int)bi->virt);
101  }
102  }
103 }
104 
106 {
107  if (groups==0)
108  {
109  marshalUInt(s,NULL_LIST); // null pointer representation
110  }
111  else
112  {
113  marshalUInt(s,groups->count());
114  QListIterator<Grouping> gli(*groups);
115  Grouping *g;
116  for (gli.toFirst();(g=gli.current());++gli)
117  {
119  marshalInt(s,(int)g->pri);
120  }
121  }
122 }
123 
125 {
126  if (anchors==0)
127  {
128  marshalUInt(s,NULL_LIST); // null pointer representation
129  }
130  else
131  {
132  marshalUInt(s,anchors->count());
133  QListIterator<SectionInfo> sli(*anchors);
134  SectionInfo *si;
135  for (sli.toFirst();(si=sli.current());++sli)
136  {
137  marshalQCString(s,si->label);
138  marshalQCString(s,si->title);
139  marshalQCString(s,si->ref);
140  marshalInt(s,(int)si->type);
141  marshalQCString(s,si->fileName);
142  marshalInt(s,si->lineNr);
143  marshalInt(s,si->level);
144  }
145  }
146 }
147 
149 {
150  if (sli==0)
151  {
152  marshalUInt(s,NULL_LIST); // null pointer representation
153  }
154  else
155  {
156  marshalUInt(s,sli->count());
157  QListIterator<ListItemInfo> liii(*sli);
158  ListItemInfo *lii;
159  for (liii.toFirst();(lii=liii.current());++liii)
160  {
161  marshalQCString(s,lii->type);
162  marshalInt(s,lii->itemId);
163  }
164  }
165 }
166 
168 {
169  char *b = (char *)&obj;
170  s->write(b,sizeof(void *));
171 }
172 
174 {
175  if (sections==0)
176  {
177  marshalUInt(s,NULL_LIST); // null pointer representation
178  }
179  else
180  {
181  marshalUInt(s,sections->count());
182  SDict<SectionInfo>::IteratorDict sli(*sections);
183  SectionInfo *si;
184  for (sli.toFirst();(si=sli.current());++sli)
185  {
186  marshalQCString(s,sli.currentKey());
187  marshalObjPointer(s,si);
188  }
189  }
190 }
191 
193 {
194  if (memberSDict==0)
195  {
196  marshalUInt(s,NULL_LIST); // null pointer representation
197  }
198  else
199  {
200  marshalUInt(s,memberSDict->count());
201  //printf(" marshalMemberSDict: items=%d\n",memberSDict->count());
202  SDict<MemberDef>::IteratorDict mdi(*memberSDict);
203  MemberDef *md;
204  int count=0;
205  for (mdi.toFirst();(md=mdi.current());++mdi)
206  {
207  //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md);
208  marshalQCString(s,mdi.currentKey());
209  marshalObjPointer(s,md);
210  count++;
211  }
212  assert(count==memberSDict->count());
213  }
214 }
215 
217 {
218  if (docInfo==0)
219  {
220  marshalUInt(s,NULL_LIST); // null pointer representation
221  }
222  else
223  {
224  marshalUInt(s,1);
225  marshalQCString(s,docInfo->doc);
226  marshalInt(s,docInfo->line);
227  marshalQCString(s,docInfo->file);
228  }
229 }
230 
232 {
233  if (briefInfo==0)
234  {
235  marshalUInt(s,NULL_LIST); // null pointer representation
236  }
237  else
238  {
239  marshalUInt(s,1);
240  marshalQCString(s,briefInfo->doc);
241  marshalQCString(s,briefInfo->tooltip);
242  marshalInt(s,briefInfo->line);
243  marshalQCString(s,briefInfo->file);
244  }
245 }
246 
248 {
249  if (bodyInfo==0)
250  {
251  marshalUInt(s,NULL_LIST); // null pointer representation
252  }
253  else
254  {
255  marshalUInt(s,1);
256  marshalInt(s,bodyInfo->startLine);
257  marshalInt(s,bodyInfo->endLine);
258  marshalObjPointer(s,bodyInfo->fileDef);
259  }
260 }
261 
263 {
264  if (groupList==0)
265  {
266  marshalUInt(s,NULL_LIST); // null pointer representation
267  }
268  else
269  {
270  marshalUInt(s,groupList->count());
271  QListIterator<GroupDef> gli(*groupList);
272  GroupDef *gd=0;
273  for (gli.toFirst();(gd=gli.current());++gli)
274  {
275  marshalObjPointer(s,gd);
276  }
277  }
278 }
279 
281 {
282  if (ml==0)
283  {
284  marshalUInt(s,NULL_LIST); // null pointer representation
285  }
286  else
287  {
288  marshalUInt(s,ml->count());
289  MemberListIterator mli(*ml);
290  MemberDef *md;
291  uint count=0;
292  for (mli.toFirst();(md=mli.current());++mli)
293  {
294  marshalObjPointer(s,md);
295  count++;
296  }
297  assert(count==ml->count());
298 
299  ml->marshal(s);
300  }
301 }
302 
304 {
305  if (ed==0)
306  {
307  marshalUInt(s,NULL_LIST); // null pointer representation
308  }
309  else
310  {
311  marshalUInt(s,ed->count());
312  //printf(" marshalMemberSDict: items=%d\n",memberSDict->count());
314  Example *e;
315  for (edi.toFirst();(e=edi.current());++edi)
316  {
317  //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md);
318  marshalQCString(s,edi.currentKey());
319  marshalQCString(s,e->anchor);
320  marshalQCString(s,e->name);
321  marshalQCString(s,e->file);
322  }
323  }
324 }
325 
327 {
328  if (mls==0)
329  {
330  marshalUInt(s,NULL_LIST); // null pointer representation
331  }
332  else
333  {
334  marshalUInt(s,mls->count());
335  //printf(" marshalMemberSDict: items=%d\n",memberSDict->count());
337  MemberList *ml;
338  for (mli.toFirst();(ml=mli.current());++mli)
339  {
340  //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md);
341  marshalQCString(s,mli.currentKey());
342  marshalObjPointer(s,ml); // assume we are not owner of the list
343  }
344  }
345 }
346 
348 {
349  marshalUInt(s,HEADER);
350  marshalQCString(s,e->name);
351  marshalQCString(s,e->type);
352  marshalInt(s,e->section);
353  marshalInt(s,(int)e->protection);
354  marshalInt(s,(int)e->mtype);
355  marshalUInt64(s,e->spec);
356  marshalInt(s,e->initLines);
357  marshalBool(s,e->stat);
359  marshalBool(s,e->proto);
360  marshalBool(s,e->subGrouping);
361  marshalBool(s,e->callGraph);
362  marshalBool(s,e->callerGraph);
363  marshalInt(s,(int)e->virt);
364  marshalQCString(s,e->args);
368  marshalQGString(s,e->program);
372  marshalQCString(s,e->doc);
373  marshalInt(s,e->docLine);
374  marshalQCString(s,e->docFile);
375  marshalQCString(s,e->brief);
376  marshalInt(s,e->briefLine);
379  marshalInt(s,e->inbodyLine);
381  marshalQCString(s,e->relates);
382  marshalInt(s,e->relatesType);
383  marshalQCString(s,e->read);
384  marshalQCString(s,e->write);
385  marshalQCString(s,e->inside);
388  marshalInt(s,e->bodyLine);
389  marshalInt(s,e->endBodyLine);
390  marshalInt(s,e->mGrpId);
395  marshalInt(s,e->startLine);
396  marshalItemInfoList(s,e->sli);
397  marshalInt(s,(int)e->lang);
398  marshalBool(s,e->hidden);
399  marshalBool(s,e->artificial);
400  marshalInt(s,(int)e->groupDocType);
401  marshalQCString(s,e->id);
402 }
403 
405 {
406  marshalEntry(s,e);
407  marshalUInt(s,e->children()->count());
408  QListIterator<Entry> eli(*e->children());
409  Entry *child;
410  for (eli.toFirst();(child=eli.current());++eli)
411  {
412  marshalEntryTree(s,child);
413  }
414 }
415 
416 //------------------------------------------------------------------
417 
419 {
420  uchar b[4];
421  s->read((char *)b,4);
422  int result=(int)((((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3]);
423  //printf("unmarshalInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos());
424  return result;
425 }
426 
428 {
429  uchar b[4];
430  s->read((char *)b,4);
431  uint result=(((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3];
432  //printf("unmarshalUInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos());
433  return result;
434 }
435 
437 {
439  result|=unmarshalUInt(s);
440  return result;
441 }
442 
444 {
445  char result;
446  s->read(&result,sizeof(result));
447  //printf("unmarshalBool: %x offset=%llx\n",result,f.pos());
448  return result;
449 }
450 
452 {
453  uint len = unmarshalUInt(s);
454  //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos());
455  QCString result(len+1);
456  result.at(len)='\0';
457  if (len>0)
458  {
459  s->read(result.rawData(),len);
460  }
461  //printf("unmarshalQCString: result=%s\n",result.data());
462  return result;
463 }
464 
466 {
467  uint len = unmarshalUInt(s);
468  //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos());
469  QGString result(len+1);
470  result.at(len)='\0';
471  if (len>0)
472  {
473  s->read(result.data(),len);
474  }
475  //printf("unmarshalQCString: result=%s\n",result.data());
476  return result;
477 }
478 
480 {
481  return ArgumentList::unmarshal(s);
482 }
483 
485 {
486  uint i;
487  uint count = unmarshalUInt(s);
488  if (count==NULL_LIST) return 0; // null list
490  result->setAutoDelete(TRUE);
491  assert(count<1000000);
492  //printf("unmarshalArgumentLists: %d\n",count);
493  for (i=0;i<count;i++)
494  {
495  result->append(unmarshalArgumentList(s));
496  }
497  return result;
498 }
499 
501 {
502  uint i;
503  uint count = unmarshalUInt(s);
504  if (count==NULL_LIST) return 0; // null list
506  result->setAutoDelete(TRUE);
507  assert(count<1000000);
508  for (i=0;i<count;i++)
509  {
513  result->append(new BaseInfo(name,prot,virt));
514  }
515  return result;
516 }
517 
519 {
520  uint i;
521  uint count = unmarshalUInt(s);
522  if (count==NULL_LIST) return 0; // null list
524  result->setAutoDelete(TRUE);
525  assert(count<1000000);
526  for (i=0;i<count;i++)
527  {
530  result->append(new Grouping(name,prio));
531  }
532  return result;
533 }
534 
536 {
537  uint i;
538  uint count = unmarshalUInt(s);
539  if (count==NULL_LIST) return 0; // null list
541  result->setAutoDelete(TRUE);
542  assert(count<1000000);
543  for (i=0;i<count;i++)
544  {
547  QCString ref = unmarshalQCString(s);
550  int lineNr = unmarshalInt(s);
551  int level = unmarshalInt(s);
552  result->append(new SectionInfo(fileName,lineNr,label,title,type,level,ref));
553  }
554  return result;
555 }
556 
558 {
559  uint i;
560  uint count = unmarshalUInt(s);
561  if (count==NULL_LIST) return 0; // null list
563  result->setAutoDelete(TRUE);
564  assert(count<1000000);
565  for (i=0;i<count;i++)
566  {
567  ListItemInfo *lii = new ListItemInfo;
568  lii->type = unmarshalQCString(s);
569  lii->itemId = unmarshalInt(s);
570  result->append(lii);
571  }
572  return result;
573 }
574 
576 {
577  void *result;
578  s->read((char *)&result,sizeof(void*));
579  return result;
580 }
581 
583 {
584  uint i;
585  uint count = unmarshalUInt(s);
586  //printf("unmarshalSectionDict count=%d\n",count);
587  if (count==NULL_LIST) return 0; // null list
588  SectionDict *result = new SectionDict(17);
589  assert(count<1000000);
590  for (i=0;i<count;i++)
591  {
594  //printf(" unmarshalSectionDict i=%d key=%s si=%s\n",count,key.data(),si->label.data());
595  result->append(key,si);
596  }
597  return result;
598 }
599 
601 {
602  uint i;
603  uint count = unmarshalUInt(s);
604  //printf("--- unmarshalMemberSDict count=%d\n",count);
605  if (count==NULL_LIST)
606  {
607  //printf("--- end unmarshalMemberSDict\n");
608  return 0; // null list
609  }
611  assert(count<1000000);
612  //printf("Reading %d key-value pairs\n",count);
613  for (i=0;i<count;i++)
614  {
615  //printf(" unmarshaling pair %d\n",i);
617  //printf(" unmarshaling key %s\n",key.data());
619  //printf(" unmarshalMemberSDict i=%d key=%s md=%p\n",i,key.data(),md);
620  result->append(key,md);
621  }
622 
623  //printf("--- end unmarshalMemberSDict\n");
624  return result;
625 }
626 
628 {
629  uint count = unmarshalUInt(s);
630  if (count==NULL_LIST) return 0;
631  DocInfo *result = new DocInfo;
632  result->doc = unmarshalQCString(s);
633  result->line = unmarshalInt(s);
634  result->file = unmarshalQCString(s);
635  return result;
636 }
637 
639 {
640  uint count = unmarshalUInt(s);
641  if (count==NULL_LIST) return 0;
642  BriefInfo *result = new BriefInfo;
643  result->doc = unmarshalQCString(s);
644  result->tooltip = unmarshalQCString(s);
645  result->line = unmarshalInt(s);
646  result->file = unmarshalQCString(s);
647  return result;
648 }
649 
651 {
652  uint count = unmarshalUInt(s);
653  if (count==NULL_LIST) return 0;
654  BodyInfo *result = new BodyInfo;
655  result->startLine = unmarshalInt(s);
656  result->endLine = unmarshalInt(s);
657  result->fileDef = (FileDef*)unmarshalObjPointer(s);
658  return result;
659 }
660 
662 {
663  uint i;
664  uint count = unmarshalUInt(s);
665  if (count==NULL_LIST) return 0; // null list
666  assert(count<1000000);
667  GroupList *result = new GroupList;
668  for (i=0;i<count;i++)
669  {
671  result->append(gd);
672  }
673  return result;
674 }
675 
677 {
678  uint i;
679  uint count = unmarshalUInt(s);
680  if (count==NULL_LIST) return 0;
682  assert(count<1000000);
683  for (i=0;i<count;i++)
684  {
686  result->append(md);
687  }
688  result->unmarshal(s);
689  return result;
690 }
691 
693 {
694  uint i;
695  uint count = unmarshalUInt(s);
696  if (count==NULL_LIST) return 0;
698  assert(count<1000000);
699  for (i=0;i<count;i++)
700  {
702  Example *e = new Example;
703  e->anchor = unmarshalQCString(s);
704  e->name = unmarshalQCString(s);
705  e->file = unmarshalQCString(s);
706  result->inSort(key,e);
707  }
708  return result;
709 }
710 
712 {
713  uint i;
714  uint count = unmarshalUInt(s);
715  if (count==NULL_LIST) return 0;
717  assert(count<1000000);
718  for (i=0;i<count;i++)
719  {
722  result->append(key,ml);
723  }
724  return result;
725 }
726 
728 {
729  Entry *e = new Entry;
730  uint header=unmarshalUInt(s);
731  ASSERT(header==HEADER);
732  e->name = unmarshalQCString(s);
733  e->type = unmarshalQCString(s);
734  e->section = unmarshalInt(s);
736  e->mtype = (MethodTypes)unmarshalInt(s);
737  e->spec = unmarshalUInt64(s);
738  e->initLines = unmarshalInt(s);
739  e->stat = unmarshalBool(s);
741  e->proto = unmarshalBool(s);
742  e->subGrouping = unmarshalBool(s);
743  e->callGraph = unmarshalBool(s);
744  e->callerGraph = unmarshalBool(s);
745  e->virt = (Specifier)unmarshalInt(s);
746  e->args = unmarshalQCString(s);
748  delete e->argList;
751  e->program = unmarshalQGString(s);
755  e->doc = unmarshalQCString(s);
756  e->docLine = unmarshalInt(s);
757  e->docFile = unmarshalQCString(s);
758  e->brief = unmarshalQCString(s);
759  e->briefLine = unmarshalInt(s);
762  e->inbodyLine = unmarshalInt(s);
764  e->relates = unmarshalQCString(s);
766  e->read = unmarshalQCString(s);
767  e->write = unmarshalQCString(s);
768  e->inside = unmarshalQCString(s);
771  e->bodyLine = unmarshalInt(s);
772  e->endBodyLine = unmarshalInt(s);
773  e->mGrpId = unmarshalInt(s);
774  delete e->extends;
776  delete e->groups;
778  delete e->anchors;
780  e->fileName = unmarshalQCString(s);
781  e->startLine = unmarshalInt(s);
782  e->sli = unmarshalItemInfoList(s);
783  e->lang = (SrcLangExt)unmarshalInt(s);
784  e->hidden = unmarshalBool(s);
785  e->artificial = unmarshalBool(s);
787  e->id = unmarshalQCString(s);
788  return e;
789 }
790 
792 {
793  Entry *e = unmarshalEntry(s);
794  uint count = unmarshalUInt(s);
795  uint i;
796  for (i=0;i<count;i++)
797  {
799  }
800  return e;
801 }
virtual int write(const char *buf, uint size)=0
char & at(uint index) const
Definition: qgstring.h:45
static QCString name
Definition: declinfo.cpp:673
bool callGraph
do we need to draw the call graph?
Definition: entry.h:249
Definition: types.h:61
QGString program
the program text
Definition: entry.h:256
char * rawData() const
Definition: qcstring.h:216
QCString includeName
include name (3 arg of \class)
Definition: entry.h:259
void append(const MemberDef *md)
Definition: memberlist.cpp:246
void marshalMemberSDict(StorageIntf *s, MemberSDict *memberSDict)
Definition: marshal.cpp:192
MemberList * unmarshalMemberList(StorageIntf *s)
Definition: marshal.cpp:676
This class represents an function or template argument list.
Definition: arguments.h:82
char * data() const
Definition: qgstring.h:42
bool proto
prototype ?
Definition: entry.h:247
uint64 spec
class/member specifiers
Definition: entry.h:243
void marshalArgumentList(StorageIntf *s, ArgumentList *argList)
Definition: marshal.cpp:62
bool stat
static ?
Definition: entry.h:245
DocInfo * unmarshalDocInfo(StorageIntf *s)
Definition: marshal.cpp:627
void inSort(const char *key, const T *d)
Definition: sortdict.h:197
static constexpr double g
Definition: Units.h:144
static QCString result
QList< BaseInfo > * unmarshalBaseInfoList(StorageIntf *s)
Definition: marshal.cpp:500
#define NULL_LIST
Definition: marshal.h:41
uint length() const
Definition: qgstring.h:40
QCString file
Definition: definition.h:44
uint length() const
Definition: qcstring.h:195
SectionType type
Definition: section.h:58
ExampleSDict * unmarshalExampleSDict(StorageIntf *s)
Definition: marshal.cpp:692
virtual int read(char *buf, uint size)=0
void append(const type *d)
Definition: qlist.h:73
Definition: entry.h:63
QCString read
property read accessor
Definition: entry.h:271
QCString tooltip
Definition: definition.h:51
void marshalBodyInfo(StorageIntf *s, BodyInfo *bodyInfo)
Definition: marshal.cpp:247
void marshalExampleSDict(StorageIntf *s, ExampleSDict *ed)
Definition: marshal.cpp:303
char & at(uint i) const
Definition: qcstring.h:326
int briefLine
line number at which the brief desc. was found
Definition: entry.h:264
void marshalGroupList(StorageIntf *s, GroupList *groupList)
Definition: marshal.cpp:262
QCString ref
Definition: section.h:59
void marshalBaseInfoList(StorageIntf *s, QList< BaseInfo > *baseList)
Definition: marshal.cpp:85
int docLine
line number at which the documentation was found
Definition: entry.h:261
ArgumentList * argList
member arguments as a list
Definition: entry.h:254
Abstract interface for file based memory storage operations.
Definition: store.h:27
QCString unmarshalQCString(StorageIntf *s)
Definition: marshal.cpp:451
QCString label
Definition: section.h:56
void addSubEntry(Entry *e)
Definition: entry.cpp:206
QCString name
member name
Definition: entry.h:237
int initLines
define/variable initializer lines to show
Definition: entry.h:244
GroupPri_t
Definition: types.h:64
static void marshal(StorageIntf *s, ArgumentList *argList)
Definition: arguments.cpp:69
int unmarshalInt(StorageIntf *s)
Definition: marshal.cpp:418
GroupPri_t pri
priority of this definition
Definition: types.h:94
void marshalDocInfo(StorageIntf *s, DocInfo *docInfo)
Definition: marshal.cpp:216
QList< SectionInfo > * unmarshalSectionInfoList(StorageIntf *s)
Definition: marshal.cpp:535
void marshalUInt64(StorageIntf *s, uint64 v)
Definition: marshal.cpp:36
void marshalInt(StorageIntf *s, int v)
Definition: marshal.cpp:16
int count() const
Definition: sortdict.h:284
QCString id
libclang id
Definition: entry.h:290
void * unmarshalObjPointer(StorageIntf *s)
Definition: marshal.cpp:575
void append(const char *key, const T *d)
Definition: sortdict.h:135
Entry * unmarshalEntry(StorageIntf *s)
Definition: marshal.cpp:727
SrcLangExt
Definition: types.h:41
static QStrList * l
Definition: config.cpp:1044
bool hidden
does this represent an entity that is hidden from the output
Definition: entry.h:287
GroupList * unmarshalGroupList(StorageIntf *s)
Definition: marshal.cpp:661
int mGrpId
member group id
Definition: entry.h:278
unsigned char uchar
Definition: nybbler.cc:11
QList< ArgumentList > * tArgLists
template argument declarations
Definition: entry.h:255
void marshalBool(StorageIntf *s, bool b)
Definition: marshal.cpp:42
int line
Definition: definition.h:43
int itemId
Definition: types.h:101
Definition: sortdict.h:73
uint count() const
Definition: qlist.h:66
void marshalMemberLists(StorageIntf *s, SDict< MemberList > *mls)
Definition: marshal.cpp:326
int line
Definition: definition.h:52
QCString includeFile
include file (2 arg of \class, must be unique)
Definition: entry.h:258
void marshal(StorageIntf *s)
Definition: memberlist.cpp:837
bool subGrouping
automatically group class members?
Definition: entry.h:248
const double e
bool callerGraph
do we need to draw the caller graph?
Definition: entry.h:250
SectionDict * unmarshalSectionDict(StorageIntf *s)
Definition: marshal.cpp:582
BriefInfo * unmarshalBriefInfo(StorageIntf *s)
Definition: marshal.cpp:638
QList< Grouping > * groups
list of groups this entry belongs to
Definition: entry.h:280
void marshalEntryTree(StorageIntf *s, Entry *e)
Definition: marshal.cpp:404
QGString initializer
initial value (for variables)
Definition: entry.h:257
QCString inbodyFile
file in which the body doc was found
Definition: entry.h:268
fileName
Definition: dumpTree.py:9
QCString brief
brief description (doc block)
Definition: entry.h:263
int endBodyLine
line number where the definition ends
Definition: entry.h:277
ArgumentList * typeConstr
where clause (C#) for type constraints
Definition: entry.h:275
bool unmarshalBool(StorageIntf *s)
Definition: marshal.cpp:443
BodyInfo * unmarshalBodyInfo(StorageIntf *s)
Definition: marshal.cpp:650
def key(type, name=None)
Definition: graph.py:13
SDict< MemberList > * unmarshalMemberLists(StorageIntf *s)
Definition: marshal.cpp:711
QList< ListItemInfo > * unmarshalItemInfoList(StorageIntf *s)
Definition: marshal.cpp:557
int endLine
line number of the end of the definition
Definition: definition.h:60
const QList< Entry > * children() const
Definition: entry.h:210
QCString name
the name of the base class
Definition: entry.h:42
void marshalSectionDict(StorageIntf *s, SectionDict *sections)
Definition: marshal.cpp:173
Specifier virt
virtualness
Definition: entry.h:44
QList< SectionInfo > * anchors
list of anchors defined in this entry
Definition: entry.h:281
Specifier
Definition: types.h:29
QCString fileName
Definition: section.h:61
QCString exception
throw specification
Definition: entry.h:274
static ArgumentList * unmarshal(StorageIntf *s)
Definition: arguments.cpp:40
int startLine
start line of entry in the source
Definition: entry.h:283
int level
Definition: section.h:64
QList< ArgumentList > * unmarshalArgumentLists(StorageIntf *s)
Definition: marshal.cpp:484
QCString args
member argument string
Definition: entry.h:252
QCString write
property write accessor
Definition: entry.h:272
const char * data() const
Definition: qcstring.h:207
QCString file
Definition: definition.h:53
Protection protection
class protection
Definition: entry.h:241
void marshalBriefInfo(StorageIntf *s, BriefInfo *briefInfo)
Definition: marshal.cpp:231
int lineNr
Definition: section.h:62
QCString doc
Definition: definition.h:42
uint unmarshalUInt(StorageIntf *s)
Definition: marshal.cpp:427
QCString title
Definition: section.h:57
void marshalSectionInfoList(StorageIntf *s, QList< SectionInfo > *anchors)
Definition: marshal.cpp:124
QCString anchor
Definition: example.h:30
void marshalEntry(StorageIntf *s, Entry *e)
Definition: marshal.cpp:347
QCString groupname
name of the group
Definition: types.h:93
Protection prot
inheritance type
Definition: entry.h:43
QCString name
Definition: example.h:31
RelatesType relatesType
how relates is handled
Definition: entry.h:270
Entry * unmarshalEntryTree(StorageIntf *s)
Definition: marshal.cpp:791
QCString inbodyDocs
documentation inside the body of a function
Definition: entry.h:266
QCString doc
documentation block (partly parsed)
Definition: entry.h:260
Specifier virt
virtualness of the entry
Definition: entry.h:251
void unmarshal(StorageIntf *s)
Definition: memberlist.cpp:869
void marshalUInt(StorageIntf *s, uint v)
Definition: marshal.cpp:26
QList< Grouping > * unmarshalGroupingList(StorageIntf *s)
Definition: marshal.cpp:518
static Specifier virt
bool artificial
Artificially introduced item.
Definition: entry.h:288
GroupDocType groupDocType
Definition: entry.h:289
void marshalQGString(StorageIntf *s, const QGString &str)
Definition: marshal.cpp:55
void marshalArgumentLists(StorageIntf *s, QList< ArgumentList > *argLists)
Definition: marshal.cpp:67
void marshalItemInfoList(StorageIntf *s, QList< ListItemInfo > *sli)
Definition: marshal.cpp:148
QCString fileName
file this entry was extracted from
Definition: entry.h:282
bool explicitExternal
explicitly defined as external?
Definition: entry.h:246
void marshalGroupingList(StorageIntf *s, QList< Grouping > *groups)
Definition: marshal.cpp:105
QCString bitfields
member&#39;s bit fields
Definition: entry.h:253
QCString type
Definition: types.h:100
QCString inside
name of the class in which documents are found
Definition: entry.h:273
static bool * b
Definition: config.cpp:1043
MethodTypes
Definition: types.h:32
Protection
Definition: types.h:26
#define HEADER
Definition: marshal.cpp:14
void marshalQCString(StorageIntf *s, const QCString &str)
Definition: marshal.cpp:48
QCString docFile
file in which the documentation was found
Definition: entry.h:262
MemberSDict * unmarshalMemberSDict(StorageIntf *s)
Definition: marshal.cpp:600
MethodTypes mtype
signal, slot, (dcop) method, or property?
Definition: entry.h:242
RelatesType
Definition: types.h:35
QCString relates
related class (doc block)
Definition: entry.h:269
uint64 unmarshalUInt64(StorageIntf *s)
Definition: marshal.cpp:436
unsigned long long uint64
Definition: qglobal.h:361
SrcLangExt lang
programming language in which this entry was found
Definition: entry.h:286
int inbodyLine
line number at which the body doc was found
Definition: entry.h:267
Definition: entry.h:37
void marshalObjPointer(StorageIntf *s, void *obj)
Definition: marshal.cpp:167
unsigned uint
Definition: qglobal.h:351
void setAutoDelete(bool enable)
Definition: qlist.h:99
void marshalMemberList(StorageIntf *s, MemberList *ml)
Definition: marshal.cpp:280
GroupDocType
Definition: entry.h:184
QCString file
Definition: example.h:32
static QCString * s
Definition: config.cpp:1042
QCString doc
Definition: definition.h:50
const bool TRUE
Definition: qglobal.h:371
static QCString str
ArgumentList * unmarshalArgumentList(StorageIntf *s)
Definition: marshal.cpp:479
QList< BaseInfo > * extends
list of base classes
Definition: entry.h:279
FileDef * fileDef
file definition containing the function body
Definition: definition.h:61
QCString type
member type
Definition: entry.h:236
#define ASSERT(x)
Definition: qglobal.h:590
int section
entry type (see Sections);
Definition: entry.h:235
int bodyLine
line number of the definition in the source
Definition: entry.h:276
QCString briefFile
file in which the brief desc. was found
Definition: entry.h:265
int startLine
line number of the start of the definition
Definition: definition.h:59
QGString unmarshalQGString(StorageIntf *s)
Definition: marshal.cpp:465
QList< ListItemInfo > * sli
special lists (test/todo/bug/deprecated/..) this entry is in
Definition: entry.h:285