X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FMultiConnectorMixin.mpp;h=121bf8caa27abc50b0ee1be6c673745d2d23bd12;hb=af1d0936ba912bb301ac6604965df5b28d79c63e;hp=be0c9204d61d249e8300b85e801ead20dcbf865a;hpb=745cd102229014f9f48f690b30b47cddb9401b70;p=senf.git diff --git a/PPI/MultiConnectorMixin.mpp b/PPI/MultiConnectorMixin.mpp index be0c920..121bf8c 100644 --- a/PPI/MultiConnectorMixin.mpp +++ b/PPI/MultiConnectorMixin.mpp @@ -102,6 +102,9 @@ connect(Source & source, Target & target mpp_FnParamsKomma()); // //////////////////////////////////////////////////////////////////////// // Implementation +//////////////////////////////////////// +// Map container + template mpp_TplParams() prefix_ ConnectorType_ & @@ -113,6 +116,9 @@ newConnector(mpp_FnParams()) return * connectors_.insert(key, conn).first->second; } +//////////////////////////////////////// +// Vector container + template mpp_TplParams() prefix_ ConnectorType_ & @@ -126,6 +132,24 @@ newConnector(mpp_FnParams()) return conn; } +//////////////////////////////////////// +// User managed container + +template +mpp_TplParams() +prefix_ ConnectorType_ & +senf::ppi::module::MultiConnectorMixin:: +newConnector(mpp_FnParams()) +{ + std::auto_ptr cp (new ConnectorType_); + ConnectorType_ & cref (*cp); + static_cast(this)->connectorSetup(cp mpp_CallParamsKomma()); + return cref; +} + +//////////////////////////////////////// +// senf::ppi::connect + template typename boost::enable_if< boost::is_base_of,