summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/server/mod-scheme.hpp
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-02-17 04:14:31 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-02-17 04:14:31 +0000
commit00438314438f3dde00b532ac5d8d28ccc35c7096 (patch)
tree80dbbb010c5125455a164c77670b8694231f123f /sca-cpp/trunk/modules/server/mod-scheme.hpp
parent50063bc212e8e93d014519ef0e4d4cabef0b6be2 (diff)
Working queue and chat components. Added a few useful start/stop scripts. Fixed lifecycle code to call start/stop/restart functions before APR pools are cleaned up in both parent and child processes. Minor build script improvements.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@910819 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-cpp/trunk/modules/server/mod-scheme.hpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/sca-cpp/trunk/modules/server/mod-scheme.hpp b/sca-cpp/trunk/modules/server/mod-scheme.hpp
index e18eececf6..f5b9554c3f 100644
--- a/sca-cpp/trunk/modules/server/mod-scheme.hpp
+++ b/sca-cpp/trunk/modules/server/mod-scheme.hpp
@@ -34,7 +34,6 @@
#include "value.hpp"
#include "monad.hpp"
#include "../scheme/eval.hpp"
-#include "../server/mod-eval.hpp"
namespace tuscany {
namespace server {
@@ -61,11 +60,10 @@ struct applyImplementation {
const value expr = cons<value>(car(params), append(scheme::quotedParameters(cdr(params)), px));
debug(expr, "modeval::scheme::applyImplementation::input");
scheme::Env env = scheme::setupEnvironment();
- const value val = scheme::evalScript(expr, impl, env);
+ const value res = scheme::evalScript(expr, impl, env);
+ const value val = isNil(res)? mklist<value>(value(), string("Could not evaluate expression")) : mklist<value>(res);
debug(val, "modeval::scheme::applyImplementation::result");
- if (isNil(val))
- return mklist<value>(value(), string("Could not evaluate expression"));
- return mklist<value>(val);
+ return val;
}
};
@@ -73,7 +71,7 @@ struct applyImplementation {
* Evaluate a Scheme component implementation and convert it to an
* applicable lambda function.
*/
-const failable<lambda<value(const list<value>&)> > evalImplementation(const string& path, const value& impl, const list<value>& px, unused modeval::ServerConf& sc) {
+const failable<lambda<value(const list<value>&)> > evalImplementation(const string& path, const value& impl, const list<value>& px) {
const string fpath(path + attributeValue("script", impl));
ifstream is(fpath);
if (fail(is))