• 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 "cdbErrType.idl"
00038 
00039 #pragma prefix "cosylab.com"
00040 
00041 module CDB { 
00042 
00043         // sequences
00044         typedef sequence <string> stringSeq;
00045         typedef sequence <long> longSeq;
00046         typedef sequence <double> doubleSeq;
00047 
00052         interface DAO : ACS::OffShoot {
00053                 /*
00054                  * Give a long value for a specific property of the Node
00055                  */
00056                 long            get_long( in string propertyName )              raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00057                 /*
00058                  * Give a double value for a specific property of the Node
00059                  */
00060                 double          get_double( in string propertyName )    raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00061                 /*
00062                  * Give a string value for a specific property of the Node
00063                  */
00064                 string          get_string( in string propertyName )    raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00065                 string          get_field_data( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00066                 /*
00067                  * Give a string seq of the value of specific property of the Node
00068                 */
00069                 stringSeq       get_string_seq( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00070                 /*
00071                  * Give a long seq of the value of specific property of the Node
00072                  */
00073                 longSeq         get_long_seq( in string propertyName )  raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00074                 /*
00075                  * Give a double seq of the value of specific property of the Node
00076                  */
00077                 doubleSeq       get_double_seq( in string propertyName )raises (cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx);
00078 
00079                 void            destroy();
00080         };
00081         /*
00082          * Interface of the listener of changes of DAL
00083          */
00084         interface DALChangeListener : ACS::OffShoot {
00085                 /*
00086                  * Inform that the object is changed and reconnect/reload it
00087                  */
00088                 oneway void object_changed( in string curl );
00089         };
00090 
00094         interface DAL {
00098                 readonly attribute string configuration_name;
00099 
00103                 string  get_DAO( in string curl ) raises (cdbErrType::CDBRecordDoesNotExistEx,cdbErrType::CDBXMLErrorEx);
00107                 DAO get_DAO_Servant( in string curl )   raises (cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBXMLErrorEx);
00108                 oneway  void    shutdown();
00109 
00110                 //data change handling
00116                 long    add_change_listener(  in DALChangeListener listener );
00122                 void    listen_for_changes( in string curl, in long listenerID );
00127                 void    remove_change_listener( in long listenerID );
00128 
00129                 // listing
00135                 string  list_nodes( in string name );
00136 
00142                 string  list_daos( in string name );
00143         };
00144 
00148         interface WDAO : DAO {
00154                 void set_long(in string propertyName, in long value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00160                 void set_double(in string propertyName, in double value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00166                 void set_string(in string propertyName, in string value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00167                 void set_field_data(in string propertyName, in string value) raises(cdbErrType::WrongCDBDataTypeEx, cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00173                 void set_string_seq(in string propertyName, in stringSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00174                 void set_long_seq(in string propertyName, in longSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00180                 void set_double_seq(in string propertyName, in doubleSeq value) raises(cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBFieldIsReadOnlyEx);
00181         };
00182         
00186         interface WDAL : DAL {
00192                 WDAO get_WDAO_Servant(in string curl) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx, cdbErrType::CDBXMLErrorEx);
00198                 void add_node(in string curl, in string xml) raises(cdbErrType::CDBRecordAlreadyExistsEx, cdbErrType::CDBXMLErrorEx, cdbErrType::CDBExceptionEx);
00203                 void remove_node(in string curl) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx);
00209                 void set_DAO(in string curl, in string xml) raises(cdbErrType::CDBRecordDoesNotExistEx, cdbErrType::CDBFieldDoesNotExistEx, cdbErrType::CDBRecordIsReadOnlyEx, cdbErrType::CDBXMLErrorEx, cdbErrType::CDBExceptionEx);
00210         };
00211 
00212 };
00213 
00214 #endif /* _CDBDAL_IDL_ */

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