/* -*- 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 */