00001 #ifndef _STATIC_CONTAINER_H 00002 #define _STATIC_CONTAINER_H 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) European Southern Observatory, 2004 00006 * 00007 *This library is free software; you can redistribute it and/or 00008 *modify it under the terms of the GNU Lesser General Public 00009 *License as published by the Free Software Foundation; either 00010 *version 2.1 of the License, or (at your option) any later version. 00011 * 00012 *This library is distributed in the hope that it will be useful, 00013 *but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 *Lesser General Public License for more details. 00016 * 00017 *You should have received a copy of the GNU Lesser General Public 00018 *License along with this library; if not, write to the Free Software 00019 *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * "@(#) $Id: taskStaticContainer.h,v 1.8 2008/07/27 15:08:42 cparedes Exp $" 00022 * 00023 * who when what 00024 * -------- -------- ---------------------------------------------- 00025 * bjeram 2004-09-27 created 00026 */ 00027 00028 /************************************************************************ 00029 * 00030 *---------------------------------------------------------------------- 00031 */ 00032 00033 #ifndef __cplusplus 00034 #error This is a C++ include file and cannot be used from plain C 00035 #endif 00036 00037 #include <maciContainerImpl.h> 00038 #include <maciLibraryManager.h> 00039 #include <acserr.h> 00040 #include <ARGV.h> 00041 00042 class StaticContainer 00043 { 00044 public: 00045 StaticContainer(); 00046 00047 void init(int argc, char **argv, const char *containerName=0 ); 00048 void done(); 00049 00050 CORBA::Object_ptr createComponentWithName(const char *name); 00051 00052 CORBA::Object_ptr createComponent(const char *libname); 00053 00054 CORBA::Object_ptr createComponent(const char* name, const char *libname); 00055 00056 void destroyComponent(CORBA::Object_ptr obj); 00057 00058 void executeRunCmd(const char* param); // this should not be part of generic static container 00059 protected: 00060 00061 void initCORBA(int &argc, char **argv); 00062 void doneCORBA(); 00063 00064 maci::ContainerImpl container_m; 00065 maci::LibraryManager dllmgr_m; 00066 00067 LoggingProxy *m_logger; 00068 bool services_m; 00069 00070 CORBA::ORB_var orb_m; 00071 PortableServer::POAManager_var poaManager_m; 00072 PortableServer::POA_var poaRoot_m; 00073 PortableServer::POA_var componentPOA_m; 00074 00075 // ACE_CString libName; 00076 ACE_CString containerName_m; 00077 ACE_CString componentName_m; 00078 00079 ACE_ARGV containerArgv; 00080 };//class StaticContainer 00081 00082 00083 #endif