| |
|
Objectives
To implement a set of C++ classes able to manage multiple hardware scanners.
The management implies running the specified scanners, getting the scanning
results, and their processing (i.e. filtering, combining the data obtained from
scanners, which provide different approaches to getting the data about the same
devices, converting the results to the specified format).
|
|
Results
To widen the capabilities of the Hardware Inventory utility, it was necessary
to integrate it with a number of scanners (i.e. program components getting the
information about devices of a certain class, e.g. PCI or SCSI). The scanners
differed not only in the type of the target device, but also in the way they
were implemented. For instance, to scan the PCI devices, there were four
scanners available. It was necessary to implement the mechanism providing the
flexible use of various scanners.
|
| |
|
Technical peculiarities
A set of C++ classes and interfaces was designed and implemented that allowed
to start any scanner, get any data from it (the data was got in the form of the
named properties of a string, integer, or vector type). The results of scanning
were processed (combined,
|
|
filtered, and converted to the specified format). The implemented system is
flexible and extensible: it is based on the data managed schema, so adding new
scanners, properties, or result forming rules practically will not require any
system code corrections.
|