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

AlarmSystem.idl

Go to the documentation of this file.
00001 /*
00002  *    ALMA - Atacama Large Millimiter Array
00003  *    (c) European Southern Observatory, 2002
00004  *    Copyright by ESO (in the framework of the ALMA collaboration),
00005  *    All rights reserved
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, 
00020  *    MA 02111-1307  USA
00021  */
00022 
00023 #ifndef _CERNALARMSERVICE_IDL_
00024 #define _CERNALARMSERVICE_IDL_
00025 
00026 #include <CosProperty.idl>
00027 #include <AcsAlarmSystem.idl>
00028 
00029 #pragma prefix "alma"
00030 
00031 module alarmsystem
00032 {
00033         /*
00034          * ALARM SYSTEM DEFINITIONS
00035          */
00036         
00037         struct Category
00038         {
00039                 long categoryId;
00040                 string name;
00041                 string description;
00042                 string path;
00043                 boolean leaf;
00044         };
00045                 
00046         typedef sequence<Category> CategorySequence;
00047 
00048 
00049         struct ResponsiblePerson
00050         {
00051                 long responsibleId;
00052                 string firstName;
00053                 string familyName;
00054                 string eMail;
00055                 string gsmNumber;
00056                 string phoneNumber;
00057         };
00058 
00059         typedef sequence<ResponsiblePerson> ResponsiblePersonSequence;
00060 
00061 
00062         struct Source
00063         {
00064                 string sourceId;
00065                 string description;
00066                 ResponsiblePerson sourceResponsiblePerson;
00067         };      
00068 
00069         typedef sequence<Source> SourceSequence;
00070 
00071 
00072         struct Location
00073         {
00074                 string locationId;
00075                 string floor;
00076                 string room;
00077                 string position;
00078                 string mnemonic;
00079 
00080                 // Building
00081                 string buildingNb;
00082                 string site;
00083                 long zone;
00084                 string map;
00085         };
00086 
00087         struct Timestamp
00088         {
00089                 // milliseconds since January 1, 1970, 00:00:00 GMT
00090                 long long miliseconds;
00091                 long nanos;
00092         };
00093         
00094         struct Status
00095         {
00096                 boolean active;
00097                 boolean masked;
00098                 boolean reduced;
00099                 Timestamp sourceTimestamp;
00100                 string sourceHostname;
00101                 Timestamp userTimestamp;
00102                 Timestamp systemTimestamp;
00103                 CosPropertyService::Properties userProperties;
00104         };
00105         
00106         struct Alarm
00107         {
00108                 string alarmId;
00109                 Triplet alarmTriplet;
00110                 string systemName;
00111                 string identifier;
00112                 string problemDescription;
00113                 long priority;
00114                 string cause;
00115                 string action;
00116                 string consequence;
00117                 Source alarmSource;
00118                 string helpURL;
00119                 string piquetGSM;
00120                 string piquetEmail;
00121                 ResponsiblePerson alarmResponsiblePerson;
00122                 Location alarmLocation;
00123                 CategorySequence categories;
00124                 Status alarmStatus;
00125                 boolean instant;
00126                 boolean nodeParent;
00127                 boolean multiplicityParent;
00128                 boolean nodeChild;
00129                 boolean multiplicityChild;
00130         };
00131         
00132         typedef sequence<Alarm> AlarmSequence;
00133 
00134 
00135 
00136         struct AlarmDefinition 
00137         {
00138                 string faultFamily;
00139                 string faultMember;
00140                 long faultCode;
00141                 string systemName;
00142                 string identifier;
00143                 string problemDescription;
00144                 long priority;
00145                 string cause;
00146                 string action;
00147                 string consequence;
00148                 boolean instant;
00149                 string helpURL;
00150                 string building;
00151                 string mnemonic;
00152                 string floor;
00153                 string room;
00154                 string position;
00155                 string sourceName;
00156                 long responsiblePersonId;
00157                 string piquetGSM;
00158                 string piquetEmail;
00159         };
00160         
00161         typedef sequence<AlarmDefinition> AlarmDefinitionSequence;
00162         
00163         struct CategoryDefinition
00164         {
00165                 string path;
00166                 string description;
00167         };
00168         
00169         typedef sequence<CategoryDefinition> CategoryDefinitionSequence;
00170         
00171         struct CategoryLink
00172         {
00173                 CategoryDefinition category;
00174                 AlarmDefinition alarm;
00175         };
00176         
00177         typedef sequence<CategoryLink> CategoryLinkSequence;
00178         
00179         struct MaintenanceMask 
00180         {
00181                 long long begin; // Number of millisec...
00182                 long long end; // Number of millisec...
00183         };
00184         
00185         struct ModeMask
00186         {
00187                 string machineMode;
00188         };
00189         
00190         struct MultiplicityThreshold
00191         {
00192                 AlarmDefinition parent;
00193                 long threshold;
00194         };
00195         
00196         typedef sequence<MultiplicityThreshold> MultiplicityThresholdSequence;
00197         
00198         struct ReductionLink
00199         {
00200                 AlarmDefinition parent;
00201                 AlarmDefinition child;
00202         };
00203         
00204         typedef sequence<ReductionLink> ReductionLinkSequence;
00205         
00206         struct ResponsiblePersonDefinition 
00207         {
00208                 long responsibleId;
00209                 string firstName;
00210                 string familyName;
00211                 string eMail;
00212                 string gsmNumber;
00213                 string phoneNumber;
00214                 string whoURL;
00215         };
00216         
00217         typedef sequence<ResponsiblePersonDefinition> ResponsiblePersonDefinitionSequence;
00218         
00219         struct SourceDefinition 
00220         {
00221                 string name;
00222                 string description;
00223                 long connectionTimeout;
00224                 long responsibleId;
00225                 string hostName;
00226         };
00227  
00228         typedef sequence<SourceDefinition> SourceDefinitionSequence;
00229 
00230         /*
00231          * ALARM SYSTEM EXCEPTIONS
00232          */
00233 
00234         exception LaserDefinitionException 
00235         {
00236         };
00237         
00238         exception LaserProcessingException
00239         {
00240         };
00241 
00242         /*
00243          * ALARM SYSTEM CORE SERVICE
00244          */
00245         interface CERNAlarmService: AlarmService
00246         {
00247                 typedef sequence<long> long_sequence;
00248                 
00249                 //
00250                 // Core Service
00251                 //
00252                 
00253                 AlarmSequence getActiveMultiplicityChildren(in string parentId);
00254                 AlarmSequence getActiveNodeChildren(in string parentId);
00255                 Alarm getAlarmById(in string id);
00256                 Alarm getAlarmByTriplet(in string ff, in string fm, in long fc);
00257                 AlarmSequence getAlarmsByCategory(in long categoryId);
00258                 AlarmSequence getAlarmsByPriority(in long priority);
00259                 AlarmSequence getAlarmsByResponsiblePerson(in long responsibleId);
00260                 AlarmSequence getAlarmsBySource(in string sourceId);
00261                 CategorySequence getCategories();
00262                 Category getCategoryByPath(in string path);
00263                 CategorySequence getCategoryChildren(in long nodeId);
00264                 Category getCategoryParent(in long nodeId);
00265                 string getCategoryRootTopic();
00266                 string getHeartbeatTopic();
00267                 long long getHeartbeatFrequency();
00268                 Category getCategoryTreeRoot();
00269                 string getClientRootTopic();
00270 
00271                 string getSearchRootTopic();
00272                 AlarmSequence getMultiplicityChildren(in string parentId);
00273                 AlarmSequence getMultiplicityParents(in string childId);
00274                 long getMultiplicityThreshold(in string parentId);
00275                 AlarmSequence getNodeChildren(in string parentId);
00276                 AlarmSequence getNodeParents(in string childId);
00277 
00278                 ResponsiblePersonSequence getResponsiblePersons();
00279                 SourceSequence getSources();
00280                 void select(in long_sequence categoryIds, in string client) raises (LaserProcessingException);
00281                 void search(in long_sequence categoryIds, in string sql, in string clientId);
00282                 void archiveSearch(in long_sequence categoryIds, in string sql, in string clientId);
00283         
00284                 //
00285                 // Alarm Console
00286                 //
00287                 
00288                 string createAdminUser(
00289                         in string name,
00290                         in string password      
00291                 ) raises (LaserDefinitionException);
00292                 string loginAdminUser(
00293                         in string name,
00294                         in string password      
00295                 );
00296                 void createCategory(
00297                         in string userId,
00298                         in CategoryDefinition definition
00299                 ) raises (LaserDefinitionException);
00300                 void createSource(
00301                         in string userId, 
00302                         in SourceDefinition definition
00303                 ) raises (LaserDefinitionException); 
00304                 void createAlarm(
00305                         in string userId, 
00306                         in AlarmDefinition definition
00307                 ) raises (LaserDefinitionException);
00308                 
00309         };
00310 };
00311 
00312 #endif
00313 

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