commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r3998 - gnuradio/branches/developers/eb/mb/mblock/src/


From: eb
Subject: [Commit-gnuradio] r3998 - gnuradio/branches/developers/eb/mb/mblock/src/lib
Date: Thu, 16 Nov 2006 23:05:14 -0700 (MST)

Author: eb
Date: 2006-11-16 23:05:14 -0700 (Thu, 16 Nov 2006)
New Revision: 3998

Removed:
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port_class.cc
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port_class.h
Modified:
   gnuradio/branches/developers/eb/mb/mblock/src/lib/Makefile.am
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_common.h
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.cc
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.h
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.h
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.cc
   gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h
   gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
Log:
simplified by merging mb_port_class into mb_port

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/Makefile.am
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/Makefile.am       
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/Makefile.am       
2006-11-17 06:05:14 UTC (rev 3998)
@@ -38,7 +38,6 @@
        mb_mblock_impl.cc               \
        mb_message.cc                   \
        mb_port.cc                      \
-       mb_port_class.cc                \
        mb_protocol_class.cc            \
        mb_runtime.cc                   \
        mb_runtime_impl.cc              \
@@ -59,7 +58,6 @@
        mb_mblock.h                     \
        mb_message.h                    \
        mb_port.h                       \
-       mb_port_class.h                 \
        mb_protocol_class.h             \
        mb_runtime.h                    \
        mb_util.h                       

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_common.h
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_common.h       
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_common.h       
2006-11-17 06:05:14 UTC (rev 3998)
@@ -43,9 +43,6 @@
 class mb_mblock_impl;
 typedef boost::shared_ptr<mb_mblock_impl> mb_mblock_impl_sptr;
 
-class mb_port_class;
-typedef boost::shared_ptr<mb_port_class> mb_port_class_sptr;
-
 class mb_port;
 typedef boost::shared_ptr<mb_port> mb_port_sptr;
 

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.cc      
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.cc      
2006-11-17 06:05:14 UTC (rev 3998)
@@ -65,7 +65,7 @@
 mb_mblock::define_port(const std::string &port_name_string,
                       const std::string &protocol_class_name,
                       bool conjugated,
-                      mb_port_class::port_type_t port_type)
+                      mb_port::port_type_t port_type)
 {
   d_impl->define_port(port_name_string, protocol_class_name,
                      conjugated, port_type);

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.h
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.h       
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock.h       
2006-11-17 06:05:14 UTC (rev 3998)
@@ -23,7 +23,7 @@
 
 #include <mb_common.h>
 #include <mb_message.h>
-#include <mb_port_class.h>
+#include <mb_port.h>
 
 
 class mb_runtime;
@@ -95,7 +95,7 @@
   define_port(const std::string &port_name,
              const std::string &protocol_class_name,
              bool conjugated,
-             mb_port_class::port_type_t port_type);
+             mb_port::port_type_t port_type);
 
   /*!
    * \brief Define a subcomponent by name.
@@ -188,7 +188,7 @@
   /*!
    * \brief Return a vector that describes this mblock's peer-interface
    */
