Author: jelmer Date: 2007-10-12 01:25:52 +0000 (Fri, 12 Oct 2007) New Revision: 25621
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25621 Log: Use somewhat more OO interface. Modified: branches/4.0-python/ branches/4.0-python/source/lib/ldb/setup.py branches/4.0-python/source/lib/ldb/swig/ldb.i branches/4.0-python/source/lib/ldb/tests/python/ldb.py Changeset: Property changes on: branches/4.0-python ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:file-ids ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/4.0-python/source/lib/ldb/setup.py =================================================================== --- branches/4.0-python/source/lib/ldb/setup.py 2007-10-12 00:07:39 UTC (rev 25620) +++ branches/4.0-python/source/lib/ldb/setup.py 2007-10-12 01:25:52 UTC (rev 25621) @@ -4,5 +4,5 @@ setup(name='ldb', version='1.0', ext_modules=[Extension('_ldb', ['swig/ldb.i'], include_dirs=['include'], - libraries=['ldb','ldap'])], + libraries=['ldb','ldap'])], ) Modified: branches/4.0-python/source/lib/ldb/swig/ldb.i =================================================================== --- branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-12 00:07:39 UTC (rev 25620) +++ branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-12 01:25:52 UTC (rev 25621) @@ -40,10 +40,14 @@ #include "talloc.h" #include "ldb.h" +typedef struct ldb_message ldb_msg; +typedef struct ldb_message_element ldb_msg_element; + %} %include "carrays.i" %include "exception.i" +%include "typemaps.i" /* * Constants @@ -162,12 +166,12 @@ %array_functions(struct ldb_val, ldb_val_array); -struct ldb_message_element { +typedef struct ldb_message_element { unsigned int flags; const char *name; unsigned int num_values; struct ldb_val *values; -}; +} ldb_msg_element; /* * Wrap struct ldb_message @@ -175,11 +179,16 @@ %array_functions(struct ldb_message_element, ldb_message_element_array); -struct ldb_message { +typedef struct ldb_message { struct ldb_dn *dn; unsigned int num_elements; struct ldb_message_element *elements; -}; + %extend { + int add_value(const char *attr_name, const struct ldb_val *val, ldb_msg_element **return_el); + ldb_msg_element *find_element(const char *attr_name); + void remove_attr(const char *attr); + } +} ldb_msg; /* * Wrap struct ldb_result @@ -189,7 +198,7 @@ struct ldb_result { unsigned int count; - struct ldb_message **msgs; + ldb_msg **msgs; char **refs; struct ldb_control **controls; }; @@ -218,18 +227,12 @@ int ldb_rename(struct ldb_context *ldb, struct ldb_dn *olddn, struct ldb_dn *newdn); -int ldb_add(struct ldb_context *ldb, const struct ldb_message *message); +int ldb_add(struct ldb_context *ldb, ldb_msg *message); /* Ldb message operations */ -struct ldb_message *ldb_msg_new(void *mem_ctx); +ldb_msg *ldb_msg_new(void *mem_ctx); -struct ldb_message_element *ldb_msg_find_element(const struct ldb_message *msg, const char *attr_name); - -int ldb_msg_add_value(struct ldb_message *msg, const char *attr_name, const struct ldb_val *val, struct ldb_message_element **return_el); - -void ldb_msg_remove_attr(struct ldb_message *msg, const char *attr); - int ldb_msg_sanity_check(struct ldb_context *ldb, const struct ldb_message *msg); /* DN operations */ @@ -238,4 +241,7 @@ /* char *ldb_dn_linearize(void *mem_ctx, const struct ldb_dn *dn); */ +%apply ldb_msg_element **OUTPUT { ldb_msg_element **return_el }; +%nodefault ldb_message; +%newobject ldb_msg_new; %rename(ldb_context) Ldb; Modified: branches/4.0-python/source/lib/ldb/tests/python/ldb.py =================================================================== --- branches/4.0-python/source/lib/ldb/tests/python/ldb.py 2007-10-12 00:07:39 UTC (rev 25620) +++ branches/4.0-python/source/lib/ldb/tests/python/ldb.py 2007-10-12 01:25:52 UTC (rev 25621) @@ -6,7 +6,7 @@ # Copyright (C) Jelmer Vernooij 2007 # -import ldb +from ldb import Ldb import os, sys if len(sys.argv) != 2: