]> granicus.if.org Git - apache/commitdiff
Start of further refactoring....
authorJim Jagielski <jim@apache.org>
Tue, 30 Dec 2008 17:07:25 +0000 (17:07 +0000)
committerJim Jagielski <jim@apache.org>
Tue, 30 Dec 2008 17:07:25 +0000 (17:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@730180 13f79535-47bb-0310-9956-ffa450edef68

modules/mem/config5.m4
modules/mem/mod_slotmem.c [new file with mode: 0644]
modules/mem/mod_slotmem.h [moved from modules/mem/slotmem.h with 100% similarity]
modules/mem/providers/Makefile.in [new file with mode: 0644]
modules/mem/providers/config6.m4 [new file with mode: 0644]
modules/mem/providers/mod_plainmem.c [moved from modules/mem/mod_plainmem.c with 100% similarity]
modules/mem/providers/mod_sharedmem.c [moved from modules/mem/mod_sharedmem.c with 100% similarity]

index 7e170926674c03ca60b95035def0b429a4466545..aa1e99d5c5ef9607d0c86b83fa191d3f6d83093e 100644 (file)
@@ -3,12 +3,19 @@ dnl modules enabled in this directory by default
 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
 
 APACHE_MODPATH_INIT(mem)
+if test "$enable_slotmem" = "shared"; then
+  slotmem_mods_enable=shared
+elif test "$enable_slotmem" = "yes"; then
+  slotmem_mods_enable=yes
+else
+  slotmem_mods_enable=no
+fi
 
-sharedmem_objs="mod_sharedmem.lo"
-APACHE_MODULE(sharedmem, memslot provider that uses shared memory, $sharedmem_objs, , most)
-APACHE_MODULE(plainmem, memslot provider that uses plain memory, , , no)
+slotmem_objs="mod_slotmem.lo"
 
-# Ensure that other modules can pick up slotmem.h
+APACHE_MODULE(slotmem, slot-based memory API using providers, $slotmem_objs, , most)
+
+# Ensure that other modules can pick up mod_slotmem.h
 APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
 
 APACHE_MODPATH_FINISH
diff --git a/modules/mem/mod_slotmem.c b/modules/mem/mod_slotmem.c
new file mode 100644 (file)
index 0000000..ea39ebe
--- /dev/null
@@ -0,0 +1,79 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Memory handler for a plain memory divided in slot.
+ * This one uses plain memory.
+ */
+
+#include  "mod_slotmem.h"
+
+AP_DECLARE(ap_slotmem_storage_method *) ap_slotmem_method(const char *provider)
+{
+    return (ap_lookup_provider(SLOTMEM_STORAGE, provider, "0"));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_do(ap_slotmem_storage_method *sm,
+                                       ap_slotmem_t *s,
+                                       ap_slotmem_callback_fn_t *func,
+                                       void *data, apr_pool_t *pool)
+{
+    return (sm->slotmem_do(s, func, data, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_create(ap_slotmem_storage_method *sm,
+                                           ap_slotmem_t **new, const char *name,
+                                           apr_size_t item_size, int item_num,
+                                           apr_pool_t *pool)
+{
+    return (sm->slotmem_create(new, name, item_size, item_num, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_attach(ap_slotmem_storage_method *sm,
+                                           ap_slotmem_t **new, const char *name,
+                                           apr_size_t *item_size, int *item_num,
+                                           apr_pool_t *pool)
+{
+    return (sm->slotmem_attach(new, name, item_size, item_num, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_mem(ap_slotmem_storage_method *sm,
+                                        ap_slotmem_t *s, int item_id, void**mem)
+{
+    return (sm->slotmem_mem(s, item_id, mem));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_lock(ap_slotmem_storage_method *sm,
+                                         ap_slotmem_t *s)
+{
+    return (sm->slotmem_lock(s));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_unlock(ap_slotmem_storage_method *sm,
+                                           ap_slotmem_t *s)
+{
+    return (sm->slotmem_unlock(s));
+}
+
+
+module AP_MODULE_DECLARE_DATA slotmem_module = {
+    STANDARD20_MODULE_STUFF,
+    NULL,                      /* create per-directory config structure */
+    NULL,                      /* merge per-directory config structures */
+    NULL,                      /* create per-server config structure */
+    NULL,                      /* merge per-server config structures */
+    NULL,                      /* command apr_table_t */
+    NULL                        /* register hooks */
+};
diff --git a/modules/mem/providers/Makefile.in b/modules/mem/providers/Makefile.in
new file mode 100644 (file)
index 0000000..7c5c149
--- /dev/null
@@ -0,0 +1,3 @@
+# a modules Makefile has no explicit targets -- they will be defined by
+# whatever modules are enabled. just grab special.mk to deal with this.
+include $(top_srcdir)/build/special.mk
diff --git a/modules/mem/providers/config6.m4 b/modules/mem/providers/config6.m4
new file mode 100644 (file)
index 0000000..cabe2ee
--- /dev/null
@@ -0,0 +1,14 @@
+dnl modules enabled in this directory by default
+
+dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
+
+APACHE_MODPATH_INIT(mem/providers)
+
+sharedmem_objs="mod_sharedmem.lo"
+APACHE_MODULE(sharedmem, memslot provider that uses shared memory, $sharedmem_objs, , $slotmem_mods_enable)
+APACHE_MODULE(plainmem, memslot provider that uses plain memory, , , no)
+
+# Ensure that other modules can pick up slotmem.h
+APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+
+APACHE_MODPATH_FINISH