-  // const std::vector<mb_port_class_sptr> peer_interface() const;
+  // const std::vector<mb_port_sptr> peer_interface() const;
 };
 
 

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc 
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc 
2006-11-17 06:05:14 UTC (rev 3998)
@@ -63,9 +63,9 @@
 mb_mblock_impl::define_port(const std::string &port_name,
                            const std::string &protocol_class_name,
                            bool conjugated,
-                           mb_port_class::port_type_t port_type)
+                           mb_port::port_type_t port_type)
 {
-  if (port_type == mb_port_class::RELAY)
+  if (port_type == mb_port::RELAY)
     throw mbe_base(d_mb, "mb_block_impl::define_port: RELAY ports are not 
implemented: " + port_name);
   
   if (port_is_defined(port_name))
@@ -148,7 +148,7 @@
   // our EXTERNAL ports.  Connections that include "self" as the
   // component name must be either INTERNAL or RELAY.
 
-  if (comp_name == "self" && port->port_type() == mb_port_class::EXTERNAL)
+  if (comp_name == "self" && port->port_type() == mb_port::EXTERNAL)
     throw mbe_invalid_port_type(d_mb, comp_name, port_name);
 
   // Is this endpoint already connected?
@@ -179,7 +179,7 @@
 
     mb_port_sptr c_port = c_impl->d_port_map[port_name];
 
-    if (c_port->port_type() == mb_port_class::INTERNAL)              // can't 
"see" a child's internal ports
+    if (c_port->port_type() == mb_port::INTERNAL)            // can't "see" a 
child's internal ports
       throw mbe_no_such_port(d_mb, mb_util::join_names(comp_name, port_name));
 
     return c_port;

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.h
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.h  
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.h  
2006-11-17 06:05:14 UTC (rev 3998)
@@ -62,7 +62,7 @@
   define_port(const std::string &port_name,
              const std::string &protocol_class_name,
              bool conjugated,
-             mb_port_class::port_type_t port_type);
+             mb_port::port_type_t port_type);
 
   /*!
    * \brief Define a subcomponent by name.
@@ -150,7 +150,7 @@
 
   
   /*
-   * Our implemenation methods
+   * Our implementation methods
    */
 private:
   //bool port_is_defined(pmt_t name);

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.cc        
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.cc        
2006-11-17 06:05:14 UTC (rev 3998)
@@ -22,24 +22,39 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
+
 #include <mb_port.h>
+#include <mb_protocol_class.h>
 
-////////////////////////////////////////////////////////////////////////
-//                         mb_port                                    //
-////////////////////////////////////////////////////////////////////////
 
 mb_port::mb_port(const std::string &port_name,
                 const std::string &protocol_class_name,
                 bool conjugated,
-                mb_port_class::port_type_t port_type)
-  : d_port_class(mb_make_port_class(port_name, protocol_class_name,
-                                   conjugated, port_type))
-    //d_remote_port_name(PMT_NIL)
+                mb_port::port_type_t port_type)
+  : d_port_name(port_name),
+    d_conjugated(conjugated), d_port_type(port_type)
 {
+  pmt_t pc = mb_protocol_class_lookup(pmt_intern(protocol_class_name));
+  if (pmt_is_null(pc)){
+    throw std::runtime_error("mb_port: unknown protocol class '" + 
protocol_class_name + "'");
+  }
+  d_protocol_class = pc;
 }
 
-mb_port::~mb_port()
+pmt_t
+mb_port::incoming_message_set() const
 {
-  // FIXME nop for now
+  if (!conjugated())
+    return mb_protocol_class_incoming(protocol_class());
+  else // swap the sets
+    return mb_protocol_class_outgoing(protocol_class());
 }
 
+pmt_t
+mb_port::outgoing_message_set() const
+{
+  if (!conjugated())
+    return mb_protocol_class_outgoing(protocol_class());
+  else // swap the sets
+    return mb_protocol_class_incoming(protocol_class());
+}

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h 2006-11-17 
05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h 2006-11-17 
06:05:14 UTC (rev 3998)
@@ -22,42 +22,44 @@
 #define INCLUDED_MB_PORT_H
 
 #include <mb_common.h>
-#include <mb_port_class.h>
 
-// ----------------------------------------------------------------------
-// mb_port and friends
-// ----------------------------------------------------------------------
-
+/*!
+ * \brief Public port characteristics
+ */
 class mb_port
 {
-  mb_port_class_sptr   d_port_class;
+public:
 
-  // FIXME cached shortcut to other end
-  // These are only valid if this port is connected
-  //mb_mblock_sptr     d_remote_mblock;        // mblock bound to other end 
this port
-  //pmt_t                      d_remote_port_name;     // port_name on other 
end of this port
+  //! port classification
+  enum port_type_t {
+    EXTERNAL,  //< Externally visible
+    RELAY,     //< Externally visible but really connected to a sub-component
+    INTERNAL   //< Visible to self only
+  };
 
-public:
+private:
+  friend class mb_mblock_impl;
+
+  std::string          d_port_name;
+  pmt_t                        d_protocol_class;
+  bool                 d_conjugated;
+  port_type_t          d_port_type;
+
+  // private constructor
   mb_port(const std::string &port_name,
-         const std::string &protocol_class_name,
-         bool conjugated,
-         mb_port_class::port_type_t port_type);
+               const std::string &protocol_class_name,
+               bool conjugated,
+               mb_port::port_type_t port_type);
 
