• Classes
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

acsdaemon.idl

Go to the documentation of this file.
00001 #ifndef _ACSDAEMON_IDL_
00002 #define _ACSDAEMON_IDL_
00003 
00004 /*******************************************************************************
00005 *    ALMA - Atacama Large Millimiter Array
00006 *
00007 *    (c) European Southern Observatory, 2002
00008 *    Copyright by ESO (in the framework of the ALMA collaboration)
00009 *    and Cosylab 2002, All rights reserved
00010 *
00011 *    This library is free software; you can redistribute it and/or
00012 *    modify it under the terms of the GNU Lesser General Public
00013 *    License as published by the Free Software Foundation; either
00014 *    version 2.1 of the License, or (at your option) any later version.
00015 *
00016 *    This library is distributed in the hope that it will be useful,
00017 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00018 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019 *    Lesser General Public License for more details.
00020 *
00021 *    You should have received a copy of the GNU Lesser General Public
00022 *    License along with this library; if not, write to the Free Software
00023 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00024 *
00025 * "@(#) $Id: acsdaemon.idl,v 1.21 2009/09/28 19:42:41 msekoran Exp $"
00026 *
00027 * who       when      what
00028 * --------  --------  ----------------------------------------------
00029 * msekoran 2006-06-21 created
00030 *
00031 * This file comes from module ACS/LGPL/CommonSoftware/acsdaemonidl
00032 */
00033 
00034 #include <acscommon.idl>
00035 #include <acscomponent.idl>
00036 #include <ACSErrTypeCommon.idl>
00037 #include <maciErrType.idl>
00038 #include <acsdaemonErrType.idl>
00039 
00040 #pragma prefix "alma"
00041 
00046 module acsdaemon 
00047 {
00051 
00059         interface DaemonCallback : ACS::OffShoot
00060         {
00064                 void done(in ACSErr::Completion comp);
00065 
00069                 void working(in ACSErr::Completion comp);
00070         };
00071 
00072 
00076         const string containerDaemonServiceName = "ACSContainerDaemon";
00077 
00078 
00084         interface ContainerDaemon
00085         {
00095         void start_container(
00096                         in string container_type, 
00097                         in string container_name, 
00098                         in short instance_number,
00099                         in ACS::stringSeq type_modifiers,
00100                         in string flags)
00101                                 raises (acsdaemonErrType::FailedToStartContainerEx, ACSErrTypeCommon::BadParameterEx);
00109         void stop_container(in string container_name, 
00110                         in short instance_number, 
00111                         in string flags) 
00112                                 raises (acsdaemonErrType::FailedToStopContainerEx, ACSErrTypeCommon::BadParameterEx);
00120         void shutdown() raises (maciErrType::NoPermissionEx);
00121         };
00122 
00123 
00127 
00131         const string servicesDaemonServiceName = "ACSServicesDaemon";
00132 
00139         const string systemNotificationServiceDefault = "NotifyEventChannelFactory";
00140 
00147         const string systemNotificationServiceLogging = "LoggingNotifyEventChannelFactory";
00148 
00155         const string systemNotificationServiceAlarms = "AlarmNotifyEventChannelFactory";
00156 
00163         const string systemNotificationServiceMonitorarchive = "ArchiveNotifyEventChannelFactory";
00164         
00170         typedef string services_definition_xml;
00171         
00172 
00177         interface DaemonSequenceCallback : ACS::OffShoot
00178         {
00182                 void done(in ACSErr::Completion comp);
00183 
00187                 void working(in string service, in string host, in short instance_number, in ACSErr::Completion comp);
00188         };
00189 
00190 
00199         interface ServiceDefinitionBuilder : ACS::OffShoot
00200         {
00204                 readonly attribute short acs_instance_number;
00205                 
00212                 void add_naming_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00213 
00221                 void add_notification_service(in string name, in string host) raises (ACSErrTypeCommon::BadParameterEx);
00222 
00231                 void add_xml_cdb(in string host, in boolean recovery, in string xml_cdb_dir) raises (ACSErrTypeCommon::BadParameterEx);
00232 
00241                 void add_manager(in string host, in string domain, in boolean recovery) raises (ACSErrTypeCommon::BadParameterEx);
00242 
00249                 void add_acs_log(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00250 
00258                 void add_logging_service(in string host, in string name) raises (ACSErrTypeCommon::BadParameterEx);
00259 
00271                 void add_interface_repository(in string host, in boolean load, in boolean wait_load) raises (ACSErrTypeCommon::BadParameterEx);
00272 
00287                 void add_services_definition(in services_definition_xml definition) raises (ACSErrTypeCommon::BadParameterEx);
00288                 
00298                 boolean is_valid(out string error_description);
00299 
00311                 services_definition_xml get_services_definition();
00312                 
00319                 void add_alarm_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00320 
00328                 void close();
00329                 
00330         };
00331 
00332         
00336         enum ServiceState { NOT_EXISTING, DEFUNCT, DEGRADED, RUNNING };
00337         
00341         interface ImpBase
00342         {
00347                 void set_manager_reference(in short instance_number, in string ref);
00348 
00356                 boolean ping();
00357 
00365                 oneway void shutdown();
00366         };
00367 
00368 
00369 
00373         interface NamingServiceSpell
00374         {
00383                 void start_naming_service(in DaemonCallback callback, in short instance_number) 
00384                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00385 
00394                 void stop_naming_service(in DaemonCallback callback, in short instance_number) 
00395                                 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00396         };
00397 
00401         interface NamingServiceImp : ImpBase, NamingServiceSpell
00402         {
00408                 ServiceState get_service_status(in short instance_number) 
00409                         raises (ACSErrTypeCommon::BadParameterEx);
00410         };
00411 
00412 
00416         interface NotificationServiceSpell
00417         {
00430                 void start_notification_service(in string name, in DaemonCallback callback, in short instance_number) 
00431                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00432 
00442                 void stop_notification_service(in string name, in DaemonCallback callback, in short instance_number) 
00443                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00444 
00445         };
00446 
00447 
00451         interface NotificationServiceImp : ImpBase, NotificationServiceSpell
00452         {
00459                 ServiceState get_service_status(in string name, in short instance_number) 
00460                         raises (ACSErrTypeCommon::BadParameterEx);
00461         };
00462 
00466         interface CDBSpell
00467         {
00468 
00483                 void start_xml_cdb(in DaemonCallback callback, in short instance_number, in boolean recovery, in string xml_cdb_dir) 
00484                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00485 
00494                 void stop_cdb(in DaemonCallback callback, in short instance_number) 
00495                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00496 
00497         };
00498 
00502         interface CDBImp : ImpBase, CDBSpell
00503         {
00509                 ServiceState get_service_status(in short instance_number) 
00510                         raises (ACSErrTypeCommon::BadParameterEx);
00511         };
00512 
00516         interface ManagerSpell
00517         {
00529                 void start_manager(in string domain, in DaemonCallback callback, in short instance_number, in boolean recovery)
00530                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00531 
00540                 void stop_manager(in string domain, in DaemonCallback callback, in short instance_number) 
00541                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00542 
00543         };
00544 
00548         interface ManagerImp : ImpBase, ManagerSpell
00549         {
00555                 ServiceState get_service_status(in short instance_number) 
00556                         raises (ACSErrTypeCommon::BadParameterEx);
00557         };
00558 
00559 
00563         interface ACSLogSpell
00564         {
00574                 void start_acs_log(in DaemonCallback callback, in short instance_number) 
00575                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00576 
00585                 void stop_acs_log(in DaemonCallback callback, in short instance_number) 
00586                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00587 
00588         };
00589 
00593         interface ACSLogImp : ImpBase, ACSLogSpell
00594         {
00600                 ServiceState get_service_status(in short instance_number) 
00601                         raises (ACSErrTypeCommon::BadParameterEx);
00602         };
00603 
00604 
00608         interface LoggingServiceSpell
00609         {
00619                 void start_logging_service(in string name, in DaemonCallback callback, in short instance_number) 
00620                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00621 
00631                 void stop_logging_service(in string name, in DaemonCallback callback, in short instance_number) 
00632                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00633 
00634         };
00635 
00639         interface LoggingServiceImp : ImpBase, LoggingServiceSpell
00640         {
00647                 ServiceState get_service_status(in string name, in short instance_number) 
00648                         raises (ACSErrTypeCommon::BadParameterEx);
00649         };
00650 
00654         interface InterfaceRepositorySpell
00655         {
00668                 void start_interface_repository(in boolean load, in boolean wait_load, in DaemonCallback callback, in short instance_number) 
00669                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00670 
00679                 void stop_interface_repository(in DaemonCallback callback, in short instance_number) 
00680                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00681 
00682         };
00683 
00687         interface InterfaceRepositoryImp : ImpBase, InterfaceRepositorySpell
00688         {
00694                 ServiceState get_service_status(in short instance_number) 
00695                         raises (ACSErrTypeCommon::BadParameterEx);
00696         };
00697 
00701         interface AlarmServiceSpell
00702         {
00711                 void start_alarm_service(in DaemonCallback callback, in short instance_number) 
00712                         raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00713 
00722                 void stop_alarm_service(in DaemonCallback callback, in short instance_number) 
00723                                 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00724         };
00725 
00729         interface AlarmServiceImp : ImpBase, AlarmServiceSpell
00730         {
00736                 ServiceState get_service_status(in short instance_number) 
00737                         raises (ACSErrTypeCommon::BadParameterEx);
00738         };
00739 
00774         interface ServicesDaemon :
00775                 NamingServiceSpell, NotificationServiceSpell, CDBSpell,
00776                 ManagerSpell, ACSLogSpell, LoggingServiceSpell, InterfaceRepositorySpell, AlarmServiceSpell
00777         {
00790                 ServiceDefinitionBuilder create_service_definition_builder(in short instance_number)
00791                         raises (ACSErrTypeCommon::BadParameterEx, ACSErrTypeCommon::NoResourcesEx);
00792                         
00813                 void start_services(in services_definition_xml definition, in boolean reuse_services, in DaemonSequenceCallback callback) 
00814                         raises (ACSErrTypeCommon::BadParameterEx);
00815 
00830                 void stop_services(in services_definition_xml definition, in DaemonSequenceCallback callback) 
00831                         raises (ACSErrTypeCommon::BadParameterEx);
00832 
00842                 void start_acs( 
00843                                 in DaemonSequenceCallback callback,
00844                                 in short instance_number, 
00845                                 in string flags)
00846                         raises (ACSErrTypeCommon::BadParameterEx);
00847 
00857                 void stop_acs(
00858                                 in DaemonSequenceCallback callback,
00859                                 in short instance_number, 
00860                                 in string flags)
00861                         raises (ACSErrTypeCommon::BadParameterEx);
00862 
00872                 string status_acs(in short instance_number)
00873                         raises (acsdaemonErrType::FailedToGetAcsStatusEx);
00874 
00882                 void shutdown() raises (maciErrType::NoPermissionEx);
00883 
00888                 void set_manager_reference(in short instance_number, in string ref);
00889 
00890         };
00891 
00892 };
00893 
00894 #endif

Generated on Thu Jan 12 2012 23:13:14 for ACS-10.0 IDL interfaces by  doxygen 1.7.0