File: cccc_mod.h

package info (click to toggle)
cccc 3.pre81-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,820 kB
  • ctags: 4,972
  • sloc: ansic: 33,244; cpp: 10,691; java: 618; makefile: 165; sh: 11
file content (58 lines) | stat: -rw-r--r-- 1,036 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
 * cccc_mod.h
 */
#ifndef CCCC_MOD_H
#define CCCC_MOD_H

#include "cccc.h"

#include "cccc_rec.h"

class CCCC_Item;
class CCCC_Project;
class CCCC_UseRelationship;
class CCCC_Member;


static const string MODULE_PREFIX="CCCC_Module";
static const string MODEXT_PREFIX="CCCC_ModExt";


enum ModuleNameLevel 
{ nlMODULE_TYPE=-1, nlMODULE_NAME=-2, nlMODULE_TYPE_AND_NAME=-3 };

class CCCC_Module : public CCCC_Record 
{
  friend class CCCC_Project;
  friend class CCCC_Html_Stream;
  friend class CCCC_Xml_Stream;
  CCCC_Project *project;
  string module_name, module_type;

  typedef std::map<string,CCCC_Member*> member_map_t;
  member_map_t member_map;

  typedef std::map<string,CCCC_UseRelationship*> relationship_map_t;
  relationship_map_t client_map;
  relationship_map_t supplier_map;

  CCCC_Module();
  
public:

  string name(int name_level) const; 
    
  int FromFile(ifstream& infile);
  int ToFile(ofstream& outfile);
  
  virtual int get_count(const char *count_tag);
  int is_trivial();
};

#endif // CCCC_MOD_H