]> Creatis software - bbtk.git/blob - packages/std/src/bbstdRelay.h
b41c9f4c3c74747cc20f03ab8b6d34af136a43be
[bbtk.git] / packages / std / src / bbstdRelay.h
1 #ifndef __bbstdRelay_h_INCLUDED_H__
2 #define __bbstdRelay_h_INCLUDED_H__
3
4 #include "bbtkUserBlackBox.h"
5
6 namespace bbstd
7 {
8   
9   template <class T>
10   class /*BBTK_EXPORT*/ Relay
11     : 
12     public bbtk::UserBlackBox
13   {
14     BBTK_USER_BLACK_BOX_INTERFACE(Relay,bbtk::UserBlackBox);
15     BBTK_DECLARE_INPUT(In,T);
16     BBTK_DECLARE_OUTPUT(Out,T);
17     BBTK_PROCESS(Process);
18   protected:
19     void Process() { bbSetOutputOut ( bbGetInputIn() ); }
20   };
21   
22
23   BBTK_BEGIN_DESCRIBE_TEMPLATE_BLACK_BOX(Relay);
24   BBTK_NAME(bbtk::HumanTypeName<T>()+"Relay");
25   BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
26   BBTK_DESCRIPTION("Relays a "+bbtk::TypeName<T>());
27   BBTK_TEMPLATE_INPUT(Relay,In,"Input",T);
28   BBTK_TEMPLATE_OUTPUT(Relay,Out,"Output",T);
29   BBTK_END_DESCRIBE_TEMPLATE_BLACK_BOX(Relay);
30
31 }
32 // namespace bbstd
33
34 #endif // __bbstdRelay_h_INCLUDED_H__