00001 #ifndef _BULK_DATA_NT_DDS_H_ 00002 #define _BULK_DATA_NT_DDS_H_ 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) European Southern Observatory, 2011 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * "@(#) $Id: bulkDataNTDDS.h,v 1.9 2011/08/23 15:41:45 bjeram Exp $" 00022 * 00023 * who when what 00024 * -------- -------- ---------------------------------------------- 00025 * bjeram 2011-04-19 created 00026 */ 00027 00028 /************************************************************************ 00029 * 00030 *---------------------------------------------------------------------- 00031 */ 00032 00033 #ifndef __cplusplus 00034 #error This is a C++ include file and cannot be used from plain C 00035 #endif 00036 00037 //COREDX 00038 //#include "bulkDataNTTypeSupport.hh" 00039 00040 //RTI 00041 #ifndef RTI_UNIX 00042 #define RTI_UNIX 00043 #endif 00044 #ifndef RTI_LINUX 00045 #define RTI_LINUX 00046 #endif 00047 00048 00049 //DDS RTI generated 00050 #include "bulkDataNTDDS.h" 00051 #include "bulkDataNTSupport.h" 00052 00053 //DDS RTI library 00054 #include "ndds/ndds_cpp.h" 00055 #include "ndds/ndds_namespace_cpp.h" 00056 00057 #include <logging.h> 00058 #include <ACSErrTypeCommon.h> 00059 #include "ACS_DDS_Errors.h" 00060 #include "bulkDataNTConfiguration.h" 00061 00062 namespace AcsBulkdata 00063 { 00064 00068 //TBD should be renamed to Stream 00069 class BulkDataNTDDS 00070 { 00071 public: 00072 00076 BulkDataNTDDS(DDS::DomainParticipant*, const DDSConfiguration &ddsCfg); 00077 00081 virtual ~BulkDataNTDDS(); 00082 00083 00084 DDS::Topic* createDDSTopic(const char* topicName); // should return topic 00085 00086 protected: 00087 /* 00088 void createDDSFactory(); 00089 void createDDSParticipant(); 00090 00091 */ 00092 // DDS::Publisher* createDDSPublisher(); // should return publisher ? 00093 //should return generic writer and have another method in Base class that narrows 00094 // ACSBulkData::BulkDataNTFrameDataWriter* createDDSWriter(DDS::Publisher* pub, DDS::Topic *topic); 00095 00096 00097 // DDS::DomainParticipantFactory *factory; 00098 DDS::DomainParticipant* participant_m; 00099 00100 const DDSConfiguration ddsCfg_m; 00101 00102 // DDS::Publisher* pub; 00103 // DDS::Topic* topic; // should be an array just temporary 00104 // + we need array of data writers 00105 // so for each flow there is at least a topic + writer + publisher(?) 00106 // ACSBulkData::BulkDataNTFrameDataWriter *dw; 00107 00109 BulkDataNTDDS(); 00111 void operator=(const BulkDataNTDDS&); 00113 BulkDataNTDDS(const BulkDataNTDDS&); 00114 };//class BulkDataNTDDS 00115 00116 }; 00117 00118 #endif