From: konrad Date: Sat, 15 May 2010 10:37:18 +0000 (+0000) Subject: enhanced docu for PACK X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=2e1e6b75dc81f2c592195f2ce1340e31b288a74b;p=web%2Fkonrad%2Fpack.git enhanced docu for PACK git-svn-id: https://silmor.de/svn/softmagic/pack/trunk@455 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33 --- diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..9765131 --- /dev/null +++ b/doc/index.html @@ -0,0 +1,76 @@ + +PACK - Persistence And Communication Kit + +

PACK - Persistence And Communication Kit

+ +

Introduction

+ +PACK is a toolkit that speeds up the development of web based client-server-applications by providing wrappers for database storage and client-server communication. The main component is the Web Object Compiler (WOC) that translates XML based interface descriptions into the target language.

+ +The following languages are currently supported:
+ + + + + + + + + + + + + + + + + + + + + + + +
 ClientServer
C++/Qt 4.xyesplanned
PHP 5.xplannedyes
HTMLDocumentation Target
XML Schemaplanned for validation
+ +

Concepts

+ +In a classic three-tier architecture (see below) there are two interface layers: data and communication. +The Web Object Compiler helps implementing these three-tier architecture interfaces.

+ + + + + + + + + + +
Layer 3Client Presentation Layer
Communication InterfaceServer Abstraction Layer
Network Protocol (eg. HTTP)
Communication Abstraction Layer
Layer 2Server Business Logic
Data InterfaceDatabase Abstraction Layer
DB-Protocol (eg. LibMySQL)
Layer 1Database (eg. MySQL)
+Three Tier Architecture

+ +

The Language

+ + + +

Bindings

+ + + + \ No newline at end of file diff --git a/doc/woc.html b/doc/woc.html index e7a0f3a..67b7a26 100644 --- a/doc/woc.html +++ b/doc/woc.html @@ -3,281 +3,16 @@

Web Object Compiler

-In a classic three-tier architecture (see below) there are two interface layers: data and communication. -The Web Object Compiler (woc) helps implementing these three-tier architecture interfaces.

+The Web Object Compiler (woc) is the main component that translates WOLF files into the target language. - - - - - - - - - -
Layer 3Client Presentation Layer
Communication InterfaceServer Abstraction Layer
Network Protocol (eg. HTTP)
Communication Abstraction Layer
Layer 2Server Business Logic
Data InterfaceDatabase Abstraction Layer
DB-Protocol (eg. LibMySQL)
Layer 1Database (eg. MySQL)
-Three Tier Architecture

+

Compiling WOC

-

Overall File Format

+WOC requires Qt 4 (any version starting at 4.4 should work) in order to be compiled.

-Woc translates Web Object Language Files (*.wolf) into PHP or C++/Qt code. The wolf files are simple XML syntax.

+Enter the woc directory and call qmake and make to compile it or open woc.pro in QtCreator and build it. -Each wolf file must be enclosed in the <Wolf> and </Wolf> tags. The first few statements inside must describe the project itself: - -

-<Wolf>
-  <Doc>Documentation...</Doc>
-  <Project baseDir=".." wobDir="wob"/>
-  <Version comm="0100" needcomm="0100" humanReadable="1.1 alpha" svnTarget="."/>
-</Wolf>
-
- -Above the <Project> tag tells woc what the overall project directory is (relative to its current working directory) and where, relative to the baseDir, it will find all wolf files.

- -The <Doc> tag can be used to create project documentation. Each tag generates one paragraph. HTML can be embedded by escaping the "<" character as "&lt;".

- -The <Version> tag describes the communication protocol: - - - - - - - - -
AttributeDescription
commthe communication protocol described by this wolf file
needcommthe minimum communication protocol this wolf file is compatible with (attention: the processor uses ASCII string comparison, not int comparison)
humanReadablethe version number shown to the user
svnTargetif given: woc will call SVN to find out which repository revision was used
svnExeexecutable to call for subversion (default: svn)

- -The Include tag can be used to include other wolf files in the processing: -

-<Include file="user.wolf"/>
-

- -

Attribute Types

