diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-23 05:25:33 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-23 05:25:33 +0000 |
commit | 585f81b9436e137c3ed784d9a91efa9e6e792e03 (patch) | |
tree | f40f0179601320ace0b454698dc76aaeddfc6a5d /sca-cpp/trunk/modules/http/curl.hpp | |
parent | 3c6b7d709c7197078f8261f8e3464b0f217c988e (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.hpp | 39 |
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; |