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

bulkDataSendRecvImpl.h

Go to the documentation of this file.
00001 #ifndef _BULKDATA_SENDRECV_IMPL_H
00002 #define _BULKDATA_SENDRECV_IMPL_H
00003 /*******************************************************************************
00004  *    ALMA - Atacama Large Millimiter Array
00005  *    (c) European Southern Observatory, 2002
00006  *    Copyright by ESO (in the framework of the ALMA collaboration)
00007  *    and Cosylab 2002, All rights reserved
00008  *
00009  *    This library is free software; you can redistribute it and/or
00010  *    modify it under the terms of the GNU Lesser General Public
00011  *    License as published by the Free Software Foundation; either
00012  *    version 2.1 of the License, or (at your option) any later version.
00013  *
00014  *    This library is distributed in the hope that it will be useful,
00015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  *    Lesser General Public License for more details.
00018  *
00019  *    You should have received a copy of the GNU Lesser General Public
00020  *    License along with this library; if not, write to the Free Software
00021  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00022  *
00023  *
00024  * "@(#)"
00025  *
00026  * who       when      what
00027  * --------  --------  ----------------------------------------------
00028  * oat       28/01/05  created 
00029  */
00030 
00031 /************************************************************************
00032  *
00033  *----------------------------------------------------------------------
00034  */
00035 
00036 #include <baci.h>
00037 #include <baciCharacteristicComponentImpl.h>
00038 #include <maciHelper.h>
00039 #include <maciContainerServices.h>
00040 
00041 #include "bulkDataSendRecvS.h"
00042 
00043 #include "bulkDataReceiverC.h"
00044 
00045 #include "bulkDataReceiver.h"
00046 #include "bulkDataSender.h"
00047 
00048 #include "bulkDataSenderDefaultCb.h"
00049 
00050 #include "ACSBulkDataStatus.h"
00051 
00073 template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
00074 class BulkDataSendRecvImpl : public virtual baci::CharacteristicComponentImpl,
00075                              public POA_bulkdata::BulkDataSendRecv
00076 {    
00077   public:
00083     BulkDataSendRecvImpl(const ACE_CString& name,maci::ContainerServices* containerServices);
00084   
00088     virtual ~BulkDataSendRecvImpl();
00089   
00090 
00091     void cleanUp();
00092 
00093 
00094     /***************************** Sender part ****************************/
00095 
00096 
00106     virtual void connect(bulkdata::BulkDataReceiver_ptr receiverObj_p);
00107 
00111     virtual void disconnect();
00112 
00121     virtual void startSend();
00122 
00133     virtual void paceData();
00134 
00143     virtual void stopSend();
00144 
00145     /*************************** Receiver part **********************/
00146 
00158     virtual void openReceiver(); 
00159 
00163     bulkdata::BulkDataReceiverConfig * getReceiverConfig();
00164 
00168     virtual void closeReceiver();
00169 
00173     virtual ACSErr::Completion *getCbStatus(CORBA::ULong flowNumber) 
00174         {
00175             ACS_TRACE("BulkDataSendRecvImpl::getCbStatus");
00176 
00177             ACSBulkDataStatus::AVCbReadyCompletion *comp = new ACSBulkDataStatus::AVCbReadyCompletion();
00178             
00179             return comp->returnCompletion();
00180         }
00181 
00185     virtual void setTimeout(CORBA::ULong flowNumber, CORBA::ULong timeout)
00186         {
00187         }
00188 
00192     virtual void setRecvName(const char *recvName)
00193         {
00194         }
00195 
00199     virtual void subscribeNotification(ACS::CBvoid_ptr notifCb)
00200         {
00201         }
00202 
00203 
00204   private:
00205 
00206     AcsBulkdata::BulkDataSender<TSenderCallback> sender;
00207 
00208     AcsBulkdata::BulkDataReceiver<TReceiverCallback> receiver;
00209 
00210     maci::ContainerServices *containerServices_p;
00211 
00212     CDB::DAL_ptr dal_p;
00213 
00214     CDB::DAO_ptr dao_p;
00215 };
00216 
00217 
00218 #include "bulkDataSendRecvImpl.i"
00219 
00220 #endif /* _BULKDATA_SENDRECV_IMPL_H */

Generated on Thu Jul 8 2010 19:47:47 for ACS-9.0 C++ API by  doxygen 1.7.0