Packets: Add StringParser ostream operation
[senf.git] / PPI / Jack.hh
index 5cfbc12..52c6b82 100644 (file)
@@ -38,58 +38,70 @@ namespace senf {
 namespace ppi {
 namespace connector {
 
+    /** \brief Connector Jack base class
+        \see \ref ppi_jacks */
     class Jack
         : private boost::noncopyable
     {};
 
+    /** \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
 
     private:
         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
 
     private:
         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
 
     private:
         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
 
     private:
         GenericPassiveOutput & output_;
     };
 
+    /** \brief Jack with packet type referencing an ActiveInput
+        \see \ref ppi_jacks */
     template <class PacketType=Packet>
     class ActiveInputJack
         : public GenericActiveInputJack
@@ -97,6 +109,9 @@ namespace connector {
     public:
         explicit ActiveInputJack(ActiveInput<PacketType> & input);
         explicit ActiveInputJack(ActiveInput<> & input);
+        
+        explicit ActiveInputJack(ActiveInputJack & input);
+        explicit ActiveInputJack(ActiveInputJack<> & input);
     };
 
 #ifndef DOXYGEN
@@ -106,11 +121,14 @@ namespace connector {
         : public GenericActiveInputJack
     {
     public:
-        explicit ActiveInputJack(ActiveInput<> & input);
+        explicit ActiveInputJack(GenericActiveInput & input);
+        explicit ActiveInputJack(GenericActiveInputJack input);
     };
 
 #endif
 
+    /** \brief Jack with packet type referencing an ActiveOutput
+        \see \ref ppi_jacks */
     template <class PacketType=Packet>
     class ActiveOutputJack
         : public GenericActiveOutputJack
@@ -118,6 +136,9 @@ namespace connector {
     public:
         explicit ActiveOutputJack(ActiveOutput<PacketType> & output);
         explicit ActiveOutputJack(ActiveOutput<> & output);
+
+        explicit ActiveOutputJack(ActiveOutputJack & output);
+        explicit ActiveOutputJack(ActiveOutputJack<> & output);
     };
 
 #ifndef DOXYGEN
@@ -127,11 +148,14 @@ namespace connector {
         : public GenericActiveOutputJack
     {
     public:
-        explicit ActiveOutputJack(ActiveOutput<> & output);
+        explicit ActiveOutputJack(GenericActiveOutput & output);
+        explicit ActiveOutputJack(GenericActiveOutputJack & output);
     };
 
 #endif
 
+    /** \brief Jack with packet type referencing a PassiveInput
+        \see \ref ppi_jacks */
     template <class PacketType=Packet>
     class PassiveInputJack
         : public GenericPassiveInputJack
@@ -139,6 +163,9 @@ namespace connector {
     public:
         explicit PassiveInputJack(PassiveInput<PacketType> & input);
         explicit PassiveInputJack(PassiveInput<> & input);
+
+        explicit PassiveInputJack(PassiveInputJack & input);
+        explicit PassiveInputJack(PassiveInputJack<> & input);
     };
 
 #ifndef DOXYGEN
@@ -148,11 +175,14 @@ namespace connector {
         : public GenericPassiveInputJack
     {
     public:
-        explicit PassiveInputJack(PassiveInput<> & input);
+        explicit PassiveInputJack(GenericPassiveInput & input);
+        explicit PassiveInputJack(GenericPassiveInputJack & input);
     };
 
 #endif
 
+    /** \brief Jack with packet type referencing a PassiveOutput
+        \see \ref ppi_jacks */
     template <class PacketType=Packet>
     class PassiveOutputJack
         : public GenericPassiveOutputJack
@@ -160,6 +190,9 @@ namespace connector {
     public:
         explicit PassiveOutputJack(PassiveOutput<PacketType> & output);
         explicit PassiveOutputJack(PassiveOutput<> & output);
+
+        explicit PassiveOutputJack(PassiveOutputJack & output);
+        explicit PassiveOutputJack(PassiveOutputJack<> & output);
     };
 
 #ifndef DOXYGEN
@@ -169,7 +202,8 @@ namespace connector {
         : public GenericPassiveOutputJack
     {
     public:
-        explicit PassiveOutputJack(PassiveOutput<> & output);
+        explicit PassiveOutputJack(GenericPassiveOutput & output);
+        explicit PassiveOutputJack(GenericPassiveOutputJack & output);
     };
 
 #endif