commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r3891 - in gnuradio/branches/developers/jcorgan/hier/g


From: jcorgan
Subject: [Commit-gnuradio] r3891 - in gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src: lib/runtime python/gnuradio/gr
Date: Sun, 29 Oct 2006 13:13:04 -0700 (MST)

Author: jcorgan
Date: 2006-10-29 13:13:03 -0700 (Sun, 29 Oct 2006)
New Revision: 3891

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_impl.cc
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
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-28 22:39:26 UTC (rev 3890)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
   2006-10-29 20:13:03 UTC (rev 3891)
@@ -55,7 +55,11 @@
     if (GR_HIER_BLOCK2_DEBUG)
        std::cout << "Adding block '" << name << "' to container '" << d_name 
<< "'" << std::endl;
 
-    if (d_impl->lookup_component(name))
+    if (d_impl->get_component_by_name(name))
+       throw std::invalid_argument("Name already in use");
+       
+    std::string result = d_impl->get_name_by_component(comp);
+    if (d_impl->get_name_by_component(comp) != std::string(""))
        throw std::invalid_argument("Component already defined");
 
     d_impl->d_components.push_back(gr_hier_component(name, comp));

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
      2006-10-28 22:39:26 UTC (rev 3890)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
      2006-10-29 20:13:03 UTC (rev 3891)
@@ -37,7 +37,7 @@
 {
 }
 
-gr_basic_block_sptr gr_hier_block2_impl::lookup_component(std::string name)
+gr_basic_block_sptr gr_hier_block2_impl::get_component_by_name(std::string 
name)
 {
     for (std::vector<gr_hier_component>::const_iterator p = 
d_components.begin();
         p != d_components.end(); p++) {
@@ -47,3 +47,14 @@
 
     return gr_basic_block_sptr();
 }
+
+std::string gr_hier_block2_impl::get_name_by_component(gr_basic_block_sptr 
component)
+{
+    for (std::vector<gr_hier_component>::const_iterator p = 
d_components.begin();
+        p != d_components.end(); p++) {
+       if (component == p->component())
+           return p->name();
+    }
+
+    return std::string();
+}

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
       2006-10-28 22:39:26 UTC (rev 3890)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
       2006-10-29 20:13:03 UTC (rev 3891)
@@ -55,8 +55,9 @@
 
     std::vector<gr_hier_component> d_components;
 
-    gr_basic_block_sptr lookup_component(const std::string name);
-        
+    gr_basic_block_sptr get_component_by_name(const std::string name);
+    std::string get_name_by_component(gr_basic_block_sptr component);
+            
 public:
     ~gr_hier_block2_impl();
 };

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
    2006-10-28 22:39:26 UTC (rev 3890)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
    2006-10-29 20:13:03 UTC (rev 3891)
@@ -31,7 +31,7 @@
        hblock.define_component("source", src1)
        hblock.define_component("sink", sink1)
 
-    def test_003_define_component_already_defined(self):
+    def test_003_define_component_name_in_use(self):
        hblock = gr.hier_block2("test_block", 
                                gr.io_signature(1,1,gr.sizeof_int), 
                                gr.io_signature(1,1,gr.sizeof_int))
@@ -42,6 +42,15 @@
        hblock.define_component("source", src1)
        self.assertRaises(ValueError, lambda: hblock.define_component("source", 
sink1))
     
+    def test_004_define_component_block_in_use(self):
+       hblock = gr.hier_block2("test_block", 
+                               gr.io_signature(1,1,gr.sizeof_int), 
+                               gr.io_signature(1,1,gr.sizeof_int))
+
+       nop1 = gr.nop(gr.sizeof_int)
+       nop2 = gr.nop(gr.sizeof_int)
+       hblock.define_component("nop1", nop1)
+       self.assertRaises(ValueError, lambda: hblock.define_component("nop2", 
nop1))
     
 if __name__ == "__main__":
     gr_unittest.main()
\ No newline at end of file





reply via email to

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