Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
HydraExpress Web Service Development Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

21.3 The Code Generation Directory

At code generation, HydraExpress creates a series of subdirectories to hold the generated code. This structure allows you to easily navigate through your project to locate the files you need. For example, the sample implementations are separated from the rest of the generated code, and the configuration files are in their own directory.

This section describes the code generation directory structure, including the top-level directory and all subdirectories.

21.3.1 The Top-Level Code Generation Directory

At code generation, HydraExpress creates a code generation directory containing the following subdirectories (in bold) and files at the top level:

The subdirectories for the project include:

The top-level project files are:

21.3.2 The SubDirectories

The generated subdirectories contain additional subdirectories, discussed in this section.

21.3.2.1 The App Directory

The app directory contains code you are expected to modify. All contents are overwrite-protected. For a discussion on overwrite-protection, see Section 20.7.

The app directory contains several subdirectories and makefiles. Each subdirectory is created only if the generator created relevant code. For example, if you generated code using a -noserver option, the generator would not create a subdirectory server. These subdirectories are listed in bold below.

For information on how the code generator names the generated files, please see Appendix A.

The client subdirectory includes any client sample implementations, including the sample Client.cpp. Its only subdirectory is an obj directory containing object files. The obj directory is created when you build the contents of the client directory.

The data subdirectory contains sample code for all specified schemas in the project. If there are no schemas, this directory is not created.

The server subdirectory contains sample server implementations.

21.3.2.2 The Bin Directory

The bin directory contains all executables and DLL's. Be aware that the contents of this directory are not overwrite protected.

For example:

21.3.2.3 The Codegen Directory

The codegen directory contains generated code used internally by HydraExpress. The code in this directory should not be modified.

The codegen directory contains the following subdirectories (in bold) and makefiles:

Like the app directory, codegen includes subdirectories that sort the code into client, server, and data-related groups, and include proxies, the server skeleton, and data objects. Again, these subdirectories are created only if the generator is creating relevant code.

Note the existence of the common directory. This is generated only if code exists that is common to both the client and the server side, usually faults. The contents of the common directory are compiled into a unique library and will be used by the client and server directories.

These directories contain only code that should not be edited by the user, such as the client proxy, the server skeleton, and data objects.

21.3.2.4 The Conf Directory

The conf directory contains all configuration files and a set of deployment makefiles. Typical configuration files include:

The types of configuration files generated depends on the contents of your WSDL or schema, as well as options used during code generation. For example, if you generated code using a WSDL containing a notification message pattern, the client-objects.xml file is generated; otherwise, it is not present.

For general information on the configuration files, see Section 8.3.11, "Customizing the Service Configuration Files."

21.3.2.5 The Docs Directory

The docs directory contains all generated HTML documentation files. While this directory is sorted into similar subdirectories -- client, data, and server -- all documentation is most easily accessed by the top-level index.html file:

21.3.2.6 The Include Directory

The include directory contains all include files generated by the project organized into project name and namespace directories, as follows:

Note the inclusion of two include files that are unique to the project. These are:

The directory namespace_tag is optional, depending on whether the project includes a schema and therefore datatypes are generated. If so, those header files will be placed under a separate subdirectory according to namespace.

21.3.2.7 The Lib Directory

The lib directory contains all of .lib and .so files. For example:

For more information on makefiles and compiling your applications, see Chapter 22, "Options for Compiling."



Previous fileTop of DocumentContentsIndex pageNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo are registered trademarks of Rogue Wave Software, and HydraExpress is a trademark of Rogue Wave Software. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.