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

baciRWcommonImpl_T.h

Go to the documentation of this file.
00001 #ifndef _baciRWcommonImpl_T_H_ 00002 #define _baciRWcommonImpl_T_H_ 00003 00004 /******************************************************************* 00005 * ALMA - Atacama Large Millimiter Array 00006 * (c) European Southern Observatory, 2003 00007 * 00008 *This library is free software; you can redistribute it and/or 00009 *modify it under the terms of the GNU Lesser General Public 00010 *License as published by the Free Software Foundation; either 00011 *version 2.1 of the License, or (at your option) any later version. 00012 * 00013 *This library is distributed in the hope that it will be useful, 00014 *but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 *Lesser General Public License for more details. 00017 * 00018 *You should have received a copy of the GNU Lesser General Public 00019 *License along with this library; if not, write to the Free Software 00020 *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 * 00022 * "@(#) $Id: baciRWcommonImpl_T.h,v 1.26 2008/10/01 02:26:45 cparedes Exp $" 00023 * 00024 * who when what 00025 * -------- ---------- ---------------------------------------------- 00026 * bjeram 2003/02/12 created 00027 */ 00028 00034 #ifndef __cplusplus 00035 #error This is a C++ include file and cannot be used from plain C 00036 #endif 00037 00038 #include <baciPcommonImpl_T.h> 00039 00043 #define ACS_RW_C ACS_P_C, class TIN 00044 00047 #define ACS_RW_TL ACS_P_TL, TIN 00048 00051 #define ACS_RW_T(T, TC) ACS_P_T(T, TC), POA_ACS::RW##T, TC 00052 //TC, ACS::CB##T, ACS::T##Seq, ACS::T##Seq_out, ACS::Monitor##T, Monitor##T, TC, TC, TC, TC, POA_ACS::RW##T 00053 00057 #define GET_ACTION 0 00058 00061 #define SET_ACTION 1 00062 00063 namespace baci { 00064 00070 template <ACS_RW_C> 00071 class baci_EXPORT RWcommonImpl : public virtual POA_SK, 00072 public PcommonImpl<ACS_P_TL> 00073 { 00074 00075 00076 public: 00082 RWcommonImpl(const ACE_CString& name, BACIComponent *component_p, DevIO<TM> *devIO/*=0*/, bool flagdeldevIO/*=false*/); 00083 00088 RWcommonImpl(bool init, const ACE_CString& name, BACIComponent *component_p, DevIO<TM> *devIO, bool flagdeldevIO); 00089 00093 virtual ~RWcommonImpl(); 00094 00095 /*** 00096 * Implementation of async. set_value method 00097 */ 00098 virtual ActionRequest setValueAction(BACIComponent* component_p, 00099 int callbackID, 00100 const CBDescIn& descIn, 00101 BACIValue* value, 00102 Completion& completion, 00103 CBDescOut& descOut); 00104 00105 /* --------------- [ Action implementator interface ] -------------- */ 00106 00124 virtual ActionRequest invokeAction(int function, 00125 BACIComponent* component_p, 00126 const int &callbackID, 00127 const CBDescIn& descIn, 00128 BACIValue* value, 00129 Completion& completion, 00130 CBDescOut& descOut); 00131 00132 /* ----------------- [ Other interface ] ----------------- */ 00133 00142 virtual void setValue(BACIProperty* property, 00143 BACIValue* value, 00144 Completion &completion, 00145 CBDescOut& descOut); 00146 00147 /* ----------------------------------------------------------------- */ 00148 /* ---------------------- [ CORBA interface ] ---------------------- */ 00149 /* ----------------------------------------------------------------- */ 00150 00151 /* -------------------- [ RW (common) interface ] -------------------- */ 00152 00153 virtual ACSErr::Completion * set_sync ( 00154 TIN value 00155 ); 00156 00157 virtual void set_async ( 00158 TIN value, 00159 ACS::CBvoid_ptr cb, 00160 const ACS::CBDescIn & desc 00161 ); 00162 00163 virtual void set_nonblocking ( 00164 TIN value 00165 00166 ); 00167 00168 }; 00169 00170 // #include "baciRWcommonImpl_T.i" 00171 00172 }; 00173 00174 #endif /* baciRWcommonImpl */ 00175 00176 00177 00178 00179 00180

Generated on Thu Apr 30 02:30:50 2009 for ACS C++ API by doxygen 1.3.8