- -Boolean attributes in wolf files allow integers (0 is false, non-zere is true) or the explicit strings "yes", "true", "on" for true and "no", "false", "off" for false.

- -Integers can be entered in C notation - if it starts with 1 through 9 it is decimal, if it starts with 0 it is octal, if it starts with 0x it is hexadecimal. All integers are interpreted by woc - the generated source will always contain decimal numbers.

- -Woc is case-sensitive. - -

Chosing Outputs

- -Outputs should be declared after the basics have been declared, but before any tables, classes or transactions are declared. - -
-<QtClientOutput sourceDir="src" subDir="wob" priInclude="wob.pri"/>
-<PHPServerOutput sourceDir="www" subDir="inc/wob" extension=".php" clean="yes" transactionBase="WobTransaction"/>
-<HtmlOutput sourceDir="doc" subDir="wob"/>
-
- -The attribute "sourceDir" tells woc which directory (above baseDir) is the root source directory for each sub-project, the "subDir" attribute tells it which subdirectory below the sourceDir should be used for woc's generated output. The attribute "clean" tells woc to first delete all files from that sub-directory before starting the generator. Multiple generators of the same type can be used.

- -The QtClientOutput tag tells woc to create a generator for a Qt based client - the priInclude attribute tells woc which name it should give to the QMake include for its generated output.

- -The PHPServerOutput tag tells woc to create a generator for a PHP based server. The "extension" attribute tells woc which file extension to use for the generated files (default is .php). Woc will automatically create a "autoload" (plus extension) file that should be included from the main body of the PHP project to load the automatically generated classes. The transactionBase attribute allows to chose an extended class as base class of generated transactions - it is recommended to overwrite some protected functions in order to be able to get more information inside transactions.

- -The HtmlOutput tag tells woc where to generate API documentation. - -

Database Abstraction Layer

- -The Database Abstraction Layer is the servers lower bound towards the database. It is a simple translation of the database structure into usable PHP objects. The woc compiler generates one class per table.

- -One of the first statements is the manifest for the database schema: - -

-<DataBase instance="dbInst" schema="dbSchema" version="00.01" defaultUpdating="no"/>
-
- -The attribute "instance" tells woc what variable name it should use for the database connection instance, likewise "schema" tells woc which variable represents the database schema (usually an instance of WobSchema, which is generated by woc). The "version" attribute tells woc which database schema version is described in this wolf file. The "defaultUpdating" attribute tells woc whether transactions are normally assumed to write to the database.

- -For each database table woc needs a description of that table: - -

-<Table name="ticket" backup="yes" base="BarcodeTable">
-  <Column name="ticketid" type="string:32" primarykey="yes"/>
-  <Column name="eventid" type="int32" foreignkey="event:eventid"/>
-  <Column name="price" type="int32" notnull="yes"/>
-  <Column name="status" type="enum32" notnull="yes">
-    <Value name="Reserved" value="0x301"/> <!--dec: 769-->
-    <Value name="Cancelled" value="0x4"/> <!--dec: 4-->
-    <Value name="MaskUsable" value="0x300"/> <!--dec: 768-->
-  </Column>
-  <Column name="orderid" type="int32" foreignkey="order:orderid" notnull="yes"/>
-</Table>
-
- -Table attributes: - - - - - -
AttributeDescription
namethe name of the table, the generated class will be Wttablename
backupbool, contains whether the table is in the backup routine (default: false)
baseoptional, contains the class that this tables class is derived from, the base class must be derived from WobTable (default is to derive from WobTable directly)

- -The Table tag can have Doc subtags to embed documentation.

- -Column attributes: - - - - - - - - - -
AttributeDescription
namethe name of the column in the database
typethe type of the column, this must be a woc type which is then translated into SQL by woc
notnull, nullbool, marks the column to (not) allow NULL values, only one of the two attributes is allowed, currently the default is to allow NULL, but this may change in the future
foreignkeydeclares a reference to a foreign key column, the syntax is "foreigntablename:column" - the table that is referenced must be declared before the current one
uniquebool, declares the column UNIQUE
primarykeybool, tells woc that this column is part of the primary key (multiple columns may be part of the primary key)
defaultdeclares a default value for the column (currently defaults for enums must be given as integer)

