#ifndef _ACSCOMPONENT_IDL_
#define _ACSCOMPONENT_IDL_
/*******************************************************************************
* ALMA - Atacama Large Millimiter Array
*
* (c) European Southern Observatory, 2002
* Copyright by ESO (in the framework of the ALMA collaboration)
* and Cosylab 2002, All rights reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* "@(#) $Id: acscomponent.idl,v 1.7 2011/03/17 10:25:30 hsommer Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* oat 28/08/03 created
*/
#pragma prefix "alma"
module ACS {
/**
* Component state enumeration.
* Component starts it's lifecycle in state NEW
.
* During objects life it cycles though following states in prescribed order,
* possibly skipping the nasty ones:
*
COMPSTATE_NEW
COMPSTATE_INITIALIZING
COMPSTATE_INITIALIZED
COMPSTATE_OPERATIONAL
COMPSTATE_ERROR
COMPSTATE_DESTROYING
COMPSTATE_ABORTING
COMPSTATE_DEFUNCT
COMPSTATE_ABORTING
COMPSTATE_DEFUNCT
COMPSTATE_ERROR
COMPSTATE_DESTROYING
or COMPSTATE_ERROR
states.
*/
enum ComponentStates {
COMPSTATE_NEW,
COMPSTATE_INITIALIZING,
COMPSTATE_INITIALIZED,
COMPSTATE_OPERATIONAL,
COMPSTATE_ERROR,
COMPSTATE_DESTROYING,
COMPSTATE_ABORTING,
COMPSTATE_DEFUNCT,
COMPSTATE_UNKNOWN
};
/** ACSComponent is the base interface which every ACS component derives from.
* It defines components without characteristic access in the CDB (dynamic
* components.
*/
interface ACSComponent {
/** Component name */
readonly attribute string name;
/** Component status */
readonly attribute ComponentStates componentState;
};
};
#endif /* _ACSCOMPONENT_IDL_ */