summaryrefslogtreecommitdiff
path: root/share/swig/2.0.11/d/director.swg
diff options
context:
space:
mode:
Diffstat (limited to 'share/swig/2.0.11/d/director.swg')
-rw-r--r--share/swig/2.0.11/d/director.swg46
1 files changed, 46 insertions, 0 deletions
diff --git a/share/swig/2.0.11/d/director.swg b/share/swig/2.0.11/d/director.swg
new file mode 100644
index 0000000..9692e03
--- /dev/null
+++ b/share/swig/2.0.11/d/director.swg
@@ -0,0 +1,46 @@
+/* -----------------------------------------------------------------------------
+ * director.swg
+ *
+ * This file contains support for director classes so that D proxy
+ * methods can be called from C++.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+
+#if defined(DEBUG_DIRECTOR_OWNED)
+#include <iostream>
+#endif
+#include <string>
+
+namespace Swig {
+ // Director base class – not used in D directors.
+ class Director {
+ };
+
+ // Base class for director exceptions.
+ class DirectorException {
+ protected:
+ std::string swig_msg;
+
+ public:
+ DirectorException(const char* msg) : swig_msg(msg) {
+ }
+ DirectorException(const std::string &msg) : swig_msg(msg) {
+ }
+ const std::string& what() const {
+ return swig_msg;
+ }
+ virtual ~DirectorException() {
+ }
+ };
+
+ // Exception which is thrown when attempting to call a pure virtual method
+ // from D code thorugh the director layer.
+ class DirectorPureVirtualException : public Swig::DirectorException {
+ public:
+ DirectorPureVirtualException(const char* msg) : DirectorException(std::string("Attempted to invoke pure virtual method ") + msg) {
+ }
+ };
+}
+
+#endif /* __cplusplus */