- -Column Types: - - - - - - - - - -
AttributeDescription
string:int, stringa string column (SQL: VARCHAR), if the :int is given the column will have that maximum length assigned, if it is not given the database maximum is used; most databases support VARCHARs up to 255 characters
int32, int64a 32-bit/64-bit integer type
enum, enum32, enum64a 32bit/64bit (enum=enum32) integer interpreted as enumeration, the column must contain "Value" tags to declare the valid values
boola boolean column (the SQL representation may vary per database system)
seq32, seq64a 32bit/64bit integer that counts up automatically (ie. that has a sequence attached to it) - this is usually only used for primary keys
texta large text field
blobbinary large object

- -All names in table descriptions must follow a very strict syntax in order to be compatible with as many database systems as possible. Woc allows names that start with letters and contain only letters, underscored and digits.

- -The Value tags for enum types function similar to enums in C++. If a value attribute is given that value is assigned to the enum symbol, if no value is given the previous one is increased by one (the first value is 0).

- -Columns can be documented by adding the description directly to the Column tag or by embedding it with a Doc tag inside the Column tag. Enum values can be documented by embedding the description between <Value> and </Value>.

- -

Communication Abstraction Layer

- -The Communication Abstraction Layer is the servers upper bound towards the client. It hides the complexities of serializing data onto the network transport protocol by providing communication classes that do this automatically. The configuration of this layer is split into two major components: communication classes and transactions. While the communication classes describe what data can be transported over the connection, the transactions describe what operations can be performed.

- -

Communication Classes

- -An example class can be seen here: - -
-<Class name="Ticket">
-  <Enum name="TicketState" refColumn="ticket:status"/>
-  <Property name="ticketid" type="astring" id="yes"/>
-  <Property name="eventid" type="int"/>
-  <Property name="price" type="int"/>
-  <Property name="status" type="TicketState"/>
-  <Property name="orderid" type="int"/>
-  
-  <ToXml name="inOrder">ticketid eventid price status</ToXml>
-  <ToXml name="Full">ticketid eventid price status orderid</ToXml>
-  
-  <Mapping table="ticket">
-    <Map column="ticketid"/>
-    <Map column="price"/>
-    <Map column="eventid"/>
-    <Map column="status"/>
-    <Map column="orderid" property="orderid"/>
-  </Mapping>
-</Class>
-
- -The "name" attribute of the Class tag gives the communication class a name by which it can be referenced. The language converters will prefix it with "WO" to make it unique and postfix it with "Abstract" if the class is declared abstract - in this case the user must derive the non-abstract class to make it usable.

- -Class attributes: - - - - -
AttributeDescription
namethe name of the class
abstract(optional) marks the class abstract

- -The Enum tag defines a local enumeration. In most cases they will simply reference an enumeration that has already been defined in a database table with a refColumn attribute (syntax: table:column), but it may also locally define its values by using the same Value tags used for database enums.

- -The Property tag defines a property of the class that can be read and written to: - - - - - - -
AttributeDescription
namethe name of the property
abstract(optional) marks the property abstract - this automatically makes the class abstract and the user has to overwrite the getter and setter methods
id(optional, default=no) marks the property to identify the instance in a cache
type(mandatory) defines the type of the property, see below

- -Property types: - - - - - -the name of an enum defined in the same class is possible, local storage is as integer, transport is as string equalling the symbolic name of the value in an attribute - - -
TypeDescription
intan integer - it is at least a 32bit signed type; it is transported as attribute
astringa string that can be safely stored in a XML attribute
stringa string that is transported as element and can reach any length
EnumName
ClassNamethe name of a defined class makes the property an instance of that class; they are transported as sub-elements of this class
List:*prefixing the type with "List:" makes the property a list of that type - any of the above types can be made into lists; on transport list values are always serialized as elements

- -The Mapping tag can be used to provide a shortcut cast between a database table type and the communication class type. This is provided for the trivial case in which no transformations between the database query result and the transport data is necessary. If the property attribute is ommitted a property with the same name as the listed column is looked for.

