User`s manual
Writing Custom Applications
displayed. This includes a count of the data blocks received, the data rate, the measured temperature of the board logic, and
the digital I/O value.
Host Side Program Organization
The Malibu library is designed to be rebuildable in each of three different host environments: Codegear Developer's Studio
C++ , Microsoft Visual Studio 2008, and on Linux. Because the library has a common interface in all environments, the code
that interacts with Malibu is separated out into a class, ApplicationIo in the files ApplicationIo.cpp and .h. This class acts
identically in all the platforms.
The Main form of the application creates an ApplicationIo to perform the work of the example. The UI can call the methods
of the ApplicationIo to perform the work when, for example, a button is pressed or a control changed.
Sometimes, however, the ApplicationIo object needs to 'call back into' the UI. But since the code here is common, it can't use
a pointer to the main window or form, as this would make ApplicationIo have to know details of Borland or the VC
environment in use.
The standard solution to decouple the ApplicationIo from the form is to use an Interface class to hide the implementation. An
interface class is an abstract class that defines a set of methods that can be called by a client class (here, ApplicationIo). The
other class produces an implementation of the Interface by either multiple inheriting from the interface, or by creating a
separate helper class object that derives from the interface. In either case the implementing class forwards the call to the UI
form class to perform the action. ApplicationIo only has to know how to deal with a pointer to a class that implements the
interface, and all UI dependencies are hidden.
The predefined IUserInterface interface class is defined in ApplicationIo.h. The constructor of ApplicationIo requires a
pointer to the interface, which is saved and used to perform the actual updates to the UI inside of ApplicationIo's methods.
ApplicationIo
Initialization
The main form creates an ApplicationIo object in its constructor. The object creates a number of Malibu objects at once as
can be seen from this detail from the header ApplicationIo.h.
X5-GSPS User's Manual 48