Author: pnoltes
Date: Wed Jun  4 12:17:56 2014
New Revision: 1600137

URL: http://svn.apache.org/r1600137
Log:
CELIX-119: removed apr mem pools from filter, service_reference and added 
resulting needed changes 

Modified:
    incubator/celix/trunk/framework/private/mock/service_reference_mock.c
    incubator/celix/trunk/framework/private/mock/service_registration_mock.c
    incubator/celix/trunk/framework/private/mock/service_registry_mock.c
    incubator/celix/trunk/framework/private/src/filter.c
    incubator/celix/trunk/framework/private/src/framework.c
    incubator/celix/trunk/framework/private/src/service_reference.c
    incubator/celix/trunk/framework/private/src/service_registry.c
    incubator/celix/trunk/framework/public/include/filter.h
    incubator/celix/trunk/framework/public/include/service_reference.h
    incubator/celix/trunk/framework/public/include/service_registry.h

Modified: incubator/celix/trunk/framework/private/mock/service_reference_mock.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/mock/service_reference_mock.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/mock/service_reference_mock.c 
(original)
+++ incubator/celix/trunk/framework/private/mock/service_reference_mock.c Wed 
Jun  4 12:17:56 2014
@@ -27,7 +27,7 @@
 
 #include "service_reference_private.h"
 