- -The ToXml tag provides valid serializations. Each serialization must have a name - the language converters prefix them with "toString" and "toXml" to build a method names. The text of the tag simply lists all properties that should be contained in the serialization separated by spaces. Properties that are communication classes (or lists thereof) must also list the proper serialization function of that communication class, eg. Order serialized thus: - -

-<ToXml name="Full">orderid customerid seller amountpaid state amountdue tickets/inOrder vouchers/inOrder</ToXml>
-
- -Above the property "tickets" is a list of Ticket and "inOrder" is a serialization defined above for Ticket.

- -Classes can be documented by adding Doc subtags. Properties can be documented by adding the description directly into the Property tag. Enum values can be documented by adding the description directly into the Value tag. - - -

Transactions

- -
-<Transaction name="GetTicket" updating="yes">
-  <Input>
-    <Var name="ticketid" type="astring"/>
-    <Call lang="php" method="getTicketFunction"/>
-  </Input>
-  <Output>
-    <Var name="ticket" type="Ticket/Full"/>
-  </Output>
-</Transaction>
-
- -Each transaction must have a name that identifies it. This name is used in the wire protocol to correctly identify the currently requested transaction. - -Transaction attributes: - - - - - -
AttributeDescription
namethe name of the transaction
mode(optional, default=checked) can be used to require less restrictive privileges, see below for values
updatingoptional, tells woc whether the transaction is to be considered writing to the database - the default is given in the global "Database" tag.

- -Transaction modes: - - - - - -
ModeDescription
checkedthe default mode: the session must be authenticated and the user must have the privilege to execute this query
auththe session must be authenticated, but no special privilege is required; this can for example be used for the logout function or a function query information about the session itself
openno session is necessary for this to work; usually this is only done for login

- -Input defines the input parameters (Var tag) of the transaction (ie. what is sent to the server) and what function is called (Call tag) once the transaction has been checked and authenticated.

- -Output defines the data (Var tag) sent back to the client.

- -Var attributes: - - - - -
AttributeDescription
namethe name of the variable
typetype of the attribute; all types allowed for class properties (except enums) are allowed here

- -Call attributes: - - - - -
AttributeDescription
langthe language binding this refers to (currently only "php")
methodthe function to call - it must take exactly one argument: the transaction object

- -Transactions are represented as classes. On the client side they are used to execute the query and to represent the result. On the server side they internally verify the input and authenticate the transaction and are then used to take and encode the output or possible error conditions.

- -Transactions can be documented by adding Doc tags. Inputs and Outputs can be documented by adding the description directly into the Var tags. - - -

Server Abstraction Layer

- -This is the clients lower bound towards the server. It takes care of basic tasks like authentication, communication, serializing and deserializing data and keeping a cache of some important objects. +

Using WOC

+WOC is a command line utility. It takes the name of any number of WOLF files as argument - it will process those files in the order they are given as arguments and produce output that encompasses all of them. If you want to compile several independent WOLF files you should call WOC with each of them separately. Since most WOLF files will give relative paths you should change into the directory of the WOLF file before calling WOC. \ No newline at end of file diff --git a/doc/wolf-comm.html b/doc/wolf-comm.html new file mode 100644 index 0000000..f5f8417 --- /dev/null +++ b/doc/wolf-comm.html @@ -0,0 +1,144 @@ + +Web Object Language Files - Communication + +

Web Object Language Files - Communication Layer

+ +The Communication Abstraction Layer is the servers upper bound towards the client. It hides the complexities of serializing data onto the network transport protocol by providing communication classes that do this automatically. The configuration of this layer is split into two major components: communication classes and transactions. While the communication classes describe what data can be transported over the connection, the transactions describe what operations can be performed.

+ +

Communication Classes

