Go to the documentation of this file.00001 #ifndef _BULK_DATA_NT_RECEIVER_STREAM_H_
00002 #define _BULK_DATA_NT_RECEIVER_STREAM_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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 #include "bulkDataNTStream.h"
00038 #include "bulkDataNTReceiverFlow.h"
00039 #include <map>
00040
00041 namespace AcsBulkdata
00042 {
00043
00044
00045
00046
00047 class BulkDataNTReceiverStreamBase : public BulkDataNTStream
00048 {
00049 public:
00050 BulkDataNTReceiverStreamBase(const char* streamName, const ReceiverStreamConfiguration &cfg):
00051 BulkDataNTStream(streamName, cfg), receiverName_m("DefaultReceiver") {}
00052
00053 BulkDataNTReceiverStreamBase( const char* receiverName, const char* streamName, const ReceiverStreamConfiguration &cfg):
00054 BulkDataNTStream(streamName, cfg), receiverName_m(receiverName){}
00055
00063 void setReceiverName(char * recvName) { receiverName_m = recvName; }
00064 void setReceiverName(const char * recvName) { receiverName_m = recvName; }
00065
00066 const char* getReceiverName() { return receiverName_m.c_str(); }
00067
00068 protected:
00069
00070 std::string receiverName_m;
00071
00072 };
00073
00074 template<class TReceiverCallback>
00075 class BulkDataNTReceiverStream : public BulkDataNTReceiverStreamBase
00076
00077
00078
00079 {
00080 public:
00081
00085 BulkDataNTReceiverStream(const char* streamName, const ReceiverStreamConfiguration &cfg=ReceiverStreamConfiguration());
00086
00087 BulkDataNTReceiverStream(
00088 const char* receiverName,
00089 const char* streamName,
00090 const ReceiverStreamConfiguration &cfg=ReceiverStreamConfiguration());
00091
00095 virtual ~BulkDataNTReceiverStream();
00096
00097
00098
00099
00100
00101
00102
00103
00104 BulkDataNTReceiverFlow* createFlow(const char *flowName, const ReceiverFlowConfiguration &cfg=ReceiverFlowConfiguration(),
00105 BulkDataNTCallback *cb=0, bool releaseCB=false);
00106
00107 BulkDataNTReceiverFlow* getFlow(const char* flowName);
00108
00120 void createMultipleFlowsFromConfig(const char *config);
00121
00132
00133
00145
00146
00157
00158
00166 void closeReceiver();
00167
00174
00175
00176
00185
00186
00198
00199
00200
00201
00202
00204
00205
00206
00208
00209
00210 protected:
00211
00212 virtual void removeFlowFromMap(const char* flow);
00213
00214 typedef std::map<std::string, BulkDataNTReceiverFlow*> ReceiverFlowMap;
00215 ReceiverFlowMap receiverFlows_m;
00216
00217 bool notRemoveFromMap_m;
00218
00219
00221 BulkDataNTReceiverStream();
00223 void operator=(const BulkDataNTReceiverStream&);
00225 BulkDataNTReceiverStream(const BulkDataNTReceiverStream&);
00226 };
00227
00228 };
00229
00230 #include "bulkDataNTReceiverStream.i"
00231
00232 #endif