|
| |
Next: LIAR header files
Up: No Title
Previous: The LIAR Error reporting
The example code shown in Fig. 3b needs
further explanation. Here, all referencing to the image data structure
variables is done indirectly via ``function'' calls; that is
getnumpixels and getinbuff. In fact, these are not true
functions, but rather C macros or pseudo-functions that are defined in
a separate header file; for example zed.h. In
Fig. 6 an example header file is given corresponding
to the image data structure shown in Fig. 2. Here,
only the macros for retrieving or getting values indirectly are given
Naturally, there exists the complementary set of macros for
assigning values or for setting parameters. This complementry set is created
by exchanging get with set in Fig. 6.
Figure 6: An example image macro header file
for the image data structure shown in
Fig. 2.
The advantages of using indirect referencing at the ASC interface level,
via the standard set of macros are:
- Porting image analysis routines between different IAS's is
simplified since, references to image data have been
standardized. All that needs to be changed is the right hand
side (RHS) of Fig. 6, for each particular
IAS. The left hand side (LHS) in principle never changes,
other than via the the addition of more macros. This latter
feature then helps to ensure backward compatibility; that is all
future header files are simply supersets of previous header
files.
- The macro definitions can be used at all levels of
implementation. Thereby, simplifying the porting of the
higher-level routines.
-
No mapping of data to a common format needs to be done. This
is automatically done indirectly via the use of the macros.
-
Image analysis routines become transparent to the data
structures. Allowing higher-level LIAR routines to make use
of already existing lower-level routines, which may or may
not use indirect referencing of data structure variables.
-
The macro definitions can at some later stage be replaced by
object-orientated methods: thus helping to facilitate the move to
C++.
Next: LIAR header files
Up: No Title
Previous: The LIAR Error reporting
Ed Breen
Tue Sep 3 17:19:31 EST 1996
|