Modified: tuscany/sca-cpp/trunk/modules/rss/rss.hpp
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/rss/rss.hpp?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/rss/rss.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/rss/rss.hpp Thu Jan  3 07:41:02 2013
@@ -45,15 +45,16 @@ const value entry("entry");
  * Convert a list of elements to a list of element values representing an RSS 
entry.
  */
 const list<value> entryElementValues(const list<value>& e) {
-    const list<value> lt = filter<value>(selector(mklist<value>(element, 
"title")), e);
+    const list<value> lt = elementChildren("title", e);
     const value t = isNil(lt)? value(emptyString) : elementValue(car(lt));
-    const list<value> li = filter<value>(selector(mklist<value>(element, 
"link")), e);
+    const list<value> li = elementChildren("link", e);
     const value i = isNil(li)? value(emptyString) : elementValue(car(li));
-    const list<value> ld = filter<value>(selector(mklist<value>(element, 
"description")), e);
+    const list<value> ld = elementChildren("description", e);
     return append<value>(nilListValue + element + entry 
                 + value(nilListValue + element + value("title") + t)
                 + value(nilListValue + element + value("id") + i),
-                isNil(ld)? nilListValue : mklist<value>(value(nilListValue + 
element + value("content") + elementValue(car(ld)))));
+                isNil(ld)? nilListValue : isAttribute(elementValue(car(ld)))? 
nilListValue :
+                    mklist<value>(value(nilListValue + element + 
value("content") + elementValue(car(ld)))));
 }
 
 /**
@@ -91,10 +92,10 @@ const failable<list<value> > readRSSFeed
     const list<value> f = content(xml::readElements(ilist));
     if (isNil(f))
         return mkfailure<list<value> >("Empty feed");
-    const list<value> c = filter<value>(selector(mklist<value>(element, 
"channel")), car(f));
-    const list<value> t = filter<value>(selector(mklist<value>(element, 
"title")), car(c));
-    const list<value> i = filter<value>(selector(mklist<value>(element, 
"link")), car(c));
-    const list<value> e = filter<value>(selector(mklist<value>(element, 
"item")), car(c));
+    const list<value> c = elementChildren("channel", car(f));
+    const list<value> t = elementChildren("title", car(c));
+    const list<value> i = elementChildren("link", car(c));
+    const list<value> e = elementChildren("item", car(c));
     return mklist<value>(append<value>(nilListValue + element + feed 
                 + value(nilListValue + element + value("title") + 
elementValue(car(t)))
                 + value(nilListValue + element + value("id") + 
elementValue(car(i))),
@@ -150,9 +151,9 @@ const failable<list<string> > writeRSSEn
  */
 template<typename R> const failable<R> writeRSSFeed(const lambda<const R(const 
string&, const R)>& reduce, const R& initial, const list<value>& ll) {
     const list<value> l = isNil(ll)? ll : (list<value>)car(ll);
-    const list<value> lt = filter<value>(selector(mklist<value>(element, 
"title")), l);
+    const list<value> lt = elementChildren("title", l);
     const value t = isNil(lt)? value(emptyString) : elementValue(car(lt));
-    const list<value> li = filter<value>(selector(mklist<value>(element, 
"id")), l);
+    const list<value> li = elementChildren("id", l);
     const value i = isNil(li)? value(emptyString) : elementValue(car(li));
     const list<value> c = nilListValue
         + (nilListValue + element + "title" + t)
@@ -160,7 +161,7 @@ template<typename R> const failable<R> w
         + (nilListValue + element + "description" + t);
 
     // Write RSS entries
-    const list<value> le = filter<value>(selector(mklist<value>(element, 
entry)), l);
+    const list<value> le = elementChildren(entry, l);
     if (isNil(le)) {
         const list<value> fe = nilListValue
             + element + "rss" + (nilListValue + attribute + "version" + "2.0")

Modified: tuscany/sca-cpp/trunk/modules/scdl/scdl-test.cpp
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/scdl/scdl-test.cpp?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/scdl/scdl-test.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/scdl/scdl-test.cpp Thu Jan  3 07:41:02 2013
@@ -53,8 +53,8 @@ const bool testComponents() {
     const value catalog = named(string("Catalog"), c);
     assert(name(catalog) == string("Catalog"));
 
-    const list<value> t = mkbtree(sort(nameToElementAssoc(c)));
-    assert(assoctree<value>("Catalog", t) == mklist<value>("Catalog" , 
cadr(c)));
+    const list<value> t = mkrbtree(sort(nameToElementAssoc(c)));
+    assert(rbtreeAssoc<value>("Catalog", t) == mklist<value>("Catalog" , 
cadr(c)));
     return true;
 }
 
@@ -89,8 +89,8 @@ const bool testReferences() {
     assert(uri(binding) == nilValue);
     assert(bindingType(binding) == "binding.jsonrpc");
 
-    const list<value> t = 
mkbtree(sort(referenceToTargetAssoc(references(store))));
-    assert(assoctree<value>("shoppingCart", t) == 
mklist<value>(string("shoppingCart"), string("ShoppingCart/Cart")));
+    const list<value> t = 
mkrbtree(sort(referenceToTargetAssoc(references(store))));
+    assert(rbtreeAssoc<value>("shoppingCart", t) == 
mklist<value>(string("shoppingCart"), string("ShoppingCart/Cart")));
     return true;
 }
 

Modified: tuscany/sca-cpp/trunk/modules/scheme/primitive.hpp
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/scheme/primitive.hpp?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/scheme/primitive.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/scheme/primitive.hpp Thu Jan  3 07:41:02 2013
@@ -26,9 +26,12 @@
  * Script evaluator primitive functions.
  */
 
+#include <math.h>
+
 #include "stream.hpp"
 #include "function.hpp"
 #include "list.hpp"
+#include "tree.hpp"
 #include "value.hpp"
 #include "parallel.hpp"
 
@@ -90,10 +93,30 @@ inline const value listProc(const list<v
 }
 
 inline const value assocProc(const list<value>& args) {
-    return assoc(car(args), (list<list<value> >)cadr(args));
+    return assoc(car(args), (list<value>)cadr(args));
+}
+
+inline const value delAssocProc(const list<value>& args) {
+    return delAssoc(car(args), (list<value>)cadr(args));
+}
+
+inline const value substAssocProc(const list<value>& args) {
+    return substAssoc(car(args), (list<value>)cadr(args), 
(list<value>)caddr(args));
+}
+
+inline const value treeDelAssocProc(const list<value>& args) {
+    return treeDelAssoc((list<value>)car(args), (list<value>)cadr(args));
+}
+
+inline const value treeSubstAssocProc(const list<value>& args) {
+    return treeSubstAssoc((list<value>)car(args), (list<value>)cadr(args), 
(list<value>)caddr(args));
 }
 
-inline const value nulProc(const list<value>& args) {
+inline const value treeSelectAssocProc(const list<value>& args) {
+    return treeSelectAssoc((list<value>)car(args), (list<value>)cadr(args));
+}
+
+inline const value nullProc(const list<value>& args) {
     const value v(car(args));
     if (isNil(v))
         return true;
@@ -106,6 +129,14 @@ inline const value equalProc(const list<
     return (bool)(car(args) == cadr(args));
 }
 
+inline const value greaterProc(const list<value>& args) {
+    return (bool)(car(args) > cadr(args));
+}
+
+inline const value lesserProc(const list<value>& args) {
+    return (bool)(car(args) < cadr(args));
+}
+
 inline const value addProc(const list<value>& args) {
     if (isNil(cdr(args)))
         return (double)car(args);
@@ -126,6 +157,10 @@ inline const value divProc(const list<va
     return (double)car(args) / (double)cadr(args);
 }
 
+inline const value sqrtProc(const list<value>& args) {
+    return (double)sqrt((double)car(args));
+}
+
 inline const value displayProc(const list<value>& args) {
     if (isNil(args)) {
         displayStream() << endl;
@@ -216,14 +251,22 @@ inline const list<value> primitiveProced
     + "cdr"
     + "cons"
     + "list"
-    + "nul"
+    + "null?"
     + "="
     + "equal?"
+    + "<"
+    + ">"
     + "+"
     + "-"
     + "*"
     + "/"
+    + "sqrt"
     + "assoc"
+    + "del-assoc"
+    + "subst-assoc"
+    + "tree-select-assoc"
+    + "tree-del-assoc"
+    + "tree-subst-assoc"
     + "cadr"
     + "caddr"
     + "cadddr"
@@ -242,14 +285,22 @@ inline const list<value> primitiveProced
     + primitiveProcedure(cdrProc)
     + primitiveProcedure(consProc)
     + primitiveProcedure(listProc)
-    + primitiveProcedure(nulProc)
+    + primitiveProcedure(nullProc)
     + primitiveProcedure(equalProc)
     + primitiveProcedure(equalProc)
+    + primitiveProcedure(lesserProc)
+    + primitiveProcedure(greaterProc)
     + primitiveProcedure(addProc)
     + primitiveProcedure(subProc)
     + primitiveProcedure(mulProc)
     + primitiveProcedure(divProc)
+    + primitiveProcedure(sqrtProc)
     + primitiveProcedure(assocProc)
+    + primitiveProcedure(delAssocProc)
+    + primitiveProcedure(substAssocProc)
+    + primitiveProcedure(treeSelectAssocProc)
+    + primitiveProcedure(treeDelAssocProc)
+    + primitiveProcedure(treeSubstAssocProc)
     + primitiveProcedure(cadrProc)
     + primitiveProcedure(caddrProc)
     + primitiveProcedure(cadddrProc)

Modified: tuscany/sca-cpp/trunk/modules/scheme/test.scm
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/scheme/test.scm?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/scheme/test.scm (original)
+++ tuscany/sca-cpp/trunk/modules/scheme/test.scm Thu Jan  3 07:41:02 2013
@@ -22,7 +22,7 @@
 ; ATOMPub test case
 
 (define (get id)
-  (if (nul id)
+  (if (null? id)
     '((feed (title "Sample Feed") (id "123456789") (entry
        (((title "Item") (id "111") (content (item (name "Apple") (currencyCode 
"USD") (currencySymbol "$") (price 2.99))))
         ((title "Item") (id "222") (content (item (name "Orange") 
(currencyCode "USD") (currencySymbol "$") (price 3.55))))

Modified: tuscany/sca-cpp/trunk/patches/jansson-2.4.patch
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/patches/jansson-2.4.patch?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/patches/jansson-2.4.patch (original)
+++ tuscany/sca-cpp/trunk/patches/jansson-2.4.patch Thu Jan  3 07:41:02 2013
@@ -5,7 +5,7 @@
      size_t length;
  
 -    ret = snprintf(buffer, size, "%.17g", value);
-+    ret = snprintf(buffer, size, "%g", value);
++    ret = snprintf(buffer, size, "%.16g", value);
      if(ret < 0)
          return -1;
  

Modified: tuscany/sca-cpp/trunk/samples/store-constdb/shopping-cart.scm
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-constdb/shopping-cart.scm?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-constdb/shopping-cart.scm (original)
+++ tuscany/sca-cpp/trunk/samples/store-constdb/shopping-cart.scm Thu Jan  3 
07:41:02 2013
@@ -23,7 +23,7 @@
 ; Return an empty cart if not found
 (define (getcart id cache)
   (define cart (cache "get" (list id)))
-  (if (nul cart)
+  (if (null? cart)
     (list)
     cart)
 )
@@ -39,7 +39,7 @@
 
 ; Find an item in the cart
 (define (find id cart)
-  (if (nul cart)
+  (if (null? cart)
     (list (list 'entry (list 'title "Item") (list 'id "0")))
     (if (= id (cadr (caddr (car cart))))
       (list (car cart))
@@ -48,7 +48,7 @@
 
 ; Get items from the cart
 (define (get id cache)
-  (if (nul id)
+  (if (null? id)
     (list (append (list 'feed (list 'title "Your Cart") (list 'id cartId)) 
(getcart cartId cache)))
     (find (car id) (getcart cartId cache))
   )
@@ -56,7 +56,7 @@
 
 ; Delete items from the  cart
 (define (delete id cache)
-  (if (nul id)
+  (if (null? id)
     (cache "delete" (list cartId))
     true
   )
@@ -69,7 +69,7 @@
 
 ; Sum the prices of a list of items
 (define (sum items)
-  (if (nul items)
+  (if (null? items)
     0
     (+ (price (car items)) (sum (cdr items))))
 )

Modified: tuscany/sca-cpp/trunk/samples/store-cpp/htdocs/test/items-result.txt
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cpp/htdocs/test/items-result.txt?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cpp/htdocs/test/items-result.txt 
(original)
+++ tuscany/sca-cpp/trunk/samples/store-cpp/htdocs/test/items-result.txt Thu 
Jan  3 07:41:02 2013
@@ -1,23 +1 @@
-{
- "id": 1,
- "result": [
-  {
-   "name": "Apple",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 2.99
-  },
-  {
-   "name": "Orange",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 3.55
-  },
-  {
-   "name": "Pear",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 1.55
-  }
- ]
-}
\ No newline at end of file
+{"id":1,"result":[{"name":"Apple","currencyCode":"USD","currencySymbol":"$","price":2.99},{"name":"Orange","currencyCode":"USD","currencySymbol":"$","price":3.55},{"name":"Pear","currencyCode":"USD","currencySymbol":"$","price":1.55}]}
\ No newline at end of file

Modified: 
tuscany/sca-cpp/trunk/samples/store-python/htdocs/test/items-result.txt
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-python/htdocs/test/items-result.txt?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-python/htdocs/test/items-result.txt 
(original)
+++ tuscany/sca-cpp/trunk/samples/store-python/htdocs/test/items-result.txt Thu 
Jan  3 07:41:02 2013
@@ -1,23 +1 @@
-{
- "id": 1,
- "result": [
-  {
-   "name": "Mango",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 2.99
-  },
-  {
-   "name": "Passion",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 3.55
-  },
-  {
-   "name": "Kiwi",
-   "currencyCode": "USD",
-   "currencySymbol": "$",
-   "price": 1.55
-  }
- ]
-}
\ No newline at end of file
+{"id":1,"result":[{"name":"Mango","currencyCode":"USD","currencySymbol":"$","price":2.99},{"name":"Passion","currencyCode":"USD","currencySymbol":"$","price":3.55},{"name":"Kiwi","currencyCode":"USD","currencySymbol":"$","price":1.55}]}
\ No newline at end of file

Modified: tuscany/sca-cpp/trunk/samples/store-scheme/shopping-cart.scm
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-scheme/shopping-cart.scm?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-scheme/shopping-cart.scm (original)
+++ tuscany/sca-cpp/trunk/samples/store-scheme/shopping-cart.scm Thu Jan  3 
07:41:02 2013
@@ -23,7 +23,7 @@
 ; Return an empty cart if not found
 (define (getcart id cache)
   (define cart (cache "get" (list id)))
-  (if (nul cart)
+  (if (null? cart)
     (list)
     cart)
 )
@@ -39,7 +39,7 @@
 
 ; Find an item in the cart
 (define (find id cart)
-  (if (nul cart)
+  (if (null? cart)
     (list (list 'entry (list 'title "Item") (list 'id "0")))
     (if (= id (cadr (caddr (car cart))))
       (list (car cart))
@@ -48,7 +48,7 @@
 
 ; Get items from the cart
 (define (get id cache)
-  (if (nul id)
+  (if (null? id)
     (list (append (list 'feed (list 'title "Your Cart") (list 'id cartId)) 
(getcart cartId cache)))
     (find (car id) (getcart cartId cache))
   )
@@ -56,7 +56,7 @@
 
 ; Delete items from the  cart
 (define (delete id cache)
-  (if (nul id)
+  (if (null? id)
     (cache "delete" (list cartId))
     true
   )
@@ -69,7 +69,7 @@
 
 ; Sum the prices of a list of items
 (define (sum items)
-  (if (nul items)
+  (if (null? items)
     0
     (+ (price (car items)) (sum (cdr items))))
 )

Modified: tuscany/sca-cpp/trunk/samples/store-sql/shopping-cart.scm
URL: 
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-sql/shopping-cart.scm?rev=1428191&r1=1428190&r2=1428191&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-sql/shopping-cart.scm (original)
+++ tuscany/sca-cpp/trunk/samples/store-sql/shopping-cart.scm Thu Jan  3 
07:41:02 2013
@@ -23,7 +23,7 @@
 ; Return an empty cart if not found
 (define (getcart id cache)
   (define cart (cache "get" (list id)))
-  (if (nul cart)
+  (if (null? cart)
     (list)
     cart)
 )
@@ -39,7 +39,7 @@
 
 ; Find an item in the cart
 (define (find id cart)
-  (if (nul cart)
+  (if (null? cart)
     (list (list 'entry (list 'title "Item") (list 'id "0")))
     (if (= id (cadr (caddr (car cart))))
       (list (car cart))
@@ -48,7 +48,7 @@
 
 ; Get items from the cart
 (define (get id cache)
-  (if (nul id)
+  (if (null? id)
     (list (append (list 'feed (list 'title "Your Cart") (list 'id cartId)) 
(getcart cartId cache)))
     (find (car id) (getcart cartId cache))
   )
@@ -56,7 +56,7 @@
 
 ; Delete items from the  cart
 (define (delete id cache)
-  (if (nul id)
+  (if (null? id)
     (cache "delete" (list cartId))
     true
   )
@@ -69,7 +69,7 @@
 
 ; Sum the prices of a list of items
 (define (sum items)
-  (if (nul items)
+  (if (null? items)
     0
     (+ (price (car items)) (sum (cdr items))))
 )


Reply via email to