00001 #ifndef maciComponentStateManager_h 00002 #define maciComponentStateManager_h 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) European Southern Observatory, 2002 00006 * Copyright by ESO (in the framework of the ALMA collaboration) 00007 * and Cosylab 2002, All rights reserved 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Lesser General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public 00020 * License along with this library; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 * 00023 * 00024 * "@(#) $Id: maciComponentStateManager.h,v 1.4 2008/10/09 07:05:37 cparedes Exp $" 00025 * 00026 * who when what 00027 * -------- -------- ---------------------------------------------- 00028 * acaproni 2005-04-06 created 00029 */ 00030 00031 #include <acsComponentStateManager.h> 00032 #include <Functor_String.h> 00033 00034 #include <acsErrTypeLifeCycle.h> 00035 00036 namespace maci { 00037 00042 class MACIComponentStateManager: public ComponentStateManager 00043 { 00044 public: 00045 00049 MACIComponentStateManager(ACE_CString& compName); 00050 00054 virtual ~MACIComponentStateManager() { } 00055 00061 virtual ACS::ComponentStates getCurrentState(); 00062 00070 virtual void setState(ACS::ComponentStates newState); 00071 00078 virtual ACE_CString getName(); 00079 00080 private: 00081 00093 bool checkTransition(ACS::ComponentStates candidateState); 00094 00095 00102 ACE_CString stateToString(ACS::ComponentStates state); 00103 00104 private: 00106 ACS::ComponentStates componentState_m; 00107 00109 ACE_CString componentName_m; 00110 }; 00111 }; 00112 00113 #endif // maciComponentStateManager_h