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

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 Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0