summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/http/curl.hpp
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:25:33 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:25:33 +0000
commit585f81b9436e137c3ed784d9a91efa9e6e792e03 (patch)
treef40f0179601320ace0b454698dc76aaeddfc6a5d /sca-cpp/trunk/modules/http/curl.hpp
parent3c6b7d709c7197078f8261f8e3464b0f217c988e (diff)
Refactored httpd server integration, split http support and server logic in two modules. Added functions to load component implementations packaged as dynamic libraries. Minor monad code cleanup, converted cast operators to separate functions.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@883249 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-cpp/trunk/modules/http/curl.hpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/sca-cpp/trunk/modules/http/curl.hpp b/sca-cpp/trunk/modules/http/curl.hpp
index 5ee3a090b0..6c3a3a47dc 100644
--- a/sca-cpp/trunk/modules/http/curl.hpp
+++ b/sca-cpp/trunk/modules/http/curl.hpp
@@ -209,29 +209,29 @@ const failable<value, std::string> evalExpr(const value& expr, const std::string
// Convert expression to a JSON-RPC request
json::JSONContext cx;
const failable<list<std::string>, std::string> jsreq = jsonRequest(1, car<value>(expr), cdr<value>(expr), cx);
- if (!hasValue(jsreq))
+ if (!hasContent(jsreq))
return mkfailure<value, std::string>(reason(jsreq));
if (logContent) {
std::cout<< "content: " << std::endl;
- write(jsreq, std::cout);
+ write(content(jsreq), std::cout);
std::cout<< std::endl;
std::cout.flush();
}
// POST it to the URL
const list<std::string> h = mklist<std::string>("Content-Type: application/json-rpc");
- const failable<list<list<std::string> >, std::string> res = apply<list<std::string> >(mklist<list<std::string> >(h, jsreq), rcons<std::string>, list<std::string>(), url, "POST", ch);
- if (!hasValue(res))
+ const failable<list<list<std::string> >, std::string> res = apply<list<std::string> >(mklist<list<std::string> >(h, content(jsreq)), rcons<std::string>, list<std::string>(), url, "POST", ch);
+ if (!hasContent(res))
return mkfailure<value, std::string>(reason(res));
// Return result
if (logContent) {
std::cout << "content:" << std::endl;
- write(cadr<list<std::string> >(res), std::cout);
+ write(cadr<list<std::string> >(content(res)), std::cout);
std::cout << std::endl;
}
- const list<value> val = elementsToValues(json::readJSON(cadr<list<std::string> >(res), cx));
+ const list<value> val = elementsToValues(content(json::readJSON(cadr<list<std::string> >(content(res)), cx)));
return cadr<value>(cadr<value>(val));
}
@@ -250,9 +250,8 @@ const failable<value, std::string> get(const std::string& url, const CURLHandle&
// Get the contents of the resource at the given URL
const failable<list<list<std::string> >, std::string> res = get<list<std::string> >(rcons<std::string>, list<std::string>(), url, ch);
- if (!hasValue(res))
+ if (!hasContent(res))
return mkfailure<value, std::string>(reason(res));
- const list<list<std::string> > ls = res;
const std::string ct;
if (ct.find("application/atom+xml") != std::string::npos) {
@@ -261,7 +260,7 @@ const failable<value, std::string> get(const std::string& url, const CURLHandle&
// Return the content as a string value
std::ostringstream os;
- write(reverse(cadr(ls)), os);
+ write(reverse(cadr(content(res))), os);
return value(os.str());
}
@@ -272,19 +271,19 @@ const failable<value, std::string> post(const value& val, const std::string& url
// Convert value to an ATOM entry
const failable<list<std::string>, std::string> entry = atom::writeATOMEntry(atom::entryValuesToElements(val));
- if (!hasValue(entry))
+ if (!hasContent(entry))
return mkfailure<value, std::string>(reason(entry));
if (logContent) {
std::cout << "content:" << std::endl;
- write(list<std::string>(entry), std::cout);
+ write(list<std::string>(content(entry)), std::cout);
std::cout << std::endl;
}
// POST it to the URL
const list<std::string> h = mklist<std::string>("Content-Type: application/atom+xml");
- const list<list<std::string> > req = mklist<list<std::string> >(h, entry);
+ const list<list<std::string> > req = mklist<list<std::string> >(h, content(entry));
const failable<list<list<std::string> >, std::string> res = apply<list<std::string> >(req, rcons<std::string>, list<std::string>(), url, "POST", ch);
- if (!hasValue(res))
+ if (!hasContent(res))
return mkfailure<value, std::string>(reason(res));
return value(true);
}
@@ -296,19 +295,19 @@ const failable<value, std::string> put(const value& val, const std::string& url,
// Convert value to an ATOM entry
const failable<list<std::string>, std::string> entry = atom::writeATOMEntry(atom::entryValuesToElements(val));
- if (!hasValue(entry))
+ if (!hasContent(entry))
return mkfailure<value, std::string>(reason(entry));
if (logContent) {
std::cout << "content:" << std::endl;
- write(list<std::string>(entry), std::cout);
+ write(list<std::string>(content(entry)), std::cout);
std::cout << std::endl;
}
// PUT it to the URL
const list<std::string> h = mklist<std::string>("Content-Type: application/atom+xml");
- const list<list<std::string> > req = mklist<list<std::string> >(h, entry);
+ const list<list<std::string> > req = mklist<list<std::string> >(h, content(entry));
const failable<list<list<std::string> >, std::string> res = apply<list<std::string> >(req, rcons<std::string>, list<std::string>(), url, "PUT", ch);
- if (!hasValue(res))
+ if (!hasContent(res))
return mkfailure<value, std::string>(reason(res));
return value(true);
}
@@ -319,7 +318,7 @@ const failable<value, std::string> put(const value& val, const std::string& url,
const failable<value, std::string> del(const std::string& url, const CURLHandle& ch) {
const list<list<std::string> > req = mklist(list<std::string>(), list<std::string>());
const failable<list<list<std::string> >, std::string> res = apply<list<std::string> >(req, rcons<std::string>, list<std::string>(), url, "DELETE", ch);
- if (!hasValue(res))
+ if (!hasContent(res))
return mkfailure<value, std::string>(reason(res));
return value(true);
}
@@ -333,9 +332,9 @@ struct proxy {
const value operator()(const list<value>& args) const {
failable<value, std::string> val = evalExpr(args, url, ch);
- if (!hasValue(val))
+ if (!hasContent(val))
return value();
- return val;
+ return content(val);
}
const std::string url;