commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r4890 - gnuradio/branches/developers/eb/ibu/mblock/src


From: eb
Subject: [Commit-gnuradio] r4890 - gnuradio/branches/developers/eb/ibu/mblock/src/lib
Date: Thu, 5 Apr 2007 19:06:38 -0600 (MDT)

Author: eb
Date: 2007-04-05 19:06:38 -0600 (Thu, 05 Apr 2007)
New Revision: 4890

Modified:
   gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.cc
   gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.h
   
gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_thread_per_mblock.cc
   gnuradio/branches/developers/eb/ibu/mblock/src/lib/qa_mblock_send.cc
Log:
all existing QA tests are updated to use new interface

Modified: gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.cc
===================================================================
--- gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.cc        
2007-04-06 00:56:08 UTC (rev 4889)
+++ gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.cc        
2007-04-06 01:06:38 UTC (rev 4890)
@@ -50,9 +50,21 @@
                    const std::string &class_name,
                    pmt_t user_arg)
 {
-  mb_mblock_sptr component =
-    create_component(instance_name, class_name, user_arg);
+  class initial_visitor : public mb_visitor
+  {
+  public:
+    bool operator()(mb_mblock *mblock)
+    {
+      mblock->initial_transition();
+      return true;
+    }
+  };
 
+  initial_visitor visitor;
+
+  d_top = create_component(instance_name, class_name, user_arg);
+  d_top->walk_tree(&visitor);
+
   return true;
 }
 

Modified: gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.h
===================================================================
--- gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.h 
2007-04-06 00:56:08 UTC (rev 4889)
+++ gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_nop.h 
2007-04-06 01:06:38 UTC (rev 4890)
@@ -33,7 +33,8 @@
  */
 class mb_runtime_nop : public mb_runtime
 {
-
+  mb_mblock_sptr       d_top;
+  
 public:
   mb_runtime_nop();
   ~mb_runtime_nop();
@@ -42,6 +43,9 @@
           const std::string &class_name,
           pmt_t user_arg);
 
+  // QA only
+  mb_mblock_sptr top() { return d_top; }
+
 protected:
   mb_mblock_sptr
   create_component(const std::string &instance_name,

Modified: 
gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_thread_per_mblock.cc
===================================================================
--- 
gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_thread_per_mblock.cc
  2007-04-06 00:56:08 UTC (rev 4889)
+++ 
gnuradio/branches/developers/eb/ibu/mblock/src/lib/mb_runtime_thread_per_mblock.cc
  2007-04-06 01:06:38 UTC (rev 4890)
@@ -48,11 +48,9 @@
                                  const std::string &class_name,
                                  pmt_t user_arg)
 {
-#if 0
   class initial_visitor : public mb_visitor
   {
   public:
-    initial_visitor(){}
     bool operator()(mb_mblock *mblock)
     {
       mblock->initial_transition();
@@ -60,11 +58,9 @@
     }
   };
 
-  initial_visitor      visitor();
-#endif
+  initial_visitor      visitor;
 
-  mb_mblock_sptr top =
-    create_component(instance_name, class_name, user_arg);
+  mb_mblock_sptr top = create_component(instance_name, class_name, user_arg);
 
   // FIXME wait for barrier, then ask each mblock to run its initial_transition
 

Modified: gnuradio/branches/developers/eb/ibu/mblock/src/lib/qa_mblock_send.cc
===================================================================
--- gnuradio/branches/developers/eb/ibu/mblock/src/lib/qa_mblock_send.cc        
2007-04-06 00:56:08 UTC (rev 4889)
+++ gnuradio/branches/developers/eb/ibu/mblock/src/lib/qa_mblock_send.cc        
2007-04-06 01:06:38 UTC (rev 4890)
@@ -58,14 +58,12 @@
 
 }
 
-#if 1  // stubs for now...
+mb_mblock_sptr
+get_top(mb_runtime_sptr rts)
+{
+  return dynamic_cast<mb_runtime_nop *>(rts.get())->top();
+}
 
-void qa_mblock_send::test_simple_routing(){}
-void qa_mblock_send::test_relay_routing_1(){}
-void qa_mblock_send::test_relay_routing_2(){}
-
-#else
-
 // ================================================================
 //                    test_simple_routing
 // ================================================================
@@ -79,14 +77,13 @@
   mb_port_sptr d_p3;
 
 public:
-  sr1(std::string &instance_name, pmt_t arg) : mb_mblock(instance_name, arg) {}
+  sr1(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~sr1();
   void initial_transition();
 };
 
-REGISTER_MBLOCK_CLASS(sr1);
-
-sr1::sr1()
+sr1::sr1(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
   d_p1 = define_port("p1", "qa-send-cs", true, mb_port::EXTERNAL);
   d_p2 = define_port("p2", "qa-send-cs", true, mb_port::EXTERNAL);
@@ -109,6 +106,7 @@
   d_p2->send(s_status, pmt_list3(our_name, s_p2, pmt_from_long(1)));
 }
 
+REGISTER_MBLOCK_CLASS(sr1);
 
 // ----------------------------------------------------------------
 
@@ -118,24 +116,19 @@
   mb_port_sptr d_p0;
   
 public:
-  sr0();
+  sr0(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~sr0();
   void initial_transition();
 };
 
