#include "../Utils/String.hh"
#include "Module.hh"
#include "Connectors.hh"
+#include "MultiConnectorMixin.hh"
//#include "AnnotationRouter.mpp"
///////////////////////////////hh.p////////////////////////////////////////
from the container
*/
template <class AnnotationType>
- class AnnotationRouter : public Module
+ class AnnotationRouter
+ : public Module,
+ public MultiConnectorMixin< AnnotationRouter<AnnotationType>,
+ connector::ActiveOutput<>,
+ AnnotationType >
{
SENF_PPI_MODULE(AnnotationRouter);
public:
{ append( senf::str(key)); } };
private:
- connector::ActiveOutput<> & newOutput(AnnotationType const & key);
-
-#ifndef DOXYGEN
- // I didn't get template friend functions to work ...
- public:
-#endif
- template <class Target>
- connector::GenericActiveOutput & connect(Target & target, AnnotationType const & key);
-
- private:
+ AnnotationType connectorSetup(connector::ActiveOutput<> & conn, AnnotationType const & key);
void request();
typedef boost::ptr_map<AnnotationType, connector::ActiveOutput<> > Outputs;
Outputs outputs_;
- };
-}
-
-#ifndef DOXYGEN
-
- template <class Target, class AnnotationType, class ArgType>
- connector::GenericActiveOutput & connect(
- module::AnnotationRouter<AnnotationType> & source, Target & target,
- ArgType const & key);
-
-#endif
+ friend class MultiConnectorMixin< AnnotationRouter<AnnotationType>,
+ connector::ActiveOutput<>,
+ AnnotationType >;
+ };
-}}
+}}}
///////////////////////////////hh.e////////////////////////////////////////
//#include "AnnotationRouter.cci"
#include "AnnotationRouter.ct"
-#include "AnnotationRouter.cti"
+//#include "AnnotationRouter.cti"
#endif
\f