HARDT - The Ham Radio DSP Toolkit
hsplitter.h
1 #ifndef __HSPLITTER_H
2 #define __HSPLITTER_H
3 
4 #include <vector>
5 
10 template <class T>
11 class HSplitter : public HWriter<T>, public HWriterConsumer<T>
12 {
13  private:
14 
15  std::vector< HWriter<T>* > _writers;
16 
17  public:
18 
20  HSplitter(HWriter<T>* writer1, HWriter<T>* writer2)
21  {
22  HLog("HSplitter(HWriter*, HWriter*)");
23  _writers.push_back(writer1);
24  _writers.push_back(writer2);
25  }
26 
28  HSplitter( std::vector< HWriter<T>* > writers)
29  {
30  HLog("HSplitter( std::vector< HWriter* >)");
31  for( typename std::vector< HWriter<T>* >::iterator it = writers.begin(); it != writers.end(); it++ )
32  {
33  _writers.push_back( (*it) );
34  }
35  }
36 
40  {
41  HLog("HSplitter(HWriterConsumer*)");
42  consumer->SetWriter(this);
43  }
44 
46  int Write(T* src, size_t blocksize);
47 
49  bool Start();
50 
52  bool Stop();
53 
55  void SetWriter(HWriter<T>* writer);
56 
58  bool Command(HCommand* command) {
59  for( typename std::vector< HWriter<T>* >::iterator it = _writers.begin(); it != _writers.end(); it++ )
60  {
61  if( !(*it)->Command(command) )
62  {
63  return false;
64  }
65  }
66  return true;
67  }
68 };
69 
70 #endif
HSplitter::Start
bool Start()
Definition: hsplitter.cpp:23
HSplitter::HSplitter
HSplitter(std::vector< HWriter< T > * > writers)
Definition: hsplitter.h:28
HSplitter::Write
int Write(T *src, size_t blocksize)
Definition: hsplitter.cpp:7
HSplitter::HSplitter
HSplitter(HWriter< T > *writer1, HWriter< T > *writer2)
Definition: hsplitter.h:20
HWriter
Definition: hwriter.h:10
HSplitter::HSplitter
HSplitter(HWriterConsumer< T > *consumer)
Definition: hsplitter.h:39
HWriterConsumer::SetWriter
virtual void SetWriter(HWriter< T > *writer)=0
HSplitter::SetWriter
void SetWriter(HWriter< T > *writer)
Definition: hsplitter.cpp:57
HSplitter
Definition: hsplitter.h:11
HCommand
Definition: hcommand.h:81
HSplitter::Stop
bool Stop()
Definition: hsplitter.cpp:40
HSplitter::Command
bool Command(HCommand *command)
Definition: hsplitter.h:58
HWriterConsumer
Definition: hwriterconsumer.h:8