[EMAIL PROTECTED] wrote:

Author: niq
Date: Tue Aug  9 16:15:03 2005
New Revision: 231136

URL: http://svn.apache.org/viewcvs?rev=231136&view=rev
Log:
Revise apr_dbd to hide driver struct from public API
 - so it can be extended without touching any public structs
[...]

Modified: apr/apr-util/trunk/dbd/apr_dbd.c
URL: 
http://svn.apache.org/viewcvs/apr/apr-util/trunk/dbd/apr_dbd.c?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- apr/apr-util/trunk/dbd/apr_dbd.c (original)
+++ apr/apr-util/trunk/dbd/apr_dbd.c Tue Aug  9 16:15:03 2005
@@ -16,8 +16,11 @@

#include <stdio.h>

+#define APR_DBD_C
[...]

+#ifndef APR_DBD_INTERNAL
+typedef struct apr_dbd_t apr_dbd_t;
+typedef struct apr_dbd_transaction_t apr_dbd_transaction_t;
+typedef struct apr_dbd_results_t apr_dbd_results_t;
+typedef struct apr_dbd_row_t apr_dbd_row_t;
+typedef struct apr_dbd_prepared_t apr_dbd_prepared_t;
+#endif
[...]

Modified: apr/apr-util/trunk/include/apr_dbd.h
URL: 
http://svn.apache.org/viewcvs/apr/apr-util/trunk/include/apr_dbd.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- apr/apr-util/trunk/include/apr_dbd.h (original)
+++ apr/apr-util/trunk/include/apr_dbd.h Tue Aug  9 16:15:03 2005
@@ -25,8 +25,10 @@
extern "C" {
#endif

+#if defined APR_DBD_INTERNAL || defined APR_DBD_C
+#include "apr_dbd_internal.h"
+#else
Please don't do this. Conditionally including private headers from public ones is evil, and it's not necessary anyway.

Just put the forward declarations of the opaque structures inth apr_dbd.h, loose the APR_DBD_INTERNAL and APR_DBD_C defines, and let the implementation files include apr_dbd_internal.h when they need it. You can move apr_dbd_internal.h back to the dbd directory then.



-- Brane

Reply via email to