3 * Copyright 2007 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #ifndef INCLUDED_MB_RUNTIME_PLACEHOLDER_H
22 #define INCLUDED_MB_RUNTIME_PLACEHOLDER_H
24 #include <mb_runtime.h>
27 * \brief Concrete runtime that serves as a placeholder until the real
30 * The singleton instance of this class is installed in the d_runtime
31 * instance variable of each mb_mblock_impl at construction time.
32 * Having a valid instance of runtime removes the "pre runtime::run"
33 * corner case, and allows us to lock and unlock the big runtime lock
34 * even though there's no "real runtime" yet.
36 class mb_runtime_placeholder : public mb_runtime
40 mb_runtime_placeholder();
41 ~mb_runtime_placeholder();
43 //! throws mbe_not_implemented
44 bool run(mb_mblock_sptr top);
46 //! Return the placeholder singleton
47 static mb_runtime *singleton();
50 #endif /* INCLUDED_MB_RUNTIME_PLACEHOLDER_H */