00001
00041
00042
00043
00044 #ifndef H_PROLE
00045 #define H_PROLE
00046
00047 #ifndef NO_DEPENDENCY_INCLUDES
00048 #include <iostream>
00049 #endif
00050
00051
00052 namespace Connector
00053 {
00054
00058 template < typename Payload >
00059 struct InputPort
00060 {
00061 virtual operator const Payload &( ) = 0;
00062 };
00063
00064
00068 template < typename Payload >
00069 struct OutputPort
00070 {
00071 virtual operator Payload &() = 0;
00072 };
00073
00074
00079 template< typename Key, typename Payload >
00080 struct LookupInputPort
00081 {
00082 virtual const Payload &operator() ( const Key & ) = 0;
00083 };
00084
00085
00089 template< typename Key, typename Payload >
00090 struct BinnedOutputPort
00091 {
00092 virtual Payload &operator() ( const Key & ) = 0;
00093 };
00094
00095
00100 struct MonitorPort
00101 {
00102 virtual operator std::ostream &();
00103 };
00104
00105 };
00106
00107 #endif