Version 1 (modified by 19 years ago) ( diff ) | ,
---|
Orbit > OTG > Function Specifications > OML Integration
Function Specification: Integration with OML
Design
To isolate/encapsulate all OML-related functions, a class OrbitApp is designed. All other design components/objects shall not care about measurements reporting mechanism and the interaction with OML. This class derived three child classes for respective appliactions.
http://www.winlab.rutgers.edu/~zhibinwu/image/classOrbitApp.png
Figure 1. Class Hierarchy for OrbitApp
Implementation
All functons to call OML are put as pure virtual functions in this base class. OTG/OTR/OTFApp can select to implement a subset of those functions. This design has some advantages:
- to make OTF to reuse the Stream/Port/Gate structure of as a combination of OTG/OTR
- to share some common functions for all OTG/OTR/OTFApp, such as close()
The class has a boolean varialbe to indicate if OML will be used or not. If it is false, all measurement reports will be redireted to a local log file. This is a special debugging mode. And it could also be served as a means to use OTG outside of ORBIT testbed.
OML calls are actually implemented externally by OML-client libraries. So, special header files are fetched dynamically in compilation. Those header files have to be included here. For example:
- #include "oml_orbit_winlab_otg.h" in otg_application.h
- #include "oml_orbit_winlab_otr.h" in otr_application.h
Attachments (1)
- classOrbitApp.png (520 bytes ) - added by 19 years ago.
Download all attachments as: .zip