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

cdbDAL.idl

Go to the documentation of this file.
00001 #ifndef _CDBDAL_IDL_
00002 #define _CDBDAL_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 * "@(#) $Id: cdbDAL.idl,v 1.8 2011/03/16 15:51:39 bjeram Exp $"
00026 *
00027 * who       when      what
00028 * --------  --------  ----------------------------------------------
00029 * almamgr 2003-08-29 Replaced acsutil.idl with acscomponent.idl
00030 * gchiozzi 2003-05-15 jDAL interface taken out in separate IDL file
00031 * gchiozzi 2003-05-15 DAO extends ACS:OffShoot interface
00032 * gchiozzi 2003-05-15 Added include of acsutil.idl
00033 */
00034 
00035 
00036 #include <acscommon.idl>
00037 #include <logging_idl.idl>
00038 #include "cdbErrType.idl"
00039 
00040 #pragma prefix "cosylab.com"
00041 
00042 module CDB { 
00043 
00044         // sequences
00045         typedef sequence <string> stringSeq;
00046         typedef sequence <long> longSeq;
00047         typedef sequence <double> doubleSeq;
00048 
00053         interface DAO : ACS::OffShoot {
00054                 /*
00055                  * Give a long value for a specific property of the Node
00056                  */
00057                 long            get_long( in string propertyName )              raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00058                 /*
00059                  * Give a double value for a specific property of the Node
00060                  */
00061                 double          get_double( in string propertyName )    raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00062                 /*
00063                  * Give a string value for a specific property of the Node
00064                  */
00065                 string          get_string( in string propertyName )    raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00066                 string          get_field_data( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00067                 /*
00068                  * Give a string seq of the value of specific property of the Node
00069                 */
00070                 stringSeq       get_string_seq( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00071                 /*
00072                  * Give a long seq of the value of specific property of the Node
00073                  */
00074                 longSeq         get_long_seq( in string propertyName )  raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00075                 /*
00076                  * Give a double seq of the value of specific property of the Node
00077                  */
00078                 doubleSeq       get_double_seq( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00079 
00080                 void            destroy();
00081         };
00082         /*
00083          * Interface of the listener of changes of DAL
00084          */
00085         interface DALChangeListener : ACS::OffShoot {
00086                 /*
00087                  * Inform that the object is changed and reconnect/reload it
00088                  */
00089                 oneway void object_changed( in string curl );
00090         };
00091 
00095         interface DAL : Logging::LoggingConfigurable {
00099                 readonly attribute string configuration_name;
00100 
00104                 string  get_DAO( in string curl ) raises (cdbErrType::CDBRecordDoesNotExistEx,cdbErrType::CDBXMLErrorEx);
00108                 DAO get_DAO_Servant( in string curl )   raises (cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBXMLErrorEx);
00109                 oneway  void    shutdown();
00110 
00111                 //data change handling
00117                 long    add_change_listener(  in DALChangeListener listener );
00123                 void    listen_for_changes( in string curl, in long listenerID );
00128                 void    remove_change_listener( in long listenerID );
00129 
00130                 // listing
00136                 string  list_nodes( in string name );
00137 
00143                 string  list_daos( in string name );
00144         };
00145 
00149         interface WDAO : DAO {
00155                 void set_long(in string propertyName, in long value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00161                 void set_double(in string propertyName, in double value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00167                 void set_string(in string propertyName, in string value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00168                 void set_field_data(in string propertyName, in string value) raises(cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00174                 void set_string_seq(in string propertyName, in stringSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00175                 void set_long_seq(in string propertyName, in longSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00181                 void set_double_seq(in string propertyName, in doubleSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00182         };
00183         
00187         interface WDAL : DAL {
00193                 WDAO get_WDAO_Servant(in string curl) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx, cdbErrType::CDBXMLErrorEx);
00199                 void add_node(in string curl, in string xml) raises(cdbErrType::CDBRecordAlreadyExistsEx, cdbErrType::CDBXMLErrorEx, cdbErrType::CDBExceptionEx);
00204                 void remove_node(in string curl) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx);
00210                 void set_DAO(in string curl, in string xml) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx, cdbErrType::CDBXMLErrorEx, cdbErrType::CDBExceptionEx);
00211         };
00212 
00213 };
00214 
00215 #endif /* _CDBDAL_IDL_ */

Generated on Fri Apr 15 2016 15:13:14 for ACS-2016.4 IDL interfaces by  doxygen 1.7.0