Athena Developer Guide
Athena Developer Guide
Athena Developer Guide
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Athena</strong> Chapter 17 Physical design issues Version/Issue: 2.0.0<br />
17.3.1.1.1 Component declaration statements<br />
The complete set of statements that are available for declaring components is shown in Listing 17.4.<br />
They include those that support C++ classes in different namespaces, as well as for DataObjects or<br />
ContainedObjects using the generic converters.<br />
Listing 17.4 The available component declaration statements<br />
DECLARE_ALGORITHM(X)<br />
DECLARE_ALGTOOL(X)<br />
DECLARE_AUDITOR(X)<br />
DECLARE_CONVERTER(X)<br />
DECLARE_GENERIC_CONVERTER(X) [1]<br />
DECLARE_OBJECT(X)<br />
DECLARE_SERVICE(X)<br />
DECLARE_TOOL(X) [2]<br />
DECLARE_NAMESPACE_ALGORITHM(N,X) [3]<br />
DECLARE_NAMESPACE_ALGTOOL(N,X)<br />
DECLARE_NAMESPACE_AUDITOR(N,X)<br />
DECLARE_NAMESPACE_CONVERTER(N,X)<br />
DECLARE_NAMESPACE_GENERIC_CONVERTER(N,X)<br />
DECLARE_NAMESPACE_OBJECT(N,X)<br />
DECLARE_NAMESPACE_SERVICE(N,X)<br />
DECLARE_NAMESPACE_TOOL(N,X)<br />
Notes:<br />
1. Declarations of the form DECLARE_GENERIC_CONVERTER(X) are used to declare the<br />
generic converters for DataObject and ContainedObject classes. For DataObject<br />
classes, the argument should be the class name itself (e.g. EventHeader), whereas for<br />
ContainedObject classes, the argument should be the class name concatenated with<br />
either List or Vector (e.g. CellVector) depending on whether the objects are<br />
associated with an ObjectList or ObjectVector.<br />
2. The DECLARE_ALGTOOL(X) and DECLARE_TOOL(X) declarations are synonyms of each<br />
other.<br />
3. Declarations of this form are used to declare components from explicit C++ namespaces. The<br />
first argument is the namespace (e.g. Atlfast), and the second is the class name (e.g.<br />
CellMaker).<br />
page 152