+ +An example class can be seen here: + +
+<Class name="Ticket">
+  <Enum name="TicketState" refColumn="ticket:status"/>
+  <Property name="ticketid" type="astring" id="yes"/>
+  <Property name="eventid" type="int"/>
+  <Property name="priceid" type="int"/>
+  <Property name="price" type="Price"/>
+  <Property name="status" type="TicketState"/>
+  <Property name="orderid" type="int"/>
+  
+  <Abstract lang="php"/>
+  
+  <Mapping table="ticket">
+    <Map column="ticketid"/>
+    <Map column="priceid"/>
+    <Map property="price">
+      <Call lang="php" method="WOPrice::fromtableprice(WTprice::getFromDB($data->getpriceid()))"/>
+    </Map>
+    <Map column="eventid"/>
+    <Map column="status"/>
+    <Map column="orderid" property="orderid"/>
+  </Mapping>
+</Class>
+
+ +The "name" attribute of the Class tag gives the communication class a name by which it can be referenced. The language converters will prefix it with "WO" to make it unique and postfix it with "Abstract" if the class is declared abstract - in this case the user must derive the non-abstract class to make it usable.

+ +Class attributes: + + + + +
AttributeDescription
namethe name of the class
abstract(optional) marks the class abstract

+ +

Properties and Types

+ +The Enum tag defines a local enumeration. In most cases they will simply reference an enumeration that has already been defined in a database table with a refColumn attribute (syntax: table:column), but it may also locally define its values by using the same Value tags used for database enums.

+ +The Property tag defines a property of the class that can be read and written to: + + + + + + +
AttributeDescription
namethe name of the property
abstract(optional) marks the property abstract - this automatically makes the class abstract and the user has to overwrite the getter and setter methods
id(optional, default=no) marks the property to identify the instance in a cache
type(mandatory) defines the type of the property, see below

+ +Property types: + + + + + +the name of an enum defined in the same class is possible, local storage is as integer, transport is as string equalling the symbolic name of the value in an attribute + + +
TypeDescription
intan integer - it is at least a 32bit signed type; it is transported as attribute
astringa string that can be safely stored in a XML attribute
stringa string that is transported as element and can reach any length
EnumName
ClassNamethe name of a defined class makes the property an instance of that class; they are transported as sub-elements of this class
List:*prefixing the type with "List:" makes the property a list of that type - any of the above types can be made into lists; on transport list values are always serialized as elements

+ +

Mapping Database Tables

+ +The Mapping tag can be used to provide a shortcut cast between a database table type and the communication class type.

+ +Mappings generate conversions in both directions. However, mappings are only generated for the server side, since the client side does not have a database layer.

+ +If the property attribute is ommitted a property with the same name as the listed column is looked for. If the column attribute is ommitted a column with the same name as the property is looked for. If a property is not listed at all it will be left out of the conversion and hence will remain a null value.

+ +In the normal case of mapping in which no transformations between the database query result and the transport data is necessary it is enough to have just the column and/or property names listed. For more complex cases it is possible to specify code that performs the transformation from the database to the communication class with the Call tag. The method specified should return the desired result as a value valid for that property. It can use the $data variable, which represents the communication class instance that is being worked on and the $table variable that represents the table instance that is being converted from. Mappings are always generated in the order they are listed in the WOLF file, so access is only possible to properties that are listed over the current one.

+ +Classes can be documented by adding Doc subtags. Properties can be documented by adding the description directly into the Property tag. Enum values can be documented by adding the description directly into the Value tag. + + +

Transactions

+ +
+<Transaction name="GetTicket" updating="yes">
+  <Input>
+    <Var name="ticketid" type="astring"/>
+  </Input>
+  <Call lang="php" method="MyClass::getTicketFunction($this);"/>
+  <Output>
+    <Var name="ticket" type="Ticket/Full"/>
+  </Output>
+</Transaction>
+
+ +Each transaction must have a name that identifies it. This name is used in the wire protocol to correctly identify the currently requested transaction. + +Transaction attributes: + + + + + +
AttributeDescription
namethe name of the transaction
mode(optional, default=checked) can be used to require less restrictive privileges, see below for values
updatingoptional, tells woc whether the transaction is to be considered writing to the database - the default is given in the global "Database" tag.

+ +Transaction modes: + + + + + +
ModeDescription
checkedthe default mode: the session must be authenticated and the user must have the privilege to execute this query
auththe session must be authenticated, but no special privilege is required; this can for example be used for the logout function or a function query information about the session itself
openno session is necessary for this to work; usually this is only done for login

+ +Input defines the input parameters (Var tag) of the transaction (ie. what is sent to the server).

+ +Output defines the data (Var tag) sent back to the client.

