Om
producer.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Producer_
16 
17  #define Om_Language_Producer_ \
18  Om::Language::Producer
19 
20  #ifndef Om_Macro_Precompilation_
21 
22  #include <memory>
23 
24  #endif
25 
26 namespace Om {
27 
28  namespace Language {
29 
31  class Consumer;
32 
33  class Program;
35 
40  class Producer {
41 
42  public: // MARK: public (non-static)
43 
44  virtual ~Producer() = 0;
45 
54  virtual void GiveElements(Consumer &) = 0;
55 
60  virtual void GiveElements(Consumer &) const = 0;
61 
66  virtual std::auto_ptr<Program> GiveProgram() = 0;
67 
72  virtual std::auto_ptr<Program> GiveProgram() const = 0;
73 
74  private: // MARK: private (non-static)
75 
77 
78  };
79 
80  }
81 
82 }
83 
84  #include "om/language/producer.cpp"
85 
86 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
An Element giver; gives from the front.
Definition: producer.hpp:40
Producer & operator=(Producer const &)
virtual std::auto_ptr< Program > GiveProgram() const =0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void GiveElements(Consumer &)=0
Gives each contained Element to the argument.
virtual void GiveElements(Consumer &) const =0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual std::auto_ptr< Program > GiveProgram()=0
Returns a new Program populated with the contents of this.
The Om library.
Definition: code_point.hpp:26
Om source file.