No need to construct a SmokeBinding per Smoke module.
Annotate for file src/libsmoke/smokebinding.h
2010-01-10 tobias 1 #ifndef SMOKEBINDING_H
08:49:36 ' 2 #define SMOKEBINDING_H
2009-04-05 tobias 3
15:36:29 ' 4 #include <smoke.h>
' 5
' 6 namespace cl_smoke
' 7 {
' 8
2010-02-18 tobias 9 class NoDispatchBinding : public SmokeBinding
2009-04-05 tobias 10 {
15:36:29 ' 11 public:
2009-06-22 tobias 12 typedef void (*destructed)(void* object);
2009-04-05 tobias 13
2010-02-19 tobias 14 NoDispatchBinding(destructed destruct);
2009-04-05 tobias 15
15:36:29 ' 16 virtual void
2009-06-22 tobias 17 deleted(Smoke::Index classId, void *object);
2009-04-05 tobias 18
15:36:29 ' 19 virtual bool
' 20 callMethod(Smoke::Index method, void* object,
' 21 Smoke::Stack stack, bool abstract);
' 22
' 23 virtual char*
' 24 className(Smoke::Index classId);
' 25
' 26 private:
' 27 const destructed destruct;
2010-02-18 tobias 28 };
19:57:00 ' 29
' 30 class Binding : public NoDispatchBinding
' 31 {
' 32 public:
2010-02-19 tobias 33 typedef int (*dispatch_method)(Smoke::Index method,
2010-02-18 tobias 34 void* object, Smoke::Stack args, int abstract);
19:57:00 ' 35
2010-02-19 tobias 36 Binding(destructed destruct, dispatch_method dispatch);
2010-02-18 tobias 37
19:57:00 ' 38
' 39 virtual bool
' 40 callMethod(Smoke::Index method, void* object,
' 41 Smoke::Stack stack, bool abstract);
' 42
' 43
' 44 private:
2009-04-05 tobias 45 const dispatch_method dispatch;
15:36:29 ' 46 };
' 47
' 48 } // namespace cl_smoke
' 49
2010-01-10 tobias 50 #endif // SMOKEBINDING_H