Packets: Add StringParser ostream operation
[senf.git] / PPI / Connectors.cc
index a39857e..4c5a3ea 100644 (file)
 
 prefix_ void senf::ppi::connector::Connector::connect(Connector & target)
 {
-    SENF_ASSERT( module_ && ! peer_ && target.module_ && ! target.peer_ );
+    // The connector is not registered -> route() or noroute() statement missing
+    SENF_ASSERT( module_ && 
+                 "senf::ppi::connector::Connector::connect(): (source) "
+                 "Missing route() or noroute()" );
+    // The connector is already connected
+    SENF_ASSERT( ! peer_ &&
+                 "senf::ppi::connector::Connector::connect(): (source) "
+                 "duplicate connection" );
+    // The target connector is not registered -> route() or noroute() statement missing
+    SENF_ASSERT( target.module_ &&
+                 "senf::ppi::connector::Connector::connect(): (target) "
+                 "Missing route() or noroute()" );
+    // The target connector is already connected
+    SENF_ASSERT( ! target.peer_ &&
+                 "senf::ppi::connector::Connector::connect(): (target) "
+                 "duplicate connection" );
     if (! (packetTypeID() == typeid(void) ||
            target.packetTypeID() == typeid(void) || 
            packetTypeID() == target.packetTypeID()) )
@@ -61,7 +76,9 @@ prefix_ void senf::ppi::connector::Connector::connect(Connector & target)
 
 prefix_ void senf::ppi::connector::Connector::disconnect()
 {
-    SENF_ASSERT( peer_ );
+    // Cannot disconnected a non-connected connector
+    SENF_ASSERT( peer_ &&
+                 "senf::ppi::connector::Connector::disconnect(): Not connected" );
     Connector & peer (*peer_);
     peer_ = 0;
     peer.peer_ = 0;