From 4edae3f518353bb21a02fcda2dfcff83c5a72fc3 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 26 Jan 2012 12:08:39 +0100 Subject: New onCommit scripting system. --- server/src/journal.cc | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'server/src/journal.cc') diff --git a/server/src/journal.cc b/server/src/journal.cc index fc4203c..04b1459 100644 --- a/server/src/journal.cc +++ b/server/src/journal.cc @@ -32,7 +32,8 @@ Journal::Journal() {} void Journal::addEntry(Transaction &transaction, Commit &commit, - std::string resume, Template *templ) + std::string resume, Template *templ, + LUAOnCommit *oncommit) { size_t index = 0; std::vector< Macro >::iterator i = templ->macros.begin(); @@ -70,16 +71,17 @@ void Journal::addEntry(Transaction &transaction, Commit &commit, } #endif - addEntry(resume, commit.macro, transaction.user, index); + addEntry(resume, commit.macro, transaction.user, index, oncommit); } void Journal::addEntry(std::string resume, std::string macro, - std::string user, int index) + std::string user, int index, LUAOnCommit *oncommit) { DEBUG(journal, "Add: %p %s %s - %s\n", this, macro.c_str(), user.c_str(), resume.c_str()); ResumeEntry re; + re.oncommit = oncommit; re.resume = resume; re.macro = macro; re.user = user; @@ -148,6 +150,22 @@ std::string Journal::patientID() return _patientid; } +void Journal::runOnCommitScripts() throw(LUAScript::Exception) +{ + std::map< int, ResumeEntry >::iterator i = entrylist.begin(); + while(i != entrylist.end()) { + if(i->second.oncommit != NULL) { + try { + i->second.oncommit->run(); + } catch(LUAScript::Exception &e) { + throw e; + } + } + i++; + } +} + + #ifdef TEST_JOURNAL //deps: debug.cc log.cc journal_uploadserver.cc journal_commit.cc //cflags: -I.. -- cgit v1.2.3