00001 #ifndef _ACSERR_IDL_ 00002 #define _ACSERR_IDL_ 00003 00004 /******************************************************************************* 00005 * ALMA - Atacama Large Millimiter Array 00006 * (c) European Southern Observatory, 2002 00007 * Copyright by ESO (in the framework of the ALMA collaboration) 00008 * and Cosylab 2002, All rights reserved 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 2.1 of the License, or (at your option) any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with this library; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 */ 00024 00025 #pragma prefix "alma" 00026 00027 module ACSErr { 00028 00029 // it does not work with JacORB 00030 // const ::ACSErrTypeOK::ACSErrTypeOK_ ACSErrOK = ::ACSErrTypeOK::ACSErrOK; 00031 00032 struct NameValue { 00033 string name; 00034 string value; // any ? -> use than Property from Property Service 00035 }; 00036 00037 typedef sequence<NameValue> NameValueSeq; 00038 00039 typedef unsigned long CompletionType; 00040 typedef unsigned long CompletionCode; 00041 00042 typedef CompletionType ACSErrType; 00043 typedef CompletionCode ErrorCode; 00044 00049 enum Severity { 00050 Error, 00051 Critical, 00052 Alert, 00053 Emergency 00054 }; 00055 00056 struct ErrorTrace; 00057 typedef sequence<ErrorTrace/*, 1*/> ErrorLinkedList; 00058 00059 00064 struct ErrorTrace { 00065 00069 string file; 00070 00074 long lineNum; 00075 00079 string routine; 00080 00084 string host; 00085 00089 string process; 00090 00094 string thread; 00095 00099 unsigned long long timeStamp; 00100 00104 string sourceObject; 00105 00109 ACSErr::ACSErrType errorType; 00110 00114 ACSErr::ErrorCode errorCode; 00115 00119 ACSErr::Severity severity; 00120 00124 string shortDescription; 00125 00129 NameValueSeq data; 00130 00134 ErrorLinkedList previousError; 00135 }; 00136 00137 struct Completion { 00138 00142 unsigned long long timeStamp; 00143 00147 ACSErr::CompletionType type; 00148 00152 ACSErr::CompletionCode code; 00153 00157 ErrorLinkedList previousError; 00158 }; 00159 00163 typedef sequence <Completion> CompletionSeq; 00164 00168 exception ACSException { 00169 ErrorTrace error; 00170 }; 00171 00172 exception ACSbaseEx { 00173 ErrorTrace error; 00174 }; 00175 }; 00176 00177 #endif