Merged jcorgan/sfg changeset r4048 into trunk.
[debian/gnuradio] / gnuradio-core / src / lib / runtime / gr_runtime.h
index 55cbabe1823386cf6444b8b187af54f7cb0fa459..fc58da456bf2ce978dc83a69cb2d6c5260eb3c01 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2006 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
 #ifndef INCLUDED_GR_RUNTIME_H
 #define INCLUDED_GR_RUNTIME_H
 
-#include <gr_types.h>
+#include <gr_runtime_types.h>
 
-/*
- * typedefs for smart pointers we use throughout the runtime system
- */
+class gr_runtime_impl;
+
+gr_runtime_sptr gr_make_runtime(gr_hier_block2_sptr top_block);
+
+class gr_runtime
+{
+private:
+    gr_runtime(gr_hier_block2_sptr top_block);
+    friend gr_runtime_sptr gr_make_runtime(gr_hier_block2_sptr top_block);
+
+    gr_runtime_impl *d_impl;
+    
+public:
+    ~gr_runtime();
 
-class gr_block;
-class gr_block_detail;
-class gr_io_signature;
-class gr_buffer;
-class gr_buffer_reader;
-
-typedef boost::shared_ptr<gr_block>            gr_block_sptr;
-typedef boost::shared_ptr<gr_block_detail>     gr_block_detail_sptr;
-typedef boost::shared_ptr<gr_io_signature>     gr_io_signature_sptr;
-typedef boost::shared_ptr<gr_buffer>           gr_buffer_sptr;
-typedef boost::shared_ptr<gr_buffer_reader>    gr_buffer_reader_sptr;
+    void start();
+    void stop();
+    void wait();
+    void run();
+};
 
 #endif /* INCLUDED_GR_RUNTIME_H */