-celix_status_t serviceReference_create(apr_pool_t *pool, bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference) {
+celix_status_t serviceReference_create(bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference) {
        mock_c()->actualCall("serviceReference_create")
                        ->withPointerParameters("pool", pool)
                        ->withPointerParameters("bundle", bundle)
@@ -36,6 +36,12 @@ celix_status_t serviceReference_create(a
        return mock_c()->returnValue().value.intValue;
 }
 
+celix_status_t serviceReference_destroy(service_reference_pt reference) {
+       mock_c()->actualCall("serviceReference_destroy")
+                       ->withPointerParameters("reference", reference)
+       return mock_c()->returnValue().value.intValue;
+}
+
 celix_status_t serviceReference_invalidate(service_reference_pt reference) {
        mock_c()->actualCall("serviceReference_invalidate")
                        ->withPointerParameters("reference", reference);
@@ -59,7 +65,7 @@ bool serviceReference_isAssignableTo(ser
        return mock_c()->returnValue().value.intValue;
 }
 
-celix_status_t serviceReference_getUsingBundles(service_reference_pt 
reference, apr_pool_t *pool, array_list_pt *bundles) {
+celix_status_t serviceReference_getUsingBundles(service_reference_pt 
reference, array_list_pt *bundles) {
        mock_c()->actualCall("serviceReference_getUsingBundles");
        return mock_c()->returnValue().value.intValue;
 }

Modified: 
incubator/celix/trunk/framework/private/mock/service_registration_mock.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/mock/service_registration_mock.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/mock/service_registration_mock.c 
(original)
+++ incubator/celix/trunk/framework/private/mock/service_registration_mock.c 
Wed Jun  4 12:17:56 2014
@@ -27,7 +27,7 @@
 
 #include "service_registration.h"
 
-service_registration_pt serviceRegistration_create(apr_pool_t *pool, 
service_registry_pt registry, bundle_pt bundle, char * serviceName, long 
serviceId, void * serviceObject, properties_pt dictionary) {
+service_registration_pt serviceRegistration_create(service_registry_pt 
registry, bundle_pt bundle, char * serviceName, long serviceId, void * 
serviceObject, properties_pt dictionary) {
        mock_c()->actualCall("serviceRegistration_create")
                ->withPointerParameters("pool", pool)
                ->withPointerParameters("registry", registry)

Modified: incubator/celix/trunk/framework/private/mock/service_registry_mock.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/mock/service_registry_mock.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/mock/service_registry_mock.c 
(original)
+++ incubator/celix/trunk/framework/private/mock/service_registry_mock.c Wed 
Jun  4 12:17:56 2014
@@ -27,7 +27,7 @@
 
 #include "service_registry.h"
 
-celix_status_t serviceRegistry_create(apr_pool_t *pool, framework_pt 
framework, serviceChanged_function_pt serviceChanged, service_registry_pt 
*registry) {
+celix_status_t serviceRegistry_create(framework_pt framework, 
serviceChanged_function_pt serviceChanged, service_registry_pt *registry) {
        mock_c()->actualCall("serviceRegistry_create");
        return mock_c()->returnValue().value.intValue;
 }
@@ -89,10 +89,9 @@ void serviceRegistry_ungetServices(servi
        mock_c()->actualCall("serviceRegistry_ungetServices");
 }
 
-array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
apr_pool_t *pool, service_reference_pt reference) {
+array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
service_reference_pt reference) {
        mock_c()->actualCall("serviceRegistry_getUsingBundles")
                        ->withPointerParameters("registry", registry)
-                       ->withPointerParameters("pool", pool)
                        ->withPointerParameters("reference", reference);
        return mock_c()->returnValue().value.pointerValue;
 }

Modified: incubator/celix/trunk/framework/private/src/filter.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/filter.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/filter.c (original)
+++ incubator/celix/trunk/framework/private/src/filter.c Wed Jun  4 12:17:56 
2014
@@ -32,15 +32,15 @@
 #include "array_list.h"
 
 void filter_skipWhiteSpace(char * filterString, int * pos);
-filter_pt filter_parseFilter(char * filterString, int * pos, apr_pool_t *pool);
-filter_pt filter_parseFilterComp(char * filterString, int * pos, apr_pool_t 
*pool);
-filter_pt filter_parseAnd(char * filterString, int * pos, apr_pool_t *pool);
-filter_pt filter_parseOr(char * filterString, int * pos, apr_pool_t *pool);
-filter_pt filter_parseNot(char * filterString, int * pos, apr_pool_t *pool);
-filter_pt filter_parseItem(char * filterString, int * pos, apr_pool_t *pool);
+filter_pt filter_parseFilter(char * filterString, int * pos);
+filter_pt filter_parseFilterComp(char * filterString, int * pos);
+filter_pt filter_parseAnd(char * filterString, int * pos);
+filter_pt filter_parseOr(char * filterString, int * pos);
+filter_pt filter_parseNot(char * filterString, int * pos);
+filter_pt filter_parseItem(char * filterString, int * pos);
 char * filter_parseAttr(char * filterString, int * pos);
 char * filter_parseValue(char * filterString, int * pos);
-array_list_pt filter_parseSubstring(char * filterString, int * pos, apr_pool_t 
*pool);
+array_list_pt filter_parseSubstring(char * filterString, int * pos);
 
 celix_status_t filter_compare(OPERAND operand, char * string, void * value2, 
bool *result);
 celix_status_t filter_compareString(OPERAND operand, char * string, void * 
value2, bool *result);
@@ -52,10 +52,10 @@ void filter_skipWhiteSpace(char * filter
        }
 }
 
-filter_pt filter_create(char * filterString, apr_pool_t *pool) {
+filter_pt filter_create(char * filterString) {
        filter_pt filter = NULL;
        int pos = 0;
-       filter = filter_parseFilter(filterString, &pos, pool);
+       filter = filter_parseFilter(filterString, &pos);
        if (pos != strlen(filterString)) {
                printf("Error: Extraneous trailing characters\n");
                return NULL;
@@ -90,7 +90,7 @@ void filter_destroy(filter_pt filter) {
        }
 }
 
-filter_pt filter_parseFilter(char * filterString, int * pos, apr_pool_t *pool) 
{
+filter_pt filter_parseFilter(char * filterString, int * pos) {
        filter_pt filter;
        filter_skipWhiteSpace(filterString, pos);
        if (filterString[*pos] != '(') {
@@ -99,7 +99,7 @@ filter_pt filter_parseFilter(char * filt
        }
        (*pos)++;
 
-       filter = filter_parseFilterComp(filterString, pos, pool);
+       filter = filter_parseFilterComp(filterString, pos);
 
        filter_skipWhiteSpace(filterString, pos);
 
@@ -113,7 +113,7 @@ filter_pt filter_parseFilter(char * filt
        return filter;
 }
 
-filter_pt filter_parseFilterComp(char * filterString, int * pos, apr_pool_t 
*pool) {
+filter_pt filter_parseFilterComp(char * filterString, int * pos) {
        char c;
        filter_skipWhiteSpace(filterString, pos);
 
@@ -122,21 +122,21 @@ filter_pt filter_parseFilterComp(char * 
        switch (c) {
                case '&': {
                        (*pos)++;
-                       return filter_parseAnd(filterString, pos, pool);
+                       return filter_parseAnd(filterString, pos);
                }
                case '|': {
                        (*pos)++;
-                       return filter_parseOr(filterString, pos, pool);
+                       return filter_parseOr(filterString, pos);
                }
                case '!': {
                        (*pos)++;
-                       return filter_parseNot(filterString, pos, pool);
+                       return filter_parseNot(filterString, pos);
                }
        }
-       return filter_parseItem(filterString, pos, pool);
+       return filter_parseItem(filterString, pos);
 }
 
-filter_pt filter_parseAnd(char * filterString, int * pos, apr_pool_t *pool) {
+filter_pt filter_parseAnd(char * filterString, int * pos) {
        filter_pt filter = (filter_pt) malloc(sizeof(*filter));
        array_list_pt operands = NULL;
        arrayList_create(&operands);
@@ -148,7 +148,7 @@ filter_pt filter_parseAnd(char * filterS
        }
 
        while(filterString[*pos] == '(') {
-               filter_pt child = filter_parseFilter(filterString, pos, pool);
+               filter_pt child = filter_parseFilter(filterString, pos);
                arrayList_add(operands, child);
        }
 
@@ -159,7 +159,7 @@ filter_pt filter_parseAnd(char * filterS
        return filter;
 }
 
-filter_pt filter_parseOr(char * filterString, int * pos, apr_pool_t *pool) {
+filter_pt filter_parseOr(char * filterString, int * pos) {
        filter_pt filter = (filter_pt) malloc(sizeof(*filter));
        array_list_pt operands = NULL;
        arrayList_create(&operands);
@@ -171,7 +171,7 @@ filter_pt filter_parseOr(char * filterSt
        }
 
        while(filterString[*pos] == '(') {
-               filter_pt child = filter_parseFilter(filterString, pos, pool);
+               filter_pt child = filter_parseFilter(filterString, pos);
                arrayList_add(operands, child);
        }
 
@@ -182,7 +182,7 @@ filter_pt filter_parseOr(char * filterSt
        return filter;
 }
 
-filter_pt filter_parseNot(char * filterString, int * pos, apr_pool_t *pool) {
+filter_pt filter_parseNot(char * filterString, int * pos) {
        filter_pt child = NULL;
        filter_pt filter = (filter_pt) malloc(sizeof(*filter));
        filter_skipWhiteSpace(filterString, pos);
@@ -192,7 +192,7 @@ filter_pt filter_parseNot(char * filterS
                return NULL;
        }
 
-       child = filter_parseFilter(filterString, pos, pool);
+       child = filter_parseFilter(filterString, pos);
 
        filter->operand = NOT;
        filter->attribute = NULL;
@@ -201,7 +201,7 @@ filter_pt filter_parseNot(char * filterS
        return filter;
 }
 
-filter_pt filter_parseItem(char * filterString, int * pos, apr_pool_t *pool) {
+filter_pt filter_parseItem(char * filterString, int * pos) {
        char * attr = filter_parseAttr(filterString, pos);
        filter_skipWhiteSpace(filterString, pos);
        switch(filterString[*pos]) {
@@ -256,7 +256,7 @@ filter_pt filter_parseItem(char * filter
                        }
                        filter = (filter_pt) malloc(sizeof(*filter));           
        
                        (*pos)++;
-                       subs = filter_parseSubstring(filterString, pos, pool);
+                       subs = filter_parseSubstring(filterString, pos);
                        if (arrayList_size(subs) == 1) {
                                char * string = (char *) arrayList_get(subs, 0);
                                if (string != NULL) {
@@ -351,7 +351,7 @@ char * filter_parseValue(char * filterSt
        return value;
 }
 
-array_list_pt filter_parseSubstring(char * filterString, int * pos, apr_pool_t 
*pool) {
+array_list_pt filter_parseSubstring(char * filterString, int * pos) {
        char * sub = (char *) malloc(strlen(filterString));
        array_list_pt operands = NULL;
        int keepRunning = 1;

Modified: incubator/celix/trunk/framework/private/src/framework.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/framework.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/framework.c (original)
+++ incubator/celix/trunk/framework/private/src/framework.c Wed Jun  4 12:17:56 
2014
@@ -1277,7 +1277,7 @@ celix_status_t fw_getServiceReferences(f
        status = CELIX_DO_IF(status, bundle_getMemoryPool(bundle, &pool));
        if (status == CELIX_SUCCESS) {
         if (sfilter != NULL) {
-            filter = filter_create(sfilter, pool);
+            filter = filter_create(sfilter);
         }
        }
 
@@ -1349,7 +1349,7 @@ void fw_addServiceListener(framework_pt 
 
        fwListener->bundle = bundle;
        if (sfilter != NULL) {
-               filter_pt filter = filter_create(sfilter, pool);
+               filter_pt filter = filter_create(sfilter);
                fwListener->filter = filter;
        } else {
                fwListener->filter = NULL;

Modified: incubator/celix/trunk/framework/private/src/service_reference.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/service_reference.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/service_reference.c (original)
+++ incubator/celix/trunk/framework/private/src/service_reference.c Wed Jun  4 
12:17:56 2014
@@ -26,6 +26,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "service_reference.h"
+
 #include "service_registry.h"
 #include "service_reference_private.h"
 #include "service_registration.h"
@@ -34,16 +36,14 @@
 #include "bundle.h"
 #include "celix_log.h"
 
-apr_status_t serviceReference_destroy(void *referenceP);
 
-celix_status_t serviceReference_create(apr_pool_t *pool, bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference) {
+celix_status_t serviceReference_create(bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference) {
        celix_status_t status = CELIX_SUCCESS;
 
-       *reference = apr_palloc(pool, sizeof(**reference));
+       *reference = malloc(sizeof(**reference));
        if (!*reference) {
                status = CELIX_ENOMEM;
        } else {
-               apr_pool_pre_cleanup_register(pool, *reference, 
serviceReference_destroy);
 
                (*reference)->bundle = bundle;
                (*reference)->registration = registration;
@@ -54,10 +54,11 @@ celix_status_t serviceReference_create(a
        return status;
 }
 
-apr_status_t serviceReference_destroy(void *referenceP) {
-       service_reference_pt reference = referenceP;
+apr_status_t serviceReference_destroy(service_reference_pt reference) {
+       serviceRegistry_removeReference(reference);
        reference->bundle = NULL;
        reference->registration = NULL;
+       free(reference);
        return APR_SUCCESS;
 }
 
@@ -104,13 +105,13 @@ bool serviceReference_isAssignableTo(ser
        return allow;
 }
 
-celix_status_t serviceReference_getUsingBundles(service_reference_pt 
reference, apr_pool_t *pool, array_list_pt *bundles) {
+celix_status_t serviceReference_getUsingBundles(service_reference_pt 
reference, array_list_pt *bundles) {
        celix_status_t status = CELIX_SUCCESS;
 
        service_registry_pt registry = NULL;
        serviceRegistration_getRegistry(reference->registration, &registry);
 
-       *bundles = serviceRegistry_getUsingBundles(registry, pool, reference);
+       *bundles = serviceRegistry_getUsingBundles(registry, reference);
 
        return status;
 }

Modified: incubator/celix/trunk/framework/private/src/service_registry.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/service_registry.c?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/service_registry.c (original)
+++ incubator/celix/trunk/framework/private/src/service_registry.c Wed Jun  4 
12:17:56 2014
@@ -42,8 +42,6 @@ celix_status_t serviceRegistry_registerS
 celix_status_t serviceRegistry_addHooks(service_registry_pt registry, char 
*serviceName, void *serviceObject, service_registration_pt registration);
 celix_status_t serviceRegistry_removeHook(service_registry_pt registry, 
service_registration_pt registration);
 
-apr_status_t serviceRegistry_removeReference(void *referenceP);
-
 celix_status_t serviceRegistry_create(apr_pool_t *ppool, framework_pt 
framework, serviceChanged_function_pt serviceChanged, service_registry_pt 
*registry) {
        celix_status_t status = CELIX_SUCCESS;
        apr_pool_t *pool = NULL;
@@ -264,7 +262,7 @@ celix_status_t serviceRegistry_unregiste
                unsigned int j;
 
                apr_pool_create(&pool, registry->pool);
-               clients = serviceRegistry_getUsingBundles(registry, pool, 
reference);
+               clients = serviceRegistry_getUsingBundles(registry, reference);
                for (j = 0; (clients != NULL) && (j < arrayList_size(clients)); 
j++) {
                        bundle_pt client = (bundle_pt) arrayList_get(clients, 
j);
                        bool ungetResult = true;
@@ -313,19 +311,15 @@ celix_status_t serviceRegistry_unregiste
        return CELIX_SUCCESS;
 }
 
+
 celix_status_t serviceRegistry_createServiceReference(service_registry_pt 
registry, apr_pool_t *pool, service_registration_pt registration, 
service_reference_pt *reference) {
        celix_status_t status = CELIX_SUCCESS;
 
        bundle_pt bundle = NULL;
        array_list_pt references = NULL;
 
-       apr_pool_t *spool = NULL;
-       apr_pool_create(&spool, pool);
-
        serviceRegistration_getBundle(registration, &bundle);
-       serviceReference_create(spool, bundle, registration, reference);
-
-       apr_pool_pre_cleanup_register(spool, *reference, 
serviceRegistry_removeReference);
+       serviceReference_create(bundle, registration, reference);
 
        serviceRegistration_getServiceReferences(registration, &references);
        arrayList_add(references, *reference);
@@ -388,8 +382,7 @@ celix_status_t serviceRegistry_getServic
        return status;
 }
 
-apr_status_t serviceRegistry_removeReference(void *referenceP) {
-       service_reference_pt reference = referenceP;
+apr_status_t serviceRegistry_removeReference(service_reference_pt reference) {
        service_registration_pt registration = NULL;
        serviceReference_getServiceRegistration(reference, &registration);
 
@@ -510,7 +503,7 @@ void serviceRegistry_ungetServices(servi
        arrayList_destroy(fusages);
 }
 
-array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
apr_pool_t *pool, service_reference_pt reference) {
+array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
service_reference_pt reference) {
        array_list_pt bundles = NULL;
        hash_map_iterator_pt iter;
        arrayList_create(&bundles);

Modified: incubator/celix/trunk/framework/public/include/filter.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/public/include/filter.h?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/public/include/filter.h (original)
+++ incubator/celix/trunk/framework/public/include/filter.h Wed Jun  4 12:17:56 
2014
@@ -27,8 +27,6 @@
 #ifndef FILTER_H_
 #define FILTER_H_
 
-#include <apr_general.h>
-
 #include "celix_errno.h"
 #include "properties.h"
 #include "celixbool.h"
@@ -36,7 +34,7 @@
 
 typedef struct filter * filter_pt;
 
-FRAMEWORK_EXPORT filter_pt filter_create(char * filterString, apr_pool_t 
*pool);
+FRAMEWORK_EXPORT filter_pt filter_create(char * filterString);
 FRAMEWORK_EXPORT void filter_destroy(filter_pt filter);
 
 FRAMEWORK_EXPORT celix_status_t filter_match(filter_pt filter, properties_pt 
properties, bool *result);

Modified: incubator/celix/trunk/framework/public/include/service_reference.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/public/include/service_reference.h?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/public/include/service_reference.h 
(original)
+++ incubator/celix/trunk/framework/public/include/service_reference.h Wed Jun  
4 12:17:56 2014
@@ -35,7 +35,8 @@ typedef struct serviceReference * servic
 #include "bundle.h"
 #include "framework_exports.h"
 
-celix_status_t serviceReference_create(apr_pool_t *pool, bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference);
+celix_status_t serviceReference_create(bundle_pt bundle, 
service_registration_pt registration, service_reference_pt *reference);
+celix_status_t serviceReference_destroy(service_reference_pt reference);
 
 FRAMEWORK_EXPORT celix_status_t 
serviceReference_invalidate(service_reference_pt reference);
 FRAMEWORK_EXPORT celix_status_t serviceRefernce_isValid(service_reference_pt 
reference, bool *result);
@@ -45,7 +46,7 @@ FRAMEWORK_EXPORT celix_status_t serviceR
 
 FRAMEWORK_EXPORT bool serviceReference_isAssignableTo(service_reference_pt 
reference, bundle_pt requester, char * serviceName);
 
-FRAMEWORK_EXPORT celix_status_t 
serviceReference_getUsingBundles(service_reference_pt reference, apr_pool_t 
*pool, array_list_pt *bundles);
+FRAMEWORK_EXPORT celix_status_t 
serviceReference_getUsingBundles(service_reference_pt reference, array_list_pt 
*bundles);
 FRAMEWORK_EXPORT celix_status_t serviceReference_equals(service_reference_pt 
reference, service_reference_pt compareTo, bool *equal);
 FRAMEWORK_EXPORT unsigned int serviceReference_hashCode(void *referenceP);
 FRAMEWORK_EXPORT int serviceReference_equals2(void *reference1, void 
*reference2);

Modified: incubator/celix/trunk/framework/public/include/service_registry.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/public/include/service_registry.h?rev=1600137&r1=1600136&r2=1600137&view=diff
==============================================================================
--- incubator/celix/trunk/framework/public/include/service_registry.h (original)
+++ incubator/celix/trunk/framework/public/include/service_registry.h Wed Jun  
4 12:17:56 2014
@@ -51,9 +51,11 @@ celix_status_t serviceRegistry_getServic
 celix_status_t serviceRegistry_getService(service_registry_pt registry, 
bundle_pt bundle, service_reference_pt reference, void **service);
 celix_status_t serviceRegistry_ungetService(service_registry_pt registry, 
bundle_pt bundle, service_reference_pt reference, bool *result);
 void serviceRegistry_ungetServices(service_registry_pt registry, bundle_pt 
bundle);
-array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
apr_pool_t *pool, service_reference_pt reference);
+array_list_pt serviceRegistry_getUsingBundles(service_registry_pt registry, 
service_reference_pt reference);
 service_registration_pt serviceRegistry_findRegistration(service_registry_pt 
registry, service_reference_pt reference);
+
 celix_status_t serviceRegistry_createServiceReference(service_registry_pt 
registry, apr_pool_t *pool, service_registration_pt registration, 
service_reference_pt *reference);
+celix_status_t serviceRegistry_removeReference(service_reference_pt reference);
 
 celix_status_t serviceRegistry_getListenerHooks(service_registry_pt registry, 
apr_pool_t *pool, array_list_pt *hooks);
 


Reply via email to