Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bsecxxclosure.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_CXX_CLOSURE_H__
3 #define __BSE_CXX_CLOSURE_H__
4 
5 #include <bse/bsecxxvalue.hh>
6 #include <bse/bsecxxarg.hh>
7 
8 namespace Bse {
9 
10 class CxxClosure {
11  GClosure *glib_closure;
12  CxxClosure& operator= (const CxxClosure &c);
13  explicit CxxClosure (const CxxClosure &c);
14 protected:
15  String sig_tokens;
16  virtual void operator() (Value *return_value,
17  const Value *param_values,
18  gpointer invocation_hint,
19  gpointer marshal_data) = 0;
20 public:
21  explicit CxxClosure ();
22  virtual ~CxxClosure ();
23  GClosure* gclosure ();
24  const String signature () { return sig_tokens; }
25 };
26 
27 /* include generated CxxClosure* Closure (class T*, ... (T::*f) (...)); constructors */
28 #include <bse/bsegenclosures.hh>
29 
30 } // Bse
31 
32 #endif /* __BSE_CXX_CLOSURE_H__ */
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:91
Definition: bsecxxvalue.hh:13
STL class.
Definition: bsecxxclosure.hh:10