diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-12-26 03:25:34 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-12-26 03:25:34 +0000 |
commit | 0999fd565d6d629df87d3db38a84d4701b494b3b (patch) | |
tree | 287bb29d011a1c1616ca434ce6c51ab57b63dda2 /sca-cpp/trunk/modules/server/mod-scm.hpp | |
parent | bd4c1d47aeaf1d4bca76d5713e705b0869d3f2f7 (diff) |
Simplified server configuration, HTTPD modules now use deployment composite to route service requests, minor fixes to store integration test.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@893939 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-cpp/trunk/modules/server/mod-scm.hpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/sca-cpp/trunk/modules/server/mod-scm.hpp b/sca-cpp/trunk/modules/server/mod-scm.hpp index 586b90190f..c454c6a216 100644 --- a/sca-cpp/trunk/modules/server/mod-scm.hpp +++ b/sca-cpp/trunk/modules/server/mod-scm.hpp @@ -36,11 +36,9 @@ #include "value.hpp" #include "debug.hpp" #include "monad.hpp" -#include "cache.hpp" #include "../eval/primitive.hpp" #include "../eval/driver.hpp" #include "../http/httpd.hpp" -#include "mod-eval.hpp" namespace tuscany { namespace server { @@ -64,36 +62,30 @@ struct evalImplementation { const list<value> px; evalImplementation(const value& impl, const list<value>& px) : impl(impl), px(eval::quotedParameters(primitiveProcedures(px))) { } - const failable<value, std::string> operator()(const value& func, const list<value>& params) const { - const value expr = cons<value>(func, append(eval::quotedParameters(params), px)); + const value operator()(const list<value>& params) const { + const value expr = cons<value>(car(params), append(eval::quotedParameters(cdr(params)), px)); debug(expr, "modeval::scm::evalImplementation::input"); gc_pool pool; eval::Env globalEnv = eval::setupEnvironment(pool); const value val = eval::evalScript(expr, impl, globalEnv, pool); debug(val, "modeval::scm::evalImplementation::result"); if (isNil(val)) - return mkfailure<value, std::string>("Could not evaluate expression"); - return val; + return mklist<value>(value(), std::string("Could not evaluate expression")); + return mklist<value>(val); } }; /** * Read a script component implementation. */ -const failable<ilambda, std::string> readLatestImplementation(const std::string path, const list<value>& px) { +const failable<lambda<value(const list<value>&)>, std::string> readImplementation(const std::string path, const list<value>& px) { std::ifstream is(path.c_str(), std::ios_base::in); if (is.fail() || is.bad()) - return mkfailure<ilambda, std::string>("Could not read implementation: " + path); + return mkfailure<lambda<value(const list<value>&)>, std::string>("Could not read implementation: " + path); const value impl = eval::readScript(is); if (isNil(impl)) - return mkfailure<ilambda, std::string>("Could not read implementation: " + path); - return ilambda(evalImplementation(impl, px)); -} - -const cached<failable<ilambda, std::string> > readImplementation(const std::string& path, const list<value>& px) { - const lambda<failable<ilambda, std::string>(std::string, list<value>)> ri(readLatestImplementation); - const lambda<unsigned long(std::string)> ft(latestFileTime); - return cached<failable<ilambda, std::string> >(curry(ri, path, px), curry(ft, path)); + return mkfailure<lambda<value(const list<value>&)>, std::string>("Could not read implementation: " + path); + return lambda<value(const list<value>&)>(evalImplementation(impl, px)); } } |