diff options
Diffstat (limited to 'sca-cpp/trunk/components/cache')
-rw-r--r-- | sca-cpp/trunk/components/cache/cache.composite | 4 | ||||
-rw-r--r-- | sca-cpp/trunk/components/cache/memcache.componentType | 2 | ||||
-rw-r--r-- | sca-cpp/trunk/components/cache/memcache.cpp | 15 |
3 files changed, 16 insertions, 5 deletions
diff --git a/sca-cpp/trunk/components/cache/cache.composite b/sca-cpp/trunk/components/cache/cache.composite index 838cbce77f..a85f909db9 100644 --- a/sca-cpp/trunk/components/cache/cache.composite +++ b/sca-cpp/trunk/components/cache/cache.composite @@ -26,7 +26,9 @@ <service name="memcache"> <binding.http uri="memcache"/> </service> - <property name="servers">localhost localhost:11212 localhost:11213</property> + <property name="server">localhost</property> + <property name="server">localhost:11212</property> + <property name="server">localhost:11213</property> </component> <component name="l2cache"> diff --git a/sca-cpp/trunk/components/cache/memcache.componentType b/sca-cpp/trunk/components/cache/memcache.componentType index 2ae66d1c43..8eee91dad6 100644 --- a/sca-cpp/trunk/components/cache/memcache.componentType +++ b/sca-cpp/trunk/components/cache/memcache.componentType @@ -23,6 +23,6 @@ targetNamespace="http://tuscany.apache.org/xmlns/sca/components"> <service name="memcache"/> - <property name="servers" type="xsd:string">localhost</property> + <property name="server" type="xsd:string">localhost</property> </composite> diff --git a/sca-cpp/trunk/components/cache/memcache.cpp b/sca-cpp/trunk/components/cache/memcache.cpp index 7547ec65df..6347eb55de 100644 --- a/sca-cpp/trunk/components/cache/memcache.cpp +++ b/sca-cpp/trunk/components/cache/memcache.cpp @@ -98,12 +98,21 @@ private: }; /** + * Convert a list of properties to a list of server addresses. + */ +const list<string> servers(const list<value>& params) { + if (isNil(params)) + return list<string>(); + const value s = ((lambda<value(list<value>)>)car(params))(list<value>()); + return cons<string>(s, servers(cdr(params))); +} + +/** * Start the component. */ -const failable<value> start(unused const list<value>& params) { +const failable<value> start(const list<value>& params) { // Connect to memcached - const value servers = ((lambda<value(list<value>)>)car(params))(list<value>()); - memcache::MemCached& ch = *(new (gc_new<memcache::MemCached>()) memcache::MemCached(tokenize(" ", servers))); + memcache::MemCached& ch = *(new (gc_new<memcache::MemCached>()) memcache::MemCached(servers(params))); // Return the component implementation lambda function return value(lambda<value(const list<value>&)>(applyCache(ch))); |