A.4 Querying Data from the Wafer

In this section the classes and methods to retrieve data from the WAFER-STATE-SERVER are discussed. Access to the data stored on a Wafer is performed similarly to the way they are stored, namely hierarchically.

For container objects that hold an arbitrary number of (sub-)objects (e.g. a Wafer object holds an arbitrary number of segment objects) an iteration scheme is provided to retrieve the contained objects. This iteration scheme is unique within the WAFER-STATE-SERVER. The iteration method uses a variable of type unsigned int to store the internal state (position) of the iteration. The variable must be initialized to 0 before the first call of an iteration method and must not be changed afterwards. The state of the variable after any call of an iterator is undefined, its interpretation is left to the implementation of the iterator. Thus, this variable must not be used as a counter that indicates the number of already retrieved elements. Although the implementation of many iterators -- wherever containers of the C++ standard template library (STL) are used to hold the data -- uses this variable as a counter (and thus the state of the variable indeed indicates the number of retrieved elements), some iterator implementations still use the variable in a totally different way (e.g. as a boolean variable to solely indicate the start of an iteration without changing it after the first invocation). It should therefore be mentioned that the user must not rely on the state of this variable.