+ +Var attributes: + + + + +
AttributeDescription
namethe name of the variable
typetype of the attribute; all types allowed for class properties (except enums) are allowed here

+ +The Call tag defines which function is called once the transaction has been checked and authenticated and the input decoded.

+ +Call attributes: + + + + +
AttributeDescription
langthe language binding this refers to (currently only "php")
methodthe function to call - this can be any function or method

+ +Transactions are represented as classes. On the client side they are used to execute the query and to represent the result. On the server side they internally verify the input and authenticate the transaction and are then used to take and encode the output or possible error conditions.

+ +The Call should use the $this variable to hand over a reference to the transaction itself. The function called should then use the transactions methods to set the result. Please see the binding documentation for details.

+ +Transactions can be documented by adding Doc tags. Inputs and Outputs can be documented by adding the description directly into the Var tags. + +


+Previous: DB Layer + + \ No newline at end of file diff --git a/doc/wolf-db.html b/doc/wolf-db.html new file mode 100644 index 0000000..613ad11 --- /dev/null +++ b/doc/wolf-db.html @@ -0,0 +1,103 @@ + +Web Object Language Files - DB + +

Web Object Language Files - DataBase Layer

+ +The Database Abstraction Layer is the servers lower bound towards the database. It is a simple translation of the database structure into usable PHP objects. The woc compiler generates one class per table.

+ +One of the first statements is the manifest for the database schema: + +

+<DataBase instance="dbInst" schema="dbSchema" version="00.01" defaultUpdating="no"/>
+
+ +The attribute "instance" tells woc what variable name it should use for the database connection instance, likewise "schema" tells woc which variable represents the database schema (usually an instance of WobSchema, which is generated by woc). The "version" attribute tells woc which database schema version is described in this wolf file. The "defaultUpdating" attribute tells woc whether transactions are normally assumed to write to the database.

+ +

Tables

+ +For each database table woc needs a description of that table: + +
+<Table name="ticket" backup="yes" base="BarcodeTable">
+  <Column name="ticketid" type="string:32" primarykey="yes"/>
+  <Column name="eventid" type="int32" foreignkey="event:eventid"/>
+  <Column name="price" type="int32" notnull="yes"/>
+  <Column name="status" type="enum32" notnull="yes">
+    <Value name="Reserved" value="0x301"/> <!--dec: 769-->
+    <Value name="Cancelled" value="0x4"/> <!--dec: 4-->
+    <Value name="MaskUsable" value="0x300"/> <!--dec: 768-->
+  </Column>
+  <Column name="orderid" type="int32" foreignkey="order:orderid" notnull="yes"/>
+</Table>
+
+ +Table attributes: + + + + + +
AttributeDescription
namethe name of the table, the generated class will be Wttablename
backupbool, contains whether the table is in the backup routine (default: false)
baseoptional, contains the class that this tables class is derived from, the base class must be derived from WobTable (default is to derive from WobTable directly)

+ +The Table tag can have Doc subtags to embed documentation.

+ +Column attributes: + + + + + + + + + +
AttributeDescription
namethe name of the column in the database
typethe type of the column, this must be a woc type which is then translated into SQL by woc
notnull, nullbool, marks the column to (not) allow NULL values, only one of the two attributes is allowed, currently the default is to allow NULL, but this may change in the future
foreignkeydeclares a reference to a foreign key column, the syntax is "foreigntablename:column" - the table that is referenced must be declared before the current one
uniquebool, declares the column UNIQUE
primarykeybool, tells woc that this column is part of the primary key (multiple columns may be part of the primary key)
defaultdeclares a default value for the column (currently defaults for enums must be given as integer)

+ +Column Types: + + + + + + + + + +
AttributeDescription
string:int, stringa string column (SQL: VARCHAR), if the :int is given the column will have that maximum length assigned, if it is not given the database maximum is used; most databases support VARCHARs up to 255 characters
int32, int64a 32-bit/64-bit integer type
enum, enum32, enum64a 32bit/64bit (enum=enum32) integer interpreted as enumeration, the column must contain "Value" tags to declare the valid values
boola boolean column (the SQL representation may vary per database system)
seq32, seq64a 32bit/64bit integer that counts up automatically (ie. that has a sequence attached to it) - this is usually only used for primary keys, some database types require that only one such column exists and that it is the primary key or part of it
texta large text field
blobbinary large object

