commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r6208 - gnuradio/trunk/gnuradio-core/src/lib/runtime


From: jcorgan
Subject: [Commit-gnuradio] r6208 - gnuradio/trunk/gnuradio-core/src/lib/runtime
Date: Wed, 29 Aug 2007 13:16:10 -0600 (MDT)

Author: jcorgan
Date: 2007-08-29 13:16:10 -0600 (Wed, 29 Aug 2007)
New Revision: 6208

Modified:
   gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2.h
   gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
Log:
Clean up shared pointer casting.

Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2.h
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2.h       
2007-08-29 19:03:41 UTC (rev 6207)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2.h       
2007-08-29 19:16:10 UTC (rev 6208)
@@ -89,4 +89,8 @@
   gr_flat_flowgraph_sptr flatten() const;
 };
 
+inline gr_hier_block2_sptr make_hier_block2_sptr(gr_basic_block_sptr block) {
+  return boost::dynamic_pointer_cast<gr_hier_block2, gr_basic_block>(block);
+}
+
 #endif /* INCLUDED_GR_HIER_BLOCK2_H */

Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc       
2007-08-29 19:03:41 UTC (rev 6207)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc       
2007-08-29 19:16:10 UTC (rev 6208)
@@ -57,8 +57,8 @@
   if (src.get() == dst.get())
     throw std::invalid_argument("connect: src and destination blocks cannot be 
the same");
 
-  gr_hier_block2_sptr src_block(boost::dynamic_pointer_cast<gr_hier_block2, 
gr_basic_block>(src));
-  gr_hier_block2_sptr dst_block(boost::dynamic_pointer_cast<gr_hier_block2, 
gr_basic_block>(dst));
+  gr_hier_block2_sptr src_block(make_hier_block2_sptr(src));
+  gr_hier_block2_sptr dst_block(make_hier_block2_sptr(dst));
 
   if (src_block && src.get() != d_owner) {
     if (GR_HIER_BLOCK2_DETAIL_DEBUG)
@@ -111,8 +111,8 @@
   if (src.get() == dst.get())
     throw std::invalid_argument("disconnect: source and destination blocks 
cannot be the same");
 
-  gr_hier_block2_sptr src_block(boost::dynamic_pointer_cast<gr_hier_block2, 
gr_basic_block>(src));
-  gr_hier_block2_sptr dst_block(boost::dynamic_pointer_cast<gr_hier_block2, 
gr_basic_block>(dst));
+  gr_hier_block2_sptr src_block(make_hier_block2_sptr(src));
+  gr_hier_block2_sptr dst_block(make_hier_block2_sptr(dst));
 
   if (src_block && src.get() != d_owner) {
     if (GR_HIER_BLOCK2_DETAIL_DEBUG)
@@ -258,11 +258,11 @@
   std::stringstream msg;
 
   // Check if endpoint is a leaf node
-  if (boost::dynamic_pointer_cast<gr_block, gr_basic_block>(endp.block()))
+  if (make_gr_block_sptr(endp.block()))
     return endp;
   
   // Check if endpoint is a hierarchical block
-  gr_hier_block2_sptr hier_block2(boost::dynamic_pointer_cast<gr_hier_block2, 
gr_basic_block>(endp.block()));
+  gr_hier_block2_sptr hier_block2(make_hier_block2_sptr(endp.block()));
   if (hier_block2) {
     if (GR_HIER_BLOCK2_DETAIL_DEBUG)
       std::cout << "Resolving endpoint " << endp << " as an " 
@@ -298,7 +298,7 @@
 
   // Recurse hierarchical children
   for (gr_basic_block_viter_t p = blocks.begin(); p != blocks.end(); p++) {
-    gr_hier_block2_sptr 
hier_block2(boost::dynamic_pointer_cast<gr_hier_block2, gr_basic_block>(*p));
+    gr_hier_block2_sptr hier_block2(make_hier_block2_sptr(*p));
     if (hier_block2)
       hier_block2->d_detail->flatten_aux(sfg);
   }





reply via email to

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