Plugin-Related State Objects
There are various state objects that relate to how VisIt maintains track of plugins. This page is an attempt to describe some the of state objects and how they are used in VisIt.
The viewer populates the PluginManagerAttributes with the available plot and operator plugins. The object is sent to clients after the viewer is initialized so the client can load the same list of plugins as the viewer so the ViewerProxy interface contains the same state objects in both the viewer and its clients. This object is also used in the GUI's Plugin Manager window to show the plugins that are available, and which have been loaded. This state object contains minimal information about plot and operator plugins, mostly to identify the plugin itself. This is because with the identifying information, additional properties can be obtained from the plot and operator plugins themselves since the VisIt clients will have those loaded.
This state object contains information that identifies database plugins and it is populated in the mdserver using the database plugins that are loaded there. The object is populated using each plugin's common info. The information is sent to the viewer and ultimately to the clients so they can know about the characteristics of plugins for a specified host. This is important since neither the viewer nor its clients actually load database plugins and this is the mechanism by which they learn about available database plugins. Each host may provide different DBPluginInfoAttributes depending on the available database plugins. The state object contains the read and write options (DBOptionsAttributes) for a plugin and the VisIt GUI uses these options to create a custom window for reading databases and for database export.
This state object can describe the read or write options for a plugin. The read/write options consist of names, types, and values. The option name lets the user get/set a value by name. The values that can be stored in a read option are determined by the type. The allowable types are bool,int,float,double,string, and enum. The composition of each DBOptionsAttributes is determined by the code that creates the option object in the database plugin info.
The DBPluginInfoAttributes contain vectors of DBOptionsAttributes that contain the options for all database plugins. The FileOpenOptions uses this class as well to keep the current read options that have been set for database plugins.
Ultimately, when a database plugin supports read options, the constructor for the file format often will have access to the read options and they can be used to influence how the file is read.
This state object allows the user to specify general options used for exporting databases. Part of the information is a DBOptionsAttributes object that can be used to tell the database writer plugin more information about how the database should be exported. For example, the Silo plugin lets the user choose whether a file will be HDF5 or PDB and whether the files will be combined into a single file or exported as multiple files.
The FileOpenOptions state object contains a vector of DBOptionsAttributes that contain the current read options in place for all file formats. When VisIt opens a file, the FileOpenOptions are passed to the mdserver and the engine to ensure that database reader plugins read their data taking into account the read options.