-sr0::sr0()
+sr0::sr0(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
-  mb_mblock_maker_t    maker;
-
   d_p0 = define_port("p0", "qa-send-cs", false, mb_port::INTERNAL);
 
-  //define_component("mb1", mb_mblock_sptr(new sr1()));
-  //define_component("mb1", mb_mblock_maker<sr1>());  // experiment w/ maker
-  mb_class_registry::lookup_maker("sr1", &maker);
-  define_component("mb1", maker());                  // experiment w/ maker
+  define_component("mb1", "sr1");
+  define_component("mb2", "sr1");
 
-  define_component("mb2", mb_mblock_sptr(new sr1()));
-
   connect("self", "p0", "mb1", "p1");
   connect("mb1", "p2", "mb2", "p3");
   connect("mb1", "p3", "mb2", "p2");
@@ -154,6 +147,8 @@
   d_p0->send(s_control, pmt_list3(our_name, s_p0, pmt_from_long(1)));
 }
   
+REGISTER_MBLOCK_CLASS(sr0);
+
 // ----------------------------------------------------------------
 
 /*
@@ -169,9 +164,10 @@
   mb_message_sptr msg;
 
   mb_runtime_sptr rt = mb_make_runtime_nop();
-  mb_mblock_sptr mb0 = mb_mblock_sptr(new sr0());
-  rt->run(mb0);
+  rt->run("top", "sr0", PMT_F);
 
+  mb_mblock_sptr mb0 = get_top(rt);
+  
   // Reach into the guts and see if the messages ended up where they should 
have
 
   // mb0 should have received two messages sent from mb1 via its p1
@@ -256,12 +252,13 @@
   mb_port_sptr d_p2;
 
 public:
-  rr2();
+  rr2(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~rr2();
   void initial_transition();
 };
 
-rr2::rr2()
+rr2::rr2(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
   d_p1 = define_port("p1", "qa-send-cs", true,  mb_port::EXTERNAL);
   d_p2 = define_port("p2", "qa-send-cs", false, mb_port::EXTERNAL);
@@ -280,6 +277,8 @@
   d_p1->send(s_status, pmt_list3(our_name, s_p1, pmt_from_long(1)));
 }
 
+REGISTER_MBLOCK_CLASS(rr2);
+
 // ----------------------------------------------------------------
 
 // intermediate block for test_relay_routing
@@ -290,16 +289,17 @@
   mb_port_sptr d_p2;
 
 public:
-  rr1();
+  rr1(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~rr1();
 };
 
-rr1::rr1()
+rr1::rr1(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
   d_p1 = define_port("p1", "qa-send-cs", true,  mb_port::RELAY);
   d_p2 = define_port("p2", "qa-send-cs", false, mb_port::RELAY);
 
-  define_component("c0", mb_mblock_sptr(new rr2()));
+  define_component("c0", "rr2");
 
   connect("self", "p1", "c0", "p1");
   connect("self", "p2", "c0", "p2");
@@ -307,6 +307,8 @@
 
 rr1::~rr1(){}
 
+REGISTER_MBLOCK_CLASS(rr1);
+
 // ----------------------------------------------------------------
 
 // top-level container for test_relay_routing
@@ -314,14 +316,15 @@
 class rr0_a : public mb_mblock
 {
 public:
-  rr0_a();
+  rr0_a(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~rr0_a();
 };
 
-rr0_a::rr0_a()
+rr0_a::rr0_a(mb_runtime *runtime, const std::string &instance_name, pmt_t 
user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
-  define_component("c0", mb_mblock_sptr(new rr1()));
-  define_component("c1", mb_mblock_sptr(new rr2()));
+  define_component("c0", "rr1");
+  define_component("c1", "rr2");
 
   connect("c0", "p1", "c1", "p2");
   connect("c0", "p2", "c1", "p1");
@@ -329,6 +332,7 @@
 
 rr0_a::~rr0_a(){}
 
+REGISTER_MBLOCK_CLASS(rr0_a);
 
 /*
  * This tests basic message routing using RELAY and EXTERNAL ports.
@@ -341,8 +345,8 @@
   mb_message_sptr msg;
 
   mb_runtime_sptr rt = mb_make_runtime_nop();
-  mb_mblock_sptr  top = mb_mblock_sptr(new rr0_a());
-  rt->run(top);
+  rt->run("top", "rr0_a", PMT_F);
+  mb_mblock_sptr top = get_top(rt);
 
   // Reach into the guts and see if the messages ended up where they should 
have
 
@@ -395,14 +399,15 @@
 class rr0_b : public mb_mblock
 {
 public:
-  rr0_b();
+  rr0_b(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg);
   ~rr0_b();
 };
 
-rr0_b::rr0_b()
+rr0_b::rr0_b(mb_runtime *runtime, const std::string &instance_name, pmt_t 
user_arg)
+  : mb_mblock(runtime, instance_name, user_arg)
 {
-  define_component("c0", mb_mblock_sptr(new rr1()));
-  define_component("c1", mb_mblock_sptr(new rr1()));
+  define_component("c0", "rr1");
+  define_component("c1", "rr1");
 
   connect("c0", "p1", "c1", "p2");
   connect("c0", "p2", "c1", "p1");
@@ -410,6 +415,7 @@
 
 rr0_b::~rr0_b(){}
 
+REGISTER_MBLOCK_CLASS(rr0_b);
 
 /*
  * This tests basic message routing using RELAY and EXTERNAL ports.
@@ -422,8 +428,8 @@
   mb_message_sptr msg;
 
   mb_runtime_sptr rt = mb_make_runtime_nop();
-  mb_mblock_sptr  top = mb_mblock_sptr(new rr0_b());
-  rt->run(top);
+  rt->run("top", "rr0_b", PMT_F);
+  mb_mblock_sptr top = get_top(rt);
 
   // Reach into the guts and see if the messages ended up where they should 
have
 
@@ -467,5 +473,3 @@
   CPPUNIT_ASSERT(pmt_equal(pmt_list3(pmt_intern("top/c0/c0"), s_p1, 
pmt_from_long(1)),
                           msg->data()));
 }
-
-#endif





reply via email to

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