text: /*
   * @author Mário Soares
   * @contributors Jefferson González
   * @contributors René Vögeli / Rangee GmbH
   * 
   * @license 
   * This file is part of wxPHP check the LICENSE file for information.
   * 
   * @note
   * This file was auto-generated by the wxPHP source maker
  */
  
  #ifndef WXPHP_THREADING_H_GUARD
  #define WXPHP_THREADING_H_GUARD
  
  #include "references.h"
  #include "object_types.h"
  
  ZEND_BEGIN_ARG_INFO_EX(wxphp_threading_get_args, 0, 0, 1)
      ZEND_ARG_INFO(0, name)
  ZEND_END_ARG_INFO()
  
  extern zend_class_entry* php_wxCondition_entry;
  extern zend_object_handlers wxphp_wxCondition_object_handlers;
  void php_wxCondition_destruction_handler(zend_resource*);
  
  class wxCondition_php: public wxCondition{
      public:
  
      wxCondition_php(wxMutex& mutex):wxCondition(mutex){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxCondition{
      wxCondition_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxCondition;
  
  void php_wxCondition_free(void *object);
  zend_object* php_wxCondition_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxCondition_functions[] = {
      PHP_ME(php_wxCondition, Broadcast, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCondition, IsOk, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCondition, Signal, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCondition, Wait, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCondition, WaitTimeout, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCondition, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxCondition * php_wxCondition_fetch_object(zend_object *obj) {
      return (zo_wxCondition *)(
          (char *)(obj) - XtOffsetOf(zo_wxCondition, zo)
      );
  }
  
  #define Z_wxCondition_P(zv) \
      php_wxCondition_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxCriticalSectionLocker_entry;
  extern zend_object_handlers wxphp_wxCriticalSectionLocker_object_handlers;
  void php_wxCriticalSectionLocker_destruction_handler(zend_resource*);
  
  class wxCriticalSectionLocker_php: public wxCriticalSectionLocker{
      public:
  
      wxCriticalSectionLocker_php(wxCriticalSection& criticalsection):wxCriticalSectionLocker(criticalsection){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxCriticalSectionLocker{
      wxCriticalSectionLocker_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxCriticalSectionLocker;
  
  void php_wxCriticalSectionLocker_free(void *object);
  zend_object* php_wxCriticalSectionLocker_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxCriticalSectionLocker_functions[] = {
      PHP_ME(php_wxCriticalSectionLocker, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxCriticalSectionLocker * php_wxCriticalSectionLocker_fetch_object(zend_object *obj) {
      return (zo_wxCriticalSectionLocker *)(
          (char *)(obj) - XtOffsetOf(zo_wxCriticalSectionLocker, zo)
      );
  }
  
  #define Z_wxCriticalSectionLocker_P(zv) \
      php_wxCriticalSectionLocker_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxThreadHelper_entry;
  extern zend_object_handlers wxphp_wxThreadHelper_object_handlers;
  void php_wxThreadHelper_destruction_handler(zend_resource*);
  
  class wxThreadHelper_php: public wxThreadHelper{
      public:
  
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxThreadHelper{
      wxThreadHelper_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxThreadHelper;
  
  void php_wxThreadHelper_free(void *object);
  zend_object* php_wxThreadHelper_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxThreadHelper_functions[] = {
      PHP_ME(php_wxThreadHelper, GetThread, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThreadHelper, CreateThread, NULL, ZEND_ACC_PUBLIC)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxThreadHelper * php_wxThreadHelper_fetch_object(zend_object *obj) {
      return (zo_wxThreadHelper *)(
          (char *)(obj) - XtOffsetOf(zo_wxThreadHelper, zo)
      );
  }
  
  #define Z_wxThreadHelper_P(zv) \
      php_wxThreadHelper_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxCriticalSection_entry;
  extern zend_object_handlers wxphp_wxCriticalSection_object_handlers;
  void php_wxCriticalSection_destruction_handler(zend_resource*);
  
  class wxCriticalSection_php: public wxCriticalSection{
      public:
  
      wxCriticalSection_php(wxCriticalSectionType critSecType=wxCRITSEC_DEFAULT):wxCriticalSection(critSecType){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxCriticalSection{
      wxCriticalSection_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxCriticalSection;
  
  void php_wxCriticalSection_free(void *object);
  zend_object* php_wxCriticalSection_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxCriticalSection_functions[] = {
      PHP_ME(php_wxCriticalSection, Enter, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCriticalSection, Leave, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCriticalSection, TryEnter, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxCriticalSection, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxCriticalSection * php_wxCriticalSection_fetch_object(zend_object *obj) {
      return (zo_wxCriticalSection *)(
          (char *)(obj) - XtOffsetOf(zo_wxCriticalSection, zo)
      );
  }
  
  #define Z_wxCriticalSection_P(zv) \
      php_wxCriticalSection_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxThread_entry;
  extern zend_object_handlers wxphp_wxThread_object_handlers;
  void php_wxThread_destruction_handler(zend_resource*);
  
  class wxThread_php: public wxThread{
      public:
  
      wxThread_php(wxThreadKind kind=wxTHREAD_DETACHED):wxThread(kind){}
      
      void* Entry();
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxThread{
      wxThread_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxThread;
  
  void php_wxThread_free(void *object);
  zend_object* php_wxThread_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxThread_functions[] = {
      PHP_ME(php_wxThread, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_ME(php_wxThread, YieldMethod, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, This, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, TestDestroy, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, SetPriority, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Sleep, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, SetConcurrency, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetCPUCount, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetCurrentId, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetId, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetKind, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetMainId, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, GetPriority, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, IsAlive, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, IsDetached, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, IsMain, NULL, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, IsPaused, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, IsRunning, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Kill, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Pause, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Resume, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Run, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Create, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Delete, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxThread, Wait, NULL, ZEND_ACC_PUBLIC)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxThread * php_wxThread_fetch_object(zend_object *obj) {
      return (zo_wxThread *)(
          (char *)(obj) - XtOffsetOf(zo_wxThread, zo)
      );
  }
  
  #define Z_wxThread_P(zv) \
      php_wxThread_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxSemaphore_entry;
  extern zend_object_handlers wxphp_wxSemaphore_object_handlers;
  void php_wxSemaphore_destruction_handler(zend_resource*);
  
  class wxSemaphore_php: public wxSemaphore{
      public:
  
      wxSemaphore_php(int initialcount=0, int maxcount=0):wxSemaphore(initialcount, maxcount){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxSemaphore{
      wxSemaphore_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxSemaphore;
  
  void php_wxSemaphore_free(void *object);
  zend_object* php_wxSemaphore_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxSemaphore_functions[] = {
      PHP_ME(php_wxSemaphore, Post, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxSemaphore, TryWait, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxSemaphore, Wait, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxSemaphore, WaitTimeout, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxSemaphore, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxSemaphore * php_wxSemaphore_fetch_object(zend_object *obj) {
      return (zo_wxSemaphore *)(
          (char *)(obj) - XtOffsetOf(zo_wxSemaphore, zo)
      );
  }
  
  #define Z_wxSemaphore_P(zv) \
      php_wxSemaphore_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxMutexLocker_entry;
  extern zend_object_handlers wxphp_wxMutexLocker_object_handlers;
  void php_wxMutexLocker_destruction_handler(zend_resource*);
  
  class wxMutexLocker_php: public wxMutexLocker{
      public:
  
      wxMutexLocker_php(wxMutex& mutex):wxMutexLocker(mutex){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxMutexLocker{
      wxMutexLocker_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxMutexLocker;
  
  void php_wxMutexLocker_free(void *object);
  zend_object* php_wxMutexLocker_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxMutexLocker_functions[] = {
      PHP_ME(php_wxMutexLocker, IsOk, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxMutexLocker, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxMutexLocker * php_wxMutexLocker_fetch_object(zend_object *obj) {
      return (zo_wxMutexLocker *)(
          (char *)(obj) - XtOffsetOf(zo_wxMutexLocker, zo)
      );
  }
  
  #define Z_wxMutexLocker_P(zv) \
      php_wxMutexLocker_fetch_object(Z_OBJ_P(zv))
  extern zend_class_entry* php_wxMutex_entry;
  extern zend_object_handlers wxphp_wxMutex_object_handlers;
  void php_wxMutex_destruction_handler(zend_resource*);
  
  class wxMutex_php: public wxMutex{
      public:
  
      wxMutex_php(wxMutexType type=wxMUTEX_DEFAULT):wxMutex(type){}
      
      
  
      zval phpObj;
      wxPHPObjectReferences references;
  };
  
  BEGIN_EXTERN_C()
  typedef struct _zo_wxMutex{
      wxMutex_php* native_object;
      wxphp_object_type object_type;
      int is_user_initialized;
      zend_object zo;
  } zo_wxMutex;
  
  void php_wxMutex_free(void *object);
  zend_object* php_wxMutex_new(zend_class_entry *class_type);
  END_EXTERN_C()
  
  #ifdef WXPHP_INCLUDE_METHOD_TABLES
  static zend_function_entry php_wxMutex_functions[] = {
      PHP_ME(php_wxMutex, Lock, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxMutex, LockTimeout, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxMutex, TryLock, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxMutex, Unlock, NULL, ZEND_ACC_PUBLIC)
      PHP_ME(php_wxMutex, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
      PHP_FE_END
  };
  #endif
  
  
  static inline zo_wxMutex * php_wxMutex_fetch_object(zend_object *obj) {
      return (zo_wxMutex *)(
          (char *)(obj) - XtOffsetOf(zo_wxMutex, zo)
      );
  }
  
  #define Z_wxMutex_P(zv) \
      php_wxMutex_fetch_object(Z_OBJ_P(zv))
  #endif //WXPHP_THREADING_H_GUARD
  