+/* SWIG interface for libitkacl */
+%module itkacl
+%include exception.i
+
+/*
+ * ITKACL now threadsafe using exceptions found in PHP5.
+ * -1 is return on unexpected event, eg. realm doesn't exist.
+ *
+ * The naming of the class is somewhat braindamaged due to SWIG
+ * restrictions.
+ */
+%inline %{
+ /* This is due to Swig forgetting one file */
+ #include <php5/Zend/zend_exceptions.h>
+
+ extern "C" int itkacl_check(char *realm, char *user, char *errmsg, size_t errmsgsize);
+
+ class itkaclwrap {
+ public:
+ static int check(char *realm, char *user);
+ };
+
+ int itkaclwrap::check(char *realm, char *user)
+ {
+ char itkacl_errmsg[1024];
+ int ret = itkacl_check(realm, user, itkacl_errmsg, 1024);
+ if (ret == -1) {
+ SWIG_exception(SWIG_RuntimeError,itkacl_errmsg);
+ } else {
+ return ret == 0;
+ }
+ }
+%}
+