+ +All names in table descriptions must follow a very strict syntax in order to be compatible with as many database systems as possible. Woc allows names that start with letters and contain only letters, underscores and digits.

+ +The Value tags for enum types function similar to enums in C++. If a value attribute is given that value is assigned to the enum symbol, if no value is given the previous one is increased by one (the first value is 0).

+ +Columns can be documented by adding the description directly to the Column tag or by embedding it with a Doc tag inside the Column tag. Enum values can be documented by embedding the description between <Value> and </Value>.

+ +

Auditing Shadow Tables

+ +The PACK toolkit allows for automatic auditing of tables. A table that is marked for auditing will automatically generate and keep copies of all data that is written to the table. On each insert, delete and update a copy of the new data is inserted into a new row of the auditing shadow table. The shadow table will have the same name as the base table plus the suffix _audit and it will also have a corresponding table class in the generated bindings, so that it can be queried.

+ +Usually you will want to define additional columns that describe the auditing copies. These are defined inside the main DataBase tag of the WOLF file: + +

+<DataBase instance="dbInst" schema="dbSchema" version="00.01" defaultUpdating="no"/>
+  <AuditTables>
+    <Column name="audittime" type="int64">Time at which the change was made.
+      <Call lang="php" method="time()"/>
+    </Column>
+  </AuditTables>
+</DataBase>
+
+ +The Column tags use the same syntax as those for normal tables except that for each server target there must be a corresponding Call tag that tells the Woc how to generate this data.

+ +It is then enough to add the audit="yes" tag to each table that will have an audit shadow table: + +

+<Table name="ticket" backup="yes" base="BarcodeTable" audit="yes">
+...
+
+ +
+Previous: Overall Format
+Next: Communication Layer + + \ No newline at end of file diff --git a/doc/wolf.html b/doc/wolf.html new file mode 100644 index 0000000..898f96f --- /dev/null +++ b/doc/wolf.html @@ -0,0 +1,69 @@ + +Web Object Language Files + +

Web Object Language Files

+ +WOLF (*.wolf) files are simple XML files that describe the interface layers of PACK. + +

Overall File Format

+ +Each wolf file must be enclosed in the <Wolf> and </Wolf> tags. The first few statements inside must describe the project itself: + +
+<Wolf>
+  <Doc>Documentation...</Doc>
+  <Project baseDir=".." wobDir="wob" name="MyProject"/>
+  <Version comm="0100" needcomm="0100" humanReadable="1.1 alpha" svnTarget="."/>
+</Wolf>
+
+ +Above the <Project> tag tells woc what the overall project directory is (relative to its current working directory) and where, relative to the baseDir, it will find all wolf files. The name attribute tells Woc what the exact name of the project is - among other things this property is used as default interface name in the client.

+ +The <Doc> tag can be used to create project documentation. Each tag generates one paragraph. HTML can be embedded by escaping the "<" character as "&lt;".

+ +The <Version> tag describes the communication protocol: + + + + + + + + +
AttributeDescription
commthe communication protocol described by this wolf file
needcommthe minimum communication protocol this wolf file is compatible with (attention: the processor uses ASCII string comparison, not int comparison)
humanReadablethe version number shown to the user
svnTargetoptional; if given: woc will call SVN to find out which repository revision was used
svnExeoptional; executable to call for subversion (default: svn)

+ +The Include tag can be used to include other wolf files in the processing: +

+<Include file="user.wolf"/>
+

+ +

Attribute Types

+ +Boolean attributes in wolf files allow integers (0 is false, non-zere is true) or the explicit strings "yes", "true", "on" for true and "no", "false", "off" for false.

+ +Integers can be entered in C notation - if it starts with 1 through 9 it is decimal, if it starts with 0 it is octal, if it starts with 0x it is hexadecimal. All integers are interpreted by woc - the generated source will always contain decimal numbers.

+ +Woc is case-sensitive. + +

Chosing Outputs

