commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r3880 - gnuradio/branches/developers/jcorgan/hier/gnur


From: jcorgan
Subject: [Commit-gnuradio] r3880 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime
Date: Fri, 27 Oct 2006 16:00:50 -0600 (MDT)

Author: jcorgan
Date: 2006-10-27 16:00:50 -0600 (Fri, 27 Oct 2006)
New Revision: 3880

Modified:
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.i
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.cc
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.h
Log:
Work in progress

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
   2006-10-27 20:27:41 UTC (rev 3879)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
   2006-10-27 22:00:50 UTC (rev 3880)
@@ -33,9 +33,6 @@
                                        gr_io_signature_sptr input_signature,
                                        gr_io_signature_sptr output_signature)
 {
-    if (GR_HIER_BLOCK2_DEBUG)
-       cout << "gr_make_hier_block2: entered" << endl;
-       
     return gr_hier_block2_sptr(new gr_hier_block2(name, input_signature, 
output_signature));
 }
 
@@ -45,11 +42,15 @@
   : gr_basic_block(name, input_signature, output_signature)
 {
     if (GR_HIER_BLOCK2_DEBUG)
-       cout << "gr_hier_block2::gr_hier_block2: constructor" << endl;
+       cout << "Constructing hier_block2 with name '" << name << "'." << endl;
 }
 
 gr_hier_block2::~gr_hier_block2 ()
 {
+}
+
+void gr_hier_block2::define_component(const string name, gr_block_sptr comp)
+{
     if (GR_HIER_BLOCK2_DEBUG)
-       cout << "gr_hier_block2::~gr_hier_block2: destructor" << endl;
+       cout << "Adding block '" << name << "' to container." << endl;
 }

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
    2006-10-27 20:27:41 UTC (rev 3879)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
    2006-10-27 22:00:50 UTC (rev 3880)
@@ -40,17 +40,21 @@
  */
 class gr_hier_block2 : public gr_basic_block 
 {
-private: 
+private:
+    friend gr_hier_block2_sptr gr_make_hier_block2(const std::string name,
+                                                  gr_io_signature_sptr 
input_signature,
+                                                  gr_io_signature_sptr 
output_signature);
+protected: 
     gr_hier_block2(const std::string name,
                   gr_io_signature_sptr input_signature,
                   gr_io_signature_sptr output_signature);
 
-    friend gr_hier_block2_sptr gr_make_hier_block2(const std::string name,
-                                                  gr_io_signature_sptr 
input_signature,
-                                                  gr_io_signature_sptr 
output_signature);
 
 public:
     ~gr_hier_block2();
+
+    // Add a named terminal block to container
+    void define_component(const std::string name, gr_block_sptr comp);
 };
 
 #endif /* INCLUDED_GR_HIER_BLOCK2_H */

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.i
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.i
    2006-10-27 20:27:41 UTC (rev 3879)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.i
    2006-10-27 22:00:50 UTC (rev 3880)
@@ -41,4 +41,7 @@
 
 public:
     ~gr_hier_block2 ();
+
+    // Add a named terminal block to the container
+    void define_component(const std::string name, gr_block_sptr comp);
 };

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.cc
        2006-10-27 20:27:41 UTC (rev 3879)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.cc
        2006-10-27 22:00:50 UTC (rev 3880)
@@ -27,7 +27,48 @@
 #include <qa_gr_hier_block2.h>
 #include <gr_hier_block2.h>
 #include <gr_io_signature.h>
+#include <gr_null_source.h>
+#include <gr_null_sink.h>
 
+// gr_hier_block2 functionality only available from within derived class, so 
make one
+class gr_test_block;
+typedef boost::shared_ptr<gr_test_block> gr_test_block_sptr;
+gr_test_block_sptr gr_make_test_block();
+
+class gr_test_block : public gr_hier_block2
+{
+private:
+    gr_test_block();
+    friend gr_test_block_sptr gr_make_test_block();
+
+    gr_block_sptr src1;
+    gr_block_sptr sink1;
+    
+public:
+    ~gr_test_block();
+};
+
+gr_test_block_sptr gr_make_test_block()
+{
+    return gr_test_block_sptr(new gr_test_block());
+}
+
+gr_test_block::gr_test_block()
+  : gr_hier_block2("test_block",
+                  gr_make_io_signature(1, 1, sizeof(int)),
+                  gr_make_io_signature(1, 1, sizeof(int)))
+{
+    src1 = gr_make_null_source(sizeof(int));
+    sink1 = gr_make_null_sink(sizeof(int));
+
+    define_component("source", src1);
+    define_component("sink", sink1);
+}
+
+gr_test_block::~gr_test_block()
+{
+}
+
 void qa_gr_hier_block2::test_make()
 {
     gr_hier_block2_sptr src1(gr_make_hier_block2("test",
@@ -42,3 +83,16 @@
     CPPUNIT_ASSERT_EQUAL(sizeof(int), 
                         src1->output_signature()->sizeof_stream_item(0));
 }
+
+void qa_gr_hier_block2::test_derived()
+{
+    gr_test_block_sptr blk1(gr_make_test_block());
+    
+    CPPUNIT_ASSERT(blk1);
+    CPPUNIT_ASSERT_EQUAL(std::string("test_block"), blk1->name());
+    CPPUNIT_ASSERT_EQUAL(1, blk1->input_signature()->max_streams());
+    CPPUNIT_ASSERT_EQUAL(1, blk1->output_signature()->min_streams());
+    CPPUNIT_ASSERT_EQUAL(1, blk1->output_signature()->max_streams());
+    CPPUNIT_ASSERT_EQUAL(sizeof(int), 
+                        blk1->output_signature()->sizeof_stream_item(0));
+}

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.h
 2006-10-27 20:27:41 UTC (rev 3879)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/qa_gr_hier_block2.h
 2006-10-27 22:00:50 UTC (rev 3880)
@@ -32,11 +32,13 @@
     CPPUNIT_TEST_SUITE(qa_gr_hier_block2);
 
     CPPUNIT_TEST(test_make);
-
+    CPPUNIT_TEST(test_derived);
+    
     CPPUNIT_TEST_SUITE_END();
 
 private:
     void test_make();
+    void test_derived();
 };
 
 #endif /* INCLUDED_QA_GR_HIER_BLOCK2_H */





reply via email to

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