#include <boost/utility.hpp>
#include <boost/type_traits.hpp>
#include "Connectors.hh"
+#include "Setup.hh"
//#include "Jack.mpp"
///////////////////////////////hh.p////////////////////////////////////////
namespace ppi {
namespace connector {
+ /** \brief Connector Jack base class
+ \see \ref ppi_jacks */
class Jack
- : private boost::noncopyable
+ : private boost::noncopyable, private ppi::detail::DisableStandardConnect
{};
+ /** \brief Jack referencing an ActiveInput
+ \see \ref ppi_jacks */
class GenericActiveInputJack
: public Jack
{
public:
explicit GenericActiveInputJack(GenericActiveInput & input);
- GenericActiveInput & connector();
+ GenericActiveInput & connector(); ///< Get referenced connector
+
+ void reset(GenericActiveInput & input); ///< Change connector
+ /**< Will update any existing connection accordingly */
private:
- GenericActiveInput & input_;
+ GenericActiveInput * input_;
};
+ /** \brief Jack referencing an ActiveOutput
+ \see \ref ppi_jacks */
class GenericActiveOutputJack
: public Jack
{
public:
explicit GenericActiveOutputJack(GenericActiveOutput & output);
- GenericActiveOutput & connector();
+ GenericActiveOutput & connector(); ///< Get referenced connector
+
+ void reset(GenericActiveOutput & output); ///< Change connector
+ /**< Will update any existing connection accordingly */
private:
- GenericActiveOutput & output_;
+ GenericActiveOutput * output_;
};
+ /** \brief Jack referencing a PassiveInput
+ \see \ref ppi_jacks */
class GenericPassiveInputJack
: public Jack
{
public:
explicit GenericPassiveInputJack(GenericPassiveInput & input);
- GenericPassiveInput & connector();
+ GenericPassiveInput & connector(); ///< Get referenced connector
+
+ void reset(GenericPassiveInput & input); ///< Change connector
+ /**< Will update any existing connection accordingly */
private:
- GenericPassiveInput & input_;
+ GenericPassiveInput * input_;
};
+ /** \brief Jack referencing a PassiveOutput
+ \see \ref ppi_jacks */
class GenericPassiveOutputJack
: public Jack
{
public:
explicit GenericPassiveOutputJack(GenericPassiveOutput & output);
- GenericPassiveOutput & connector();
+ GenericPassiveOutput & connector(); ///< Get referenced connector
+
+ void reset(GenericPassiveOutput & output); ///< Change connector
+ /**< Will update any existing connection accordingly */
private:
- GenericPassiveOutput & output_;
+ GenericPassiveOutput * output_;
};
+ /** \brief Jack with packet type referencing an ActiveInput
+ \see \ref ppi_jacks */
template <class PacketType=Packet>
class ActiveInputJack
: public GenericActiveInputJack
explicit ActiveInputJack(ActiveInputJack & input);
explicit ActiveInputJack(ActiveInputJack<> & input);
+
+ void reset(ActiveInput<PacketType> & input);
+ void reset(ActiveInput<> & input);
+
+ void reset(ActiveInputJack & input);
+ void reset(ActiveInputJack<> & input);
};
#ifndef DOXYGEN
: public GenericActiveInputJack
{
public:
- explicit ActiveInputJack(ActiveInput<> & input);
- explicit ActiveInputJack(ActiveInputJack & input);
+ explicit ActiveInputJack(GenericActiveInput & input);
+ explicit ActiveInputJack(GenericActiveInputJack input);
+
+ void reset(GenericActiveInput & input);
+ void reset(GenericActiveInputJack input);
};
#endif
+ /** \brief Jack with packet type referencing an ActiveOutput
+ \see \ref ppi_jacks */
template <class PacketType=Packet>
class ActiveOutputJack
: public GenericActiveOutputJack
explicit ActiveOutputJack(ActiveOutputJack & output);
explicit ActiveOutputJack(ActiveOutputJack<> & output);
+
+ void reset(ActiveOutput<PacketType> & output);
+ void reset(ActiveOutput<> & output);
+
+ void reset(ActiveOutputJack & output);
+ void reset(ActiveOutputJack<> & output);
};
#ifndef DOXYGEN
: public GenericActiveOutputJack
{
public:
- explicit ActiveOutputJack(ActiveOutput<> & output);
- explicit ActiveOutputJack(ActiveOutputJack & output);
+ explicit ActiveOutputJack(GenericActiveOutput & output);
+ explicit ActiveOutputJack(GenericActiveOutputJack & output);
+
+ void reset(GenericActiveOutput & output);
+ void reset(GenericActiveOutputJack & output);
};
#endif
+ /** \brief Jack with packet type referencing a PassiveInput
+ \see \ref ppi_jacks */
template <class PacketType=Packet>
class PassiveInputJack
: public GenericPassiveInputJack
explicit PassiveInputJack(PassiveInputJack & input);
explicit PassiveInputJack(PassiveInputJack<> & input);
+
+ void reset(PassiveInput<PacketType> & input);
+ void reset(PassiveInput<> & input);
+
+ void reset(PassiveInputJack & input);
+ void reset(PassiveInputJack<> & input);
};
#ifndef DOXYGEN
: public GenericPassiveInputJack
{
public:
- explicit PassiveInputJack(PassiveInput<> & input);
- explicit PassiveInputJack(PassiveInputJack & input);
+ explicit PassiveInputJack(GenericPassiveInput & input);
+ explicit PassiveInputJack(GenericPassiveInputJack & input);
+
+ void reset(GenericPassiveInput & input);
+ void reset(GenericPassiveInputJack & input);
};
#endif
+ /** \brief Jack with packet type referencing a PassiveOutput
+ \see \ref ppi_jacks */
template <class PacketType=Packet>
class PassiveOutputJack
: public GenericPassiveOutputJack
explicit PassiveOutputJack(PassiveOutputJack & output);
explicit PassiveOutputJack(PassiveOutputJack<> & output);
+
+ void reset(PassiveOutput<PacketType> & output);
+ void reset(PassiveOutput<> & output);
+
+ void reset(PassiveOutputJack & output);
+ void reset(PassiveOutputJack<> & output);
};
#ifndef DOXYGEN
: public GenericPassiveOutputJack
{
public:
- explicit PassiveOutputJack(PassiveOutput<> & output);
- explicit PassiveOutputJack(PassiveOutputJack & output);
+ explicit PassiveOutputJack(GenericPassiveOutput & output);
+ explicit PassiveOutputJack(GenericPassiveOutputJack & output);
+
+ void reset(GenericPassiveOutput & output);
+ void reset(GenericPassiveOutputJack & output);
};
#endif