Module.h

Go to the documentation of this file.
00001 /*
00002  * The information in this file is
00003  * Copyright(c) 2007 Ball Aerospace & Technologies Corporation
00004  * and is subject to the terms and conditions of the
00005  * GNU Lesser General Public License Version 2.1
00006  * The license text is available from   
00007  * http://www.gnu.org/licenses/lgpl.html
00008  */
00009 
00010 #ifndef MODULE_H
00011 #define MODULE_H
00012 
00013 #include "AppConfig.h"
00014 
00015 class External;
00016 class PlugIn;
00017 
00018 /**
00019  * \cond INTERNAL
00020  */
00021 extern "C" int LINKAGE opticks_get_module_interface_version();
00022 /// \endcond
00023 
00024 /**
00025  *  \cond INTERNAL
00026  *  Gets descriptive information about the module.
00027  *
00028  *  This method returns the module name, version, description, total
00029  *  number of plug-ins within the module, and the module validation 
00030  *  confirmation string.
00031  *
00032  *  @param   name
00033  *           Returns the name of the module.
00034  *  @param   version
00035  *           Returns the version of the module.
00036  *  @param   description
00037  *           Returns a description of the use and purpose of the module.
00038  *  @param   totalPlugIns
00039  *           Returns the number of plug-ins within the module.
00040  *  @param   validationKey
00041  *           Returns a key that the Studio can check to see if the plug-in
00042  *           is a validated plug-in.  Validation allows users to discriminate
00043  *           between plug-ins in the R&D stage, custom plug-ins, and fully tested
00044  *           and validated plug-ins.
00045  *  @param   pModuleId
00046  *           Returns a unique identifier for this module.
00047  *
00048  *  @return  This method returns true if completed successfully.
00049  */
00050 extern "C" bool LINKAGE get_name( char **name, 
00051                                     char **version, 
00052                                     char **description,
00053                                     unsigned int *totalPlugIns,
00054                                     char **validationKey,
00055                                     char **pModuleId);
00056 /// \endcond
00057 
00058 /**
00059  *  \cond INTERNAL
00060  *  Initializes the module.
00061  *
00062  *  This method initializes the Module.  Initialization includes
00063  *  instantiating the ModuleManager, setting the reference to the
00064  *  main application's services interface.
00065  *
00066  *  @param   services
00067  *           Gives the module a reference to the main application's
00068  *           External services interface.
00069  *
00070  *  @return  This method returns true if completed successfully.
00071  */
00072 extern "C" bool LINKAGE initialize_op( External *services );
00073 /// \endcond
00074 
00075 /**
00076  *  \cond INTERNAL
00077  *  Instantiates the given plug-in.
00078  *
00079  *  This method instantiates the given plug-in and returns the reference
00080  *  to the new plug-in.
00081  *
00082  *  @param   plugInNumber
00083  *           Plug-in to access within the module.
00084  *  @param   interfaceAddress
00085  *           NULL or reference to interface.
00086  *
00087  *  @return  This method returns true if completed successfully.
00088  */
00089 extern "C" bool LINKAGE instantiate_interface(unsigned int plugInNumber, PlugIn** interfaceAddress);
00090 /// \endcond
00091 
00092 /**
00093  *  \cond INTERNAL
00094  *  Destroys all plug-ins within the module.
00095  *
00096  *  This method tells the module to delete all plug-ins within 
00097  *  it.
00098  *
00099  *  @return  This method returns true if completed successfully.
00100  */
00101 extern "C" bool LINKAGE destroy_op();
00102 /// \endcond
00103 
00104 #endif

Software Development Kit - Opticks 4.9.0 Build 16218