summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/components/cache
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/components/cache')
-rw-r--r--sca-cpp/trunk/components/cache/cache.composite4
-rw-r--r--sca-cpp/trunk/components/cache/memcache.componentType2
-rw-r--r--sca-cpp/trunk/components/cache/memcache.cpp15
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)));