Corrected bug where Hold action cannot complete because the reader is not available. Previous "improvement" was based on a bad assumption that responses were emitted during the job. Actually, responses are emitted after the job is finalized and sent to the output processor so that theory was incorrect. Earlier problem was related to something else & this code was ok.
Bug fix: doFile now closes message reader immediately after scan so that the file is not open when CGP resumes processing.
Cleanup: Clarified code in output processor to avoid confusion about the (J = CompletedJobs.take()) assignment while waiting for a 0.
git-svn-id: https://svn.microneil.com/svn/SNF4CGP/trunk@55 59e8e3e7-56fa-483b-b4b4-fa6ab0af3dfc
Fixed bug where Reject action told CGP REJECTED. Quixotically CGPs API indicates that to Reject a message it needs to see ERROR, and that when it sees REJECTED message processing is actually postponed. A look at CGP logs indicates that REJECTED messages are scanned again later.
Added Postpone action which allows SNF4CGP to exercise CGPs REJECTED response.
Updated SNF4CGP revision numbers appropriately.
git-svn-id: https://svn.microneil.com/svn/SNF4CGP/trunk@51 59e8e3e7-56fa-483b-b4b4-fa6ab0af3dfc
Fixed extra qualifier string Job::ScanName(); in JobPool.hpp
Fixed backslashes in header paths in ConfigurationEngine.cpp
Moved version number to 0.1.0 (First Official Beta)
git-svn-id: https://svn.microneil.com/svn/SNF4CGP/trunk@38 59e8e3e7-56fa-483b-b4b4-fa6ab0af3dfc
Fixed bug - PlatformVersion was not reported. PlatformVersion is now propagated through the initialization sequence to the scanner pool and ultimately the rulebase so it can be reported properly.
Fixed potential race condition where the ExecutiveProcess might send a notification message through cout while the OutputProcessor was busy using cout also. The result would be (at best) corrupted output. Now the ExecutiveProcess and the OutputProcessor both use OutputProcessor::sendString() which protects cout with a mutex.
Fixed bad cin bug - if cin went bad the executive process would loop, rapidly generate UNKNOWN commands, and produce FAILURE outputs. This would happen when CGP was disabling the plugin (Specs say the plugin should get QUIT first, but it didn't). The fix creates a new Command::NOTGOOD that is produced by getCommand() if cin.good() becomes false. The executive process responds to Command::NOTGOOD by announcing the input has gone bad and then shutting down cleanly.
Began implementing the Configuration Engine.
Began implementing the message move mechanism.
git-svn-id: https://svn.microneil.com/svn/SNF4CGP/trunk@26 59e8e3e7-56fa-483b-b4b4-fa6ab0af3dfc
Completed WAKE process.
It's Alive! Starts, WAKEs, QUITs.
Now it needs a brain (how to do jobs).
git-svn-id: https://svn.microneil.com/svn/SNF4CGP/trunk@23 59e8e3e7-56fa-483b-b4b4-fa6ab0af3dfc