![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: pluginMgr.h,v $ $Revision: 1.18 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DT_NO_PLUGINS 00013 00014 #ifndef DtRtiPluginManager_H_ 00015 #define DtRtiPluginManager_H_ 00016 00017 #include "rtiMsConfig.h" 00018 #include <vlutil/vlFilename.h> 00019 #include <vlutil/vlList.h> 00020 00021 class DtRtiExec; 00022 class DtRtiAmbassadorBaseImplementor; 00023 00024 enum DT_DLL_LRC DtRtiPluginComponentType 00025 { 00026 DtLrcPlugin, 00027 DtExecPlugin, 00028 DtForwarderPlugin, 00029 DtShmQPlugin, 00030 DtWwwSpyServerPlugin, 00031 DtAssistantPlugin 00032 }; 00033 00034 typedef void (*DtRtiInitMethod)(DtRtiPluginComponentType compType); 00035 typedef void (*DtRtiInitLrcMethod)(DtRtiAmbassadorBaseImplementor* imp); 00036 typedef void (*DtRtiInitRtiexecMethod)(DtRtiExec* exec); 00037 00038 class DT_DLL_LRC DtRtiPluginManager 00039 { 00040 public: 00041 DtRtiPluginManager( const char* dir ); 00042 virtual ~DtRtiPluginManager(); 00043 00045 virtual void load( const std::vector<MAKRti::DtString>& names, DtRtiPluginComponentType compType ); 00046 00048 virtual void load( const MAKRti::DtString& name, DtRtiPluginComponentType compType ); 00049 00051 virtual void start( DtRtiAmbassadorBaseImplementor* imp ); 00053 virtual void start( DtRtiExec* exec ); 00054 00055 protected: 00056 virtual void executePlugin( const char*, DtRtiPluginComponentType compType ); 00057 00058 protected: 00059 MAKRti::DtFilename myPluginDir; 00060 MAKRti::DtList myPlugins; 00061 }; 00062 00063 #endif //! DtRtiPluginManager_H_ 00064 #endif //! DT_NO_PLUGINS 00065