+ +Outputs should be declared after the basics have been declared, but before any tables, classes or transactions are declared. + +
+<QtClientOutput sourceDir="src" subDir="wob" priInclude="wob.pri" transactionBase="WTransaction"/>
+<PHPServerOutput sourceDir="www" subDir="inc/wob" extension=".php" clean="yes" transactionBase="WobTransaction"/>
+<HtmlOutput sourceDir="doc" subDir="wob"/>
+
+ +The attribute "sourceDir" tells woc which directory (above baseDir) is the root source directory for each sub-project, the "subDir" attribute tells it which subdirectory below the sourceDir should be used for woc's generated output. The attribute "clean" tells woc to first delete all files from that sub-directory before starting the generator. Multiple generators of the same type can be used, but should have different target directories.

+ +The QtClientOutput tag tells woc to create a generator for a Qt based client - the priInclude attribute tells woc which name it should give to the QMake include for its generated output. The transactionBase attribute allows to chose an extended class as base class of generated transactions - usually this should not be necessary for Qt client targets.

+ +The PHPServerOutput tag tells woc to create a generator for a PHP based server. The "extension" attribute tells woc which file extension to use for the generated files (default is .php). Woc will automatically create a "autoload" (plus extension) file that should be included from the main body of the PHP project to load the automatically generated classes. The transactionBase attribute allows to chose an extended class as base class of generated transactions - it is recommended to overwrite some protected functions in order to be able to get more information inside transactions.

+ +The HtmlOutput tag tells woc where to generate API documentation. + +


+Next: DataBase Layer + + \ No newline at end of file diff --git a/phpbase/Doxyfile b/phpbase/Doxyfile new file mode 100644 index 0000000..a64ae97 --- /dev/null +++ b/phpbase/Doxyfile @@ -0,0 +1,246 @@ +# Doxyfile 1.5.7.1-KDevelop + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "PACK PHP-Binding" +PROJECT_NUMBER = $VERSION$ +OUTPUT_DIRECTORY = ../doc/phpbase +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +SYMBOL_CACHE_SIZE = 0 +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = YES +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.php \ + *.php3 \ + *.php4 \ + *.php5 \ + *.inc \ + *.dox +RECURSIVE = yes +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +HTML_DYNAMIC_SECTIONS = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = +QHP_VIRTUAL_FOLDER = doc +QHP_CUSTOM_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NONE +TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 10 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = PACKphpBinding.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +DOT_FONTNAME = FreeSans +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/qtbase/Doxyfile b/qtbase/Doxyfile new file mode 100644 index 0000000..0af5f85 --- /dev/null +++ b/qtbase/Doxyfile @@ -0,0 +1,234 @@ +# Doxyfile 1.5.7.1-KDevelop + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "PACK Qt Binding" +PROJECT_NUMBER = $VERSION$ +OUTPUT_DIRECTORY = ../doc/qtbase +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +SYMBOL_CACHE_SIZE = 0 +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.C \ + *.CC \ + *.C++ \ + *.H \ + *.HH \ + *.H++ \ + *.dox +RECURSIVE = yes +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +HTML_DYNAMIC_SECTIONS = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = +QHP_VIRTUAL_FOLDER = doc +QHP_CUSTOM_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NONE +TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 10 +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = PACKQtBinding.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +DOT_FONTNAME = FreeSans +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX/XML output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +GENERATE_XML = NO diff --git a/woc/Doxyfile b/woc/Doxyfile new file mode 100644 index 0000000..6e6ee8b --- /dev/null +++ b/woc/Doxyfile @@ -0,0 +1,257 @@ +# Doxyfile 1.5.7.1-KDevelop + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "PACK WOC" +PROJECT_NUMBER = $VERSION$ +OUTPUT_DIRECTORY = ../doc/woc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = /home/konrad/ +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +SYMBOL_CACHE_SIZE = 0 +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.C \ + *.CC \ + *.C++ \ + *.H \ + *.HH \ + *.H++ \ + *.dox +RECURSIVE = yes +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +HTML_DYNAMIC_SECTIONS = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = +QHP_VIRTUAL_FOLDER = doc +QHP_CUSTOM_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NONE +TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 10 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = Woc.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +DOT_FONTNAME = FreeSans +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO