| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /* See http://www.python-ldap.org/ for details.
- * $Id: LDAPObject.h,v 1.10 2009/04/17 12:19:09 stroeder Exp $ */
- #ifndef __h_LDAPObject
- #define __h_LDAPObject
- #include "common.h"
- #include "lber.h"
- #include "ldap.h"
- #if LDAP_API_VERSION < 2000
- #error Current python-ldap requires OpenLDAP 2.x
- #endif
- #if PYTHON_API_VERSION < 1007
- typedef PyObject* _threadstate;
- #else
- typedef PyThreadState* _threadstate;
- #endif
- typedef struct {
- PyObject_HEAD
- LDAP* ldap;
- _threadstate _save; /* for thread saving on referrals */
- int valid;
- } LDAPObject;
- extern PyTypeObject LDAP_Type;
- #define LDAPObject_Check(v) ((v)->ob_type == &LDAP_Type)
- extern LDAPObject *newLDAPObject( LDAP* );
- /* macros to allow thread saving in the context of an LDAP connection */
- #define LDAP_BEGIN_ALLOW_THREADS( l ) \
- { \
- LDAPObject *lo = (l); \
- if (lo->_save != NULL) \
- Py_FatalError( "saving thread twice?" ); \
- lo->_save = PyEval_SaveThread(); \
- }
- #define LDAP_END_ALLOW_THREADS( l ) \
- { \
- LDAPObject *lo = (l); \
- _threadstate _save = lo->_save; \
- lo->_save = NULL; \
- PyEval_RestoreThread( _save ); \
- }
- #endif /* __h_LDAPObject */
|