-  ~mb_port();
 
-  mb_port_class_sptr   port_class() const { return d_port_class; }
-  //mb_mblock_sptr     remote_mblock() const { return d_remote_mblock; }
-  //pmt_t                      remote_port_name() const { return 
d_remote_port_name; }
+public:
+  std::string  port_name() const { return d_port_name; }
+  pmt_t                protocol_class() const { return d_protocol_class; }
+  bool          conjugated() const { return d_conjugated; }
+  port_type_t  port_type() const { return d_port_type; }
 
-  // delegations to d_port_class
-
-  std::string               port_name() const { return 
d_port_class->port_name(); }
-  pmt_t                             protocol_class() const { return 
d_port_class->protocol_class(); }
-  bool                      conjugated() const { return 
d_port_class->conjugated(); }
-  mb_port_class::port_type_t port_type() const { return 
d_port_class->port_type(); }
-  pmt_t        incoming_message_set() const { return 
d_port_class->incoming_message_set(); }
-  pmt_t        outgoing_message_set() const { return 
d_port_class->outgoing_message_set(); }
+  pmt_t                incoming_message_set() const;
+  pmt_t                outgoing_message_set() const;
 };
 
-
 #endif /* INCLUDED_MB_PORT_H */

Deleted: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port_class.cc

Deleted: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port_class.h

Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc        
2006-11-17 05:53:44 UTC (rev 3997)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc        
2006-11-17 06:05:14 UTC (rev 3998)
@@ -60,7 +60,7 @@
 
 dp_2::dp_2()
 {
-  define_port("cs", "cs-protocol", false, mb_port_class::EXTERNAL);
+  define_port("cs", "cs-protocol", false, mb_port::EXTERNAL);
 }
 
 dp_2::~dp_2(){}
@@ -76,8 +76,8 @@
 
 dp_3::dp_3()
 {
-  define_port("cs", "cs-protocol", false, mb_port_class::EXTERNAL);
-  define_port("cs", "cs-protocol", false, mb_port_class::EXTERNAL);    // 
duplicate def
+  define_port("cs", "cs-protocol", false, mb_port::EXTERNAL);
+  define_port("cs", "cs-protocol", false, mb_port::EXTERNAL);  // duplicate def
 }
 
 dp_3::~dp_3(){}
@@ -88,7 +88,7 @@
 qa_mblock_prims::test_define_ports()
 {
   mb_runtime_sptr      rt = mb_make_runtime();
-  // std::vector<mb_port_class_sptr>   intf;
+  // std::vector<mb_port_sptr> intf;
 
   mb_mblock_sptr       mb1 = mb_mblock_sptr(new dp_1());
   // intf = mb1->peer_interface();
@@ -196,10 +196,10 @@
 {
 public:
   tc_norm(){
-    define_port("data", "i/o", false, mb_port_class::EXTERNAL);
-    define_port("norm", "i/o", false, mb_port_class::EXTERNAL);
-    define_port("conj", "i/o", true,  mb_port_class::EXTERNAL);
-    define_port("int",  "i/o", false, mb_port_class::INTERNAL);
+    define_port("data", "i/o", false, mb_port::EXTERNAL);
+    define_port("norm", "i/o", false, mb_port::EXTERNAL);
+    define_port("conj", "i/o", true,  mb_port::EXTERNAL);
+    define_port("int",  "i/o", false, mb_port::INTERNAL);
   }
 
   ~tc_norm();
@@ -213,9 +213,9 @@
 {
 public:
   tc_0(){
-    define_port("norm", "i/o", false, mb_port_class::EXTERNAL);
-    define_port("conj", "i/o", true,  mb_port_class::EXTERNAL);
-    define_port("int",  "i/o", false, mb_port_class::INTERNAL);
+    define_port("norm", "i/o", false, mb_port::EXTERNAL);
+    define_port("conj", "i/o", true,  mb_port::EXTERNAL);
+    define_port("int",  "i/o", false, mb_port::INTERNAL);
 
     define_component("c0", mb_mblock_sptr(new tc_norm()));
     define_component("c1", mb_mblock_sptr(new tc_norm()));





reply via email to

[Prev in Thread] Current Thread [Next in Thread]