Types of Data in DGML

DG includes DA-C project data as well as project reports generated by DA-C into the generated document. To represent DA-C project documentation object data, a set of corresponding data types has been defined in DGML. As the term DA-C path is used in DA-C to identify the location of project documentation objects (directories and files), a DGML definition of a DA-C path has been introduced. A set of functions has been defined to separate object documentation data and include the DA-C report into the generated document.

To represent project data the following types of data have been defined:

TProject Structure

TProjectVCSData Structure

To represent file and folder data the following types of data have been defined:

TDirectory Structure

TFile Structure

TFileVCSData Structure

To represent symbol data the following types of data have been defined:

TFunction Structure

TSymbol Structure

To represent group and view data the following types of data have been defined:

TGroup Structure

TView Structure

To represent Search reports the following types of data have been defined:

TSearch Structure

TFound Structure

To represent Browser reports the following types of data have been defined:

TBrowse Structure

TUsesWithin Structure

To represent message data the following type of data has been defined:

TMessage Structure

TProject Structure

TProject structure allows you to store project data.

Structure definition:

struct TProject
{
   string Name;
   string Alias;
   string RootDir;
   string DatabaseDir;
   string UserHelpFile;
   string ReferentialRootDir;
}

Members:

Name is the name of the project

Alias is the project alias

RootDir is the project root directory

DatabaseDir is the directory in which the project database is located

UserHelpFile is the name of the User Help file with a DA-C path

ReferentialRootDir is the project referential root directory

TProjectVCSData Structure

TProjectVCSData structure enables you to store project data from the Version Control System.

Structure definition:

struct TProjectVCSData
{
   string ReferentialLabel;
   string VersionLabel;
}

Members:

ReferentialLabel is the referential project version label

VersionLabel is the label of the project version for which documentation is generated

TDirectory Structure

TDirectory structure is used to represent directory data.

Structure definition:

struct TDirectory
{
   string Name;
   string FullName;
   string ProjectName;
   string Alias;
   date   Created;
   TCollection<string> Files;
   TCollection<string> Subdirectories;
}

Members:

Name is the name of the folder

FullName is the absolute path to the folder

ProjectName is the relative path to the folder in relation to the project root directory

Alias is the folder alias (if data was obtained from Logical View)

Created is the project creation date

Files is a collection with string-type elements which represent the names of files located in the folder in question

Subdirectories is a collection with string-type elements which represent the names of subfolders located in the folder in question

TFile Structure

TFile structure allows you to store file data.

Structure definition:

struct TFile { string Name; string ProjectName; string FullName; string Path; string ProjectPath; float Size; string Type; string Alias; TCollection<string> Attributes; date Created; date Modified; date Accessed; string MakeOptions; }

Members:

Name is the name of the file

ProjectName is the name of the file which includes the path relative to the project root directory

FullName is the name of the file which includes the absolute path to the folder in which the file resides

Path is the DA-C path of the folder in which the file is located

ProjectPath is the relative path to the directory in which the file resides in relation to the project root directory

Size is file size

Type is file type "C Source File",  "C Header File",  "ASM Source File",  "Document File" or  "Text File". 

Type is file type description. It is DA-C description ("C Source File", "C Header File", "ASM Source File", "Document File" or  "Text File") for extensions defined in "Options > Project > File Types", otherwise it is default Windows description.

Alias is the file alias

Attributes are file attributes (Read-only, Archive, Hidden, System)

Created is the file creation date

Modified is the date on which the file was last modified

Accessed is the date the file was last accessed

MakeOptions are file MakeOptions

TFileVCSData Structure

TFileVCSData structure enables you to store file data from the Version Control System.

Structure definition:

struct TFileVCSData { string LastChange; string Status; TCollection<string> Lockers; string VersionLabels; }

Members:

LastChange is the date and time of the last change to the file

Status is the VCS file status

Lockers are the names of users who have locked the file

VersionLabels is the file version label

TFunction Structure

TFunction structure is used to store function data.

Structure definition:

struct TFunction { string Name; string FileName; string Type; TCollection<TSymbol> Parameters; string DACComment; }

Members:

Name is the name of the function

FileName is the name of the file in which the function was defined with its DA-C path

Type is function type

Parameters is a list with Tsymbol-type elements which represent function parameters

DACComment is a comment generated by DA-C

TSymbol Structure

TSymbol structure enables you to store variable, constant, type and macro data.

Structure definition:

struct TSymbol { string Name; string Type; string DACComment; string FileName; string OwnerFunction; }

Members:

Name is the name of the symbol

Type is the symbol type (if one exists)

Comment is a comment generated by DA-C (if one exists)

FileName is the name of the file in which the symbol was defined with its DA-C path

OwnerFunction is the name of the function in which the symbol was defined (this box has an entry only for local symbols).

Note: For macros, only the Name and FileName parameters have entries.

TGroup Structure

TGroup structure enables you to store group data.

Structure definition:

struct TGroup { string Name; TCollection<TFunction> Functions; TCollection<string> SubGroups; }

Members:

Name is the name of the group

Functions is a collection the elements of which are of the TFunction type which represent functions included in the group

SubGroups is a collection the elements of which are names of groups included in the group.

TView Structure

TView structure allows you to store view data.

Structure definition:

struct TView { string Name; TCollection<string> Groups; TCollection<string> SubViews; }

Members:

Name is the name of the view,

Groups is a collection the elements of which are the names of groups included in the view,

SubViews is a collection the elements of which are the names of views included in the view.

TSearch Structure

TSearch structure is used to store the results of a word or phrase search in the project or folder sub tree.

Structure definition:

struct TSearch { int Count; TCollection<TFound> FoundList; }

Members:

Count is the number of word or phrase iterations,

FoundList is a list whose elements represent all appearances of the phrase searched for within a file.

TFound Structure

TFound structure enables you to represent the iterations of the word or phrase specified within a file.

Structure definition:

struct TFound { string FileName; TCollection<string> Items; }

Members:

FileName is the DA-C name of the file in which the iterations of the word or phrase are found,

Items is a collection of program lines in which the data searched for were found.

TBrowse Structure

TBrowse structure allows you to store browser generated data (i.e. to represent declaration and symbol use data, data on assigning variable values, data on function calls and calls from functions).

Structure definition:

struct TBrowse { string FilePath; string Level; TCollection<string> Items; }

Members:

FilePath is the DA-C file path in which the data searched for reside

Level is the level on which the data reside (module level or function level)

Items is the name of the collection whose elements represent the data searched for

TUsesWithin Structure

TUsesWithin structure allows you to store Browser reports on symbols used in a function.

Structure definition:

struct TUsesWithin { TCollection<TSymbol> PublicVarUses; TCollection<TSymbol> LocalVarUses; TCollection<TSymbol> PublicConstUses; TCollection<TSymbol> LocalConstUses; }

Members:

PublicVarUses is a list the elements of which are global variables used in the function

LocalVarUses is a list the elements of which are local variables used in the function

PublicConstUses is a list the elements of which are global constants used in the function

LocalConstUses is a list the elements of which are local constants used in the function

TMessage Structure

TMessage structure is used to store file messages.

Structure definition:

struct TMessage { string File; string Category; int Line; string Function; string Message; string Note; }

Members:

File is the name of the file to which the message pertains

Category is the message category: "Static Code Analysis", "Source Code Metrics", "Makefile generator", "Naming Convention" or User-Defined tab name.

Line is the file line to which the message pertains (the box has an entry if the message source is Static Code Analysis or Make Generator)

Function is the function to which the message pertains (the box has an entry if the message source is Source Code Metrics Analyzer)

Message is the message text

Note is the note