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

acstime.midl

Go to the documentation of this file.
00001 /* @(#) $Id: acstime.midl,v 1.1 2004/11/22 11:47:01 jibsen Exp $ 00002 * 00003 * Copyright (C) 2001 00004 * Associated Universities, Inc. Washington DC, USA. 00005 * 00006 * Produced for the ALMA project 00007 * 00008 * This library is free software; you can redistribute it and/or modify it it 00009 * under the terms of the GNU Library General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or (at your 00011 * option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful but WITHOUT 00014 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00015 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00016 * License for more details. 00017 * 00018 * You should have received a copy of the GNU Library General Public License 00019 * along with this library; if not, write to the Free Software Foundation, 00020 * Inc., 675 Massachusetts Ave, Cambridge, MA, 02139, USA. 00021 * 00022 * Correspondence concerning ALMA should be addressed as follows: 00023 * Internet email: alma-sw-admin@nrao.edu 00024 */ 00025 #ifndef ACSTIME_IDL 00026 #define ACSTIME_IDL 00027 00028 #include <baci.idl> 00029 #include "ACSTimeError.idl" 00030 00031 #pragma prefix "alma" 00032 00047 module acstime 00048 { 00052 const ACS::Time ACE_BEGIN = 122192928000000000; 00053 00057 const unsigned long STARTDATE = 577735; 00058 00062 const double EpochOriginInMJD = -100840.0; 00063 00067 const double EpochOriginInYears = 1582.793292; 00068 00077 enum TimeComparison 00078 { 00079 TCEqualTo, // values are equal 00080 TCLessThan, // this is less than comparee 00081 TCGreaterThan, // this is greater than comparee 00082 TCIndeterminate // comparison cannot be done 00083 }; 00084 00088 enum TimeSystem 00089 { 00090 TSArray, // array time 00091 TSTAI, // International Atomic Time (TAI) 00092 TSUTC // Universal Coordinate Time (UTC) 00093 }; 00094 00112 struct Epoch 00113 { 00114 ACS::Time value; 00115 }; 00116 00127 struct Duration 00128 { 00129 ACS::TimeInterval value; 00130 }; 00131 00142 interface TimeoutHandler : ACS::OffShoot 00143 { 00148 void handleTimeout(in Epoch time); 00149 }; 00150 00154 interface Timer : ACS::ACSComponent 00155 { 00189 long schedule(in TimeoutHandler handler, 00190 in Epoch start, 00191 in Duration period) 00192 raises(ACSTimeError::ArgErrorEx); 00193 00199 void cancel(in long id) 00200 raises(ACSTimeError::InvalidIDEx); 00201 }; 00202 00210 interface Clock : ACS::CharacteristicComponent 00211 { 00217 Duration getTimeInterval(in Epoch prevEpoch); 00218 00232 readonly attribute ACS::RWlong array2TAI; 00233 00247 readonly attribute ACS::RWlong TAI2UTC; 00248 00249 00254 readonly attribute ACS::ROuLongLong now; 00255 00256 //UTILITY METHODS 00264 Epoch fromISO8601(in TimeSystem ts, in string iso) 00265 raises (ACSTimeError::ArgErrorEx); 00266 00273 string toISO8601(in TimeSystem ts, in Epoch timeValue) 00274 raises (ACSTimeError::ArgErrorEx); 00275 }; 00276 }; 00277 #endif /* ! ACSTIME_IDL */

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