X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FMultiConnectorMixin.mpp;h=0de3682d7a57fc3000750fa71eeb59ee2ee094ac;hb=78a6e233083efa63a9cd0684a92abc64202a9ee7;hp=78a3f8f9a15f6cccf5b0b903677ddb0acc25dda9;hpb=0584aff454ea331f482f830c3ee16d4fdafb3ffb;p=senf.git diff --git a/senf/PPI/MultiConnectorMixin.mpp b/senf/PPI/MultiConnectorMixin.mpp index 78a3f8f..0de3682 100644 --- a/senf/PPI/MultiConnectorMixin.mpp +++ b/senf/PPI/MultiConnectorMixin.mpp @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2009 +// Copyright (C) 2009 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -29,16 +29,15 @@ // Custom includes #include #include -#include +#include #include #include #include -#include +#include #include #include #include #include -#include // ///////////////////////////mpp.p//////////////////////////////////////// #elif BOOST_PP_IS_ITERATING // //////////////////////////////////////////// @@ -92,15 +91,6 @@ mpp_TplParams() ConnectorType_ & newConnector( mpp_FnParams() ); // //////////////////////////////////////////////////////////////////////// -#elif BOOST_PP_ITERATION_FLAGS()==9 // //////////////////////////////////// -// //////////////////////////////////////////////////////////////////////// -// senf::ppi::module::MultiConnectorMixin member declaration 1..2*MAX_ARGS - -template -static boost::tuple -connect_(Source & source, Target & target mpp_FnParamsKomma()); - -// //////////////////////////////////////////////////////////////////////// #elif BOOST_PP_ITERATION_FLAGS()==2 // //////////////////////////////////// // //////////////////////////////////////////////////////////////////////// // senf::ppi namespace member declaration 1..MAX_ARGS @@ -150,7 +140,7 @@ connect(Source & source mpp_FnParamsKomma(), Target & target mpp_FnParamsKomma2( // senf::ppi::module::detail::MultiConnectorMixinAccess member declaration 1..MAX_ARGS template -static typename Module::ConnectorType & +static typename Module::ConnectorType & newConnector(Module & module mpp_FnParamsKomma()); // //////////////////////////////////////////////////////////////////////// @@ -167,7 +157,7 @@ prefix_ ConnectorType_ & senf::ppi::module::MultiConnectorMixin:: newConnector(mpp_FnParams()) { - std::auto_ptr conn (new ConnectorType_); + std::auto_ptr conn (new detail::MultiConnectorWrapper); KeyType_ key (static_cast(this)->connectorSetup(*conn mpp_CallParamsKomma())); return * connectors_.insert(key, conn).first->second; } @@ -181,10 +171,10 @@ prefix_ ConnectorType_ & senf::ppi::module::MultiConnectorMixin:: newConnector(mpp_FnParams()) { - connectors_.push_back(new ConnectorType_); + connectors_.push_back(new detail::MultiConnectorWrapper); ConnectorType_ & conn (connectors_.back()); try { static_cast(this)->connectorSetup(conn mpp_CallParamsKomma()); } - catch (...) { connectors_.pop_back(); throw; } + catch (...) { disconnected(conn); throw; } return conn; } @@ -197,7 +187,7 @@ prefix_ ConnectorType_ & senf::ppi::module::MultiConnectorMixin:: newConnector(mpp_FnParams()) { - std::auto_ptr cp (new ConnectorType_); + std::auto_ptr cp (new detail::MultiConnectorWrapper); ConnectorType_ & cref (*cp); static_cast(this)->connectorSetup(cp mpp_CallParamsKomma()); return cref; @@ -238,7 +228,7 @@ senf::ppi::connect(Source & source, Target & target mpp_FnParamsKomma()) // senf::ppi::module::detail::MultiConnectorMixinAccess members template -typename Module::ConnectorType & +typename Module::ConnectorType & senf::ppi::module::detail::MultiConnectorMixinAccess::newConnector( Module & module mpp_FnParamsKomma()) { @@ -290,13 +280,13 @@ senf::ppi::connect(Source & source mpp_FnParamsKomma(), Target & target mpp_FnPa #undef mpp_TplParamsKomma #undef mpp_TplParams_ #undef mpp_TplParams - + // //////////////////////////////////////////////////////////////////////// /* (save-excursion (re-search-backward "^// Undefine local Macros") (forward-line 1) (delete-region (point) (progn (search-forward "// ////") (forward-line -1) (point))) (insert "\n") (let ((b (point)) - (e (progn (insert (save-excursion (re-search-backward + (e (progn (insert (save-excursion (re-search-backward "^// Local Macros") (search-forward "#define") (beginning-of-line) (buffer-substring (point) (progn (search-forward "// ////") (search-backward "#define") (forward-line 1) (point))))) (point))))