Changes to get successful C++11 based build. Code cleanup, dependency upgrades, and const + inline optimizations in components, samples, and app hosting server.

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1420007 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
jsdelfino 2012-12-11 06:13:02 +00:00
commit 36adc76235
90 changed files with 1428 additions and 1813 deletions

View file

@ -35,27 +35,19 @@ namespace store {
/**
* Returns the catalog.
*/
struct convert {
const lambda<value(const list<value>&)> converter;
const string currency;
convert(const lambda<value(const list<value>&)>& converter, const string& currency) : converter(converter), currency(currency) {
}
const value operator()(const value& price) const {
return converter(mklist<value>("convert", string("USD"), currency, price));
}
};
const list<value> mkfruit(const string& name, const string& code, const string& symbol, const double price) {
return list<value>() +
return nilListValue +
mklist<value>("name", name) + mklist<value>("currencyCode", code) + mklist<value>("currencySymbol", symbol) + mklist<value>("price", price);
}
const failable<value> items(const lambda<value(const list<value>&)>& converter, const lambda<value(const list<value>&)>& currencyCode) {
const string currency(currencyCode(list<value>()));
const failable<value> items(const lvvlambda& converter, const lvvlambda& currencyCode) {
const string currency(currencyCode(nilListValue));
const string symbol(converter(mklist<value>("symbol", currency)));
const lambda<value(const value&)> conv(convert(converter, currency));
const vvlambda conv = [converter, currency](const value& price) -> const value {
return converter(mklist<value>("convert", string("USD"), currency, price));
};
return value(list<value>() +
return value(nilListValue +
mkfruit("Apple", currency, symbol, conv(2.99)) +
mkfruit("Orange", currency, symbol, conv(3.55)) +
mkfruit("Pear", currency, symbol, conv(1.55)));

View file

@ -38,7 +38,7 @@ const string cartId("1234");
* Get the shopping cart from the cache. Return an empty
* cart if not found.
*/
const list<value> getcart(const value& id, const lambda<value(const list<value>&)>& cache) {
const list<value> getcart(const value& id, const lvvlambda& cache) {
const value cart = cache(mklist<value>("get", mklist<value>(id)));
cerr << "cart value: " << cart << "\n";
const failable<value> fcart = cart;
@ -46,14 +46,14 @@ const list<value> getcart(const value& id, const lambda<value(const list<value>&
cerr << "cart content: " << content(fcart) << "\n";
cerr << "cart reason: " << reason(fcart) << "\n";
if (isNil(cart))
return value(list<value>());
return value(nilListValue);
return (list<value>)cart;
}
/**
* Post a new item to the cart. Create a new cart if necessary.
*/
const failable<value> post(unused const list<value>& collection, const value& item, const lambda<value(const list<value>&)>& cache) {
const failable<value> post(unused const list<value>& collection, const value& item, const lvvlambda& cache) {
const value id(mkuuid());
const list<value> newItem(mklist<value>("entry", cadr<value>(car<value>(item)), mklist<value>("id", id), cadddr<value>(car<value>(item))));
const list<value> cart(cons<value>(newItem, getcart(cartId, cache)));
@ -75,7 +75,7 @@ const value find(const value& id, const list<value>& cart) {
/**
* Return items from the cart.
*/
const failable<value> get(const list<value>& id, const lambda<value(const list<value>&)>& cache) {
const failable<value> get(const list<value>& id, const lvvlambda& cache) {
if (isNil(id))
return value(mklist<value>(append(mklist<value>("feed", mklist<value>("title", string("Your Cart")), mklist<value>("id", cartId)), getcart(cartId, cache))));
return find(car(id), getcart(cartId, cache));
@ -84,10 +84,10 @@ const failable<value> get(const list<value>& id, const lambda<value(const list<v
/**
* Delete items from the cart.
*/
const failable<value> del(const list<value>& id, unused const lambda<value(const list<value>&)>& cache) {
const failable<value> del(const list<value>& id, unused const lvvlambda& cache) {
if (isNil(id))
return cache(mklist<value>("delete", mklist<value>(cartId)));
return value(true);
return trueValue;
}
/**
@ -109,7 +109,7 @@ const double sum(const list<value>& items) {
/**
* Return the total price of the items in the cart.
*/
const failable<value> total(const lambda<value(const list<value>&)>& cache) {
const failable<value> total(const lvvlambda& cache) {
const list<value> cart(getcart(cartId, cache));
return value(sum(cart));
}