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

bulkDataSenderImpl.h

Go to the documentation of this file.
00001 #ifndef _BULKDATA_SENDER_IMPL_H
00002 #define _BULKDATA_SENDER_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 "bulkDataSenderS.h"
00042 #include "bulkDataReceiverC.h"
00043 
00044 #include "bulkDataSender.h"
00045 
00046 
00068 template<class TSenderCallback=BulkDataSenderDefaultCallback>
00069 class BulkDataSenderImpl : public baci::CharacteristicComponentImpl,
00070                            public virtual POA_bulkdata::BulkDataSender
00071 {    
00072   public:
00078     BulkDataSenderImpl(const ACE_CString& name,maci::ContainerServices* containerServices);
00079   
00083     virtual ~BulkDataSenderImpl();
00084   
00085 
00086     void cleanUp();
00087 
00097     virtual void connect(bulkdata::BulkDataReceiver_ptr receiverObj_p);
00098 
00102     virtual void disconnect();
00103 
00104 
00105     virtual AcsBulkdata::BulkDataSender<TSenderCallback> *getSender() 
00106         {
00107             return &sender;
00108         }
00109 
00110 
00119     virtual void startSend()  =0;
00120 
00131     virtual void paceData()  =0;
00132 
00141     virtual void stopSend() =0;
00142 
00143 
00144 
00145   protected:
00146 
00153   private:
00154 
00155     maci::ContainerServices *containerServices_p;
00156 
00157     AcsBulkdata::BulkDataSender<TSenderCallback> sender;
00158 
00159     bulkdata::BulkDataReceiver_ptr receiverObj_m;
00160 };
00161 
00162 typedef BulkDataSenderImpl<> BulkDataSenderDefaultImpl;
00163 
00164 #include "bulkDataSenderImpl.i"
00165 
00166 #endif /* _BULKDATA_SENDER_IMPL_H */

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0