Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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 _ALARMSERVICE_IDL_ 00024 #define _ALARMSERVICE_IDL_ 00025 00026 #include <acscomponent.idl> 00027 #include <CosProperty.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 Triplet 00073 { 00074 string faultFamily; 00075 string faultMember; 00076 long faultCode; 00077 }; 00078 00079 struct Location 00080 { 00081 string locationId; 00082 string floor; 00083 string room; 00084 string position; 00085 string mnemonic; 00086 00087 // Building 00088 string buildingNb; 00089 string site; 00090 long zone; 00091 string map; 00092 }; 00093 00094 struct Timestamp 00095 { 00096 // milliseconds since January 1, 1970, 00:00:00 GMT 00097 long long miliseconds; 00098 long nanos; 00099 }; 00100 00101 struct Status 00102 { 00103 boolean active; 00104 boolean masked; 00105 boolean reduced; 00106 Timestamp sourceTimestamp; 00107 string sourceHostname; 00108 Timestamp userTimestamp; 00109 Timestamp systemTimestamp; 00110 CosPropertyService::Properties userProperties; 00111 }; 00112 00113 struct Alarm 00114 { 00115 string alarmId; 00116 Triplet alarmTriplet; 00117 string systemName; 00118 string identifier; 00119 string problemDescription; 00120 long priority; 00121 string cause; 00122 string action; 00123 string consequence; 00124 Source alarmSource; 00125 string helpURL; 00126 string piquetGSM; 00127 string piquetEmail; 00128 ResponsiblePerson alarmResponsiblePerson; 00129 Location alarmLocation; 00130 CategorySequence categories; 00131 Status alarmStatus; 00132 boolean instant; 00133 boolean nodeParent; 00134 boolean multiplicityParent; 00135 boolean nodeChild; 00136 boolean multiplicityChild; 00137 }; 00138 00139 typedef sequence<Alarm> AlarmSequence; 00140 00141 00142 00143 struct AlarmDefinition 00144 { 00145 string faultFamily; 00146 string faultMember; 00147 long faultCode; 00148 string systemName; 00149 string identifier; 00150 string problemDescription; 00151 long priority; 00152 string cause; 00153 string action; 00154 string consequence; 00155 boolean instant; 00156 string helpURL; 00157 string building; 00158 string mnemonic; 00159 string floor; 00160 string room; 00161 string position; 00162 string sourceName; 00163 long responsiblePersonId; 00164 string piquetGSM; 00165 string piquetEmail; 00166 }; 00167 00168 typedef sequence<AlarmDefinition> AlarmDefinitionSequence; 00169 00170 struct CategoryDefinition 00171 { 00172 string path; 00173 string description; 00174 }; 00175 00176 typedef sequence<CategoryDefinition> CategoryDefinitionSequence; 00177 00178 struct CategoryLink 00179 { 00180 CategoryDefinition category; 00181 AlarmDefinition alarm; 00182 }; 00183 00184 typedef sequence<CategoryLink> CategoryLinkSequence; 00185 00186 struct MaintenanceMask 00187 { 00188 long long begin; // Number of millisec... 00189 long long end; // Number of millisec... 00190 }; 00191 00192 struct ModeMask 00193 { 00194 string machineMode; 00195 }; 00196 00197 struct MultiplicityThreshold 00198 { 00199 AlarmDefinition parent; 00200 long threshold; 00201 }; 00202 00203 typedef sequence<MultiplicityThreshold> MultiplicityThresholdSequence; 00204 00205 struct ReductionLink 00206 { 00207 AlarmDefinition parent; 00208 AlarmDefinition child; 00209 }; 00210 00211 typedef sequence<ReductionLink> ReductionLinkSequence; 00212 00213 struct ResponsiblePersonDefinition 00214 { 00215 long responsibleId; 00216 string firstName; 00217 string familyName; 00218 string eMail; 00219 string gsmNumber; 00220 string phoneNumber; 00221 string whoURL; 00222 }; 00223 00224 typedef sequence<ResponsiblePersonDefinition> ResponsiblePersonDefinitionSequence; 00225 00226 struct SourceDefinition 00227 { 00228 string name; 00229 string description; 00230 long connectionTimeout; 00231 long responsibleId; 00232 string hostName; 00233 }; 00234 00235 typedef sequence<SourceDefinition> SourceDefinitionSequence; 00236 00237 /* 00238 * ALARM SYSTEM EXCEPTIONS 00239 */ 00240 00241 exception LaserDefinitionException 00242 { 00243 }; 00244 00245 exception LaserProcessingException 00246 { 00247 }; 00248 00249 /* 00250 * ALARM SYSTEM CORE SERVICE 00251 */ 00252 00253 interface AlarmService : ACS::ACSComponent 00254 { 00255 typedef sequence<long> long_sequence; 00256 00257 // 00258 // Core Service 00259 // 00260 00261 AlarmSequence getActiveMultiplicityChildren(in string parentId); 00262 AlarmSequence getActiveNodeChildren(in string parentId); 00263 Alarm getAlarmById(in string id); 00264 Alarm getAlarmByTriplet(in string ff, in string fm, in long fc); 00265 AlarmSequence getAlarmsByCategory(in long categoryId); 00266 AlarmSequence getAlarmsByPriority(in long priority); 00267 AlarmSequence getAlarmsByResponsiblePerson(in long responsibleId); 00268 AlarmSequence getAlarmsBySource(in string sourceId); 00269 CategorySequence getCategories(); 00270 Category getCategoryByPath(in string path); 00271 CategorySequence getCategoryChildren(in long nodeId); 00272 Category getCategoryParent(in long nodeId); 00273 string getCategoryRootTopic(); 00274 string getHeartbeatTopic(); 00275 long long getHeartbeatFrequency(); 00276 Category getCategoryTreeRoot(); 00277 string getClientRootTopic(); 00278 00279 string getSearchRootTopic(); 00280 AlarmSequence getMultiplicityChildren(in string parentId); 00281 AlarmSequence getMultiplicityParents(in string childId); 00282 long getMultiplicityThreshold(in string parentId); 00283 AlarmSequence getNodeChildren(in string parentId); 00284 AlarmSequence getNodeParents(in string childId); 00285 00286 ResponsiblePersonSequence getResponsiblePersons(); 00287 SourceSequence getSources(); 00288 void select(in long_sequence categoryIds, in string client) raises (LaserProcessingException); 00289 void search(in long_sequence categoryIds, in string sql, in string clientId); 00290 void archiveSearch(in long_sequence categoryIds, in string sql, in string clientId); 00291 00292 // 00293 // Alarm Console 00294 // 00295 00296 string createAdminUser( 00297 in string name, 00298 in string password 00299 ) raises (LaserDefinitionException); 00300 string loginAdminUser( 00301 in string name, 00302 in string password 00303 ); 00304 void createCategory( 00305 in string userId, 00306 in CategoryDefinition definition 00307 ) raises (LaserDefinitionException); 00308 void createSource( 00309 in string userId, 00310 in SourceDefinition definition 00311 ) raises (LaserDefinitionException); 00312 void createAlarm( 00313 in string userId, 00314 in AlarmDefinition definition 00315 ) raises (LaserDefinitionException); 00316 }; 00317 00318 interface TestAlarmSource : ACS::ACSComponent 00319 { 00320 void set_count(in long count); 00321 00322 void active_alarm( 00323 in string fault_family, 00324 in string fault_member, 00325 in long fault_code 00326 ); 00327 00328 void terminate_alarm( 00329 in string fault_family, 00330 in string fault_member, 00331 in long fault_code 00332 ); 00333 00334 void instant_alarm( 00335 in string fault_family, 00336 in string fault_member, 00337 in long fault_code 00338 ); 00339 00340 void change_alarm( 00341 in string fault_family, 00342 in string fault_member, 00343 in long fault_code 00344 ); 00345 }; 00346 }; 00347 00348 #endif

Generated on Thu Apr 30 02:26:27 2009 for ACS IDL interfaces by doxygen 1.3.8