Changeset 9db22d for src/Fragmentation/Automation/Operations
- Timestamp:
- Jul 2, 2012, 8:32:08 AM (13 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- d57585
- Parents:
- 17017b
- git-author:
- Frederik Heber <heber@…> (05/11/12 18:23:22)
- git-committer:
- Frederik Heber <heber@…> (07/02/12 08:32:08)
- Location:
- src/Fragmentation/Automation/Operations
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Automation/Operations/AsyncOperation.cpp
r17017b r9db22d 27 27 28 28 #include <boost/bind.hpp> 29 #include <boost/function.hpp> 29 30 #include <vector> 30 31 #include "Connection.hpp" // Must come before boost/serialization headers. 31 32 #include "CodePatterns/Info.hpp" 32 33 #include "CodePatterns/Log.hpp" 34 35 void NoOp() {} 36 37 // static instances 38 const boost::function<void ()> AsyncOperation::NoOpCallback = boost::bind(&NoOp); 33 39 34 40 /** Callback function when an operation has been completed. … … 42 48 { 43 49 LOG(1, "INFO: AsyncOperation completed."); 50 callback_on_success(); 44 51 } 45 52 else … … 48 55 Exitflag = ErrorFlag; 49 56 ELOG(1, e.message()); 57 callback_on_failure(); 50 58 } 51 59 … … 68 76 { 69 77 Info info(__FUNCTION__); 78 70 79 // Resolve the host name into an IP address. 71 80 boost::asio::ip::tcp::resolver resolver(connection_.socket().get_io_service()); … … 81 90 boost::asio::placeholders::error, ++endpoint_iterator)); 82 91 } 83 -
src/Fragmentation/Automation/Operations/AsyncOperation.hpp
r17017b r9db22d 32 32 * update signal at operation's end is not triggered. 33 33 */ 34 class AsyncOperation : public Operation, public Observable { 34 class AsyncOperation : public Operation, public Observable 35 { 36 public: 37 //!> static function as default callback on success/failure of operation that does nothing 38 static const boost::function<void ()> NoOpCallback; 35 39 public: 36 40 /** Constructor for class AsyncOperation. … … 38 42 * \param _name name for this AsyncOperation for retrieval from a registry 39 43 * \param _connection connection to operate on 44 * \param callback_on_success function to call when operation ends successfully 45 * \param callback_on_failure function to call when operation fails 40 46 */ 41 47 AsyncOperation( 42 48 const std::string &_name, 43 Connection &_connection) : 49 Connection &_connection, 50 const boost::function<void ()> &_callback_on_success = NoOpCallback, 51 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 44 52 Operation(_name, _connection), 45 Observable(_name) 53 Observable(_name), 54 callback_on_success(_callback_on_success), 55 callback_on_failure(_callback_on_failure) 46 56 {} 47 57 … … 67 77 /// internal function to disconnect from server 68 78 void disconnect(); 79 80 private: 81 //!> Callback function on successful end of operation 82 boost::function<void ()> callback_on_success; 83 //!> Callback function on end of operation with failure 84 boost::function<void ()> callback_on_failure; 69 85 }; 70 86 -
src/Fragmentation/Automation/Operations/Controllers/CheckResultsOperation.hpp
r17017b r9db22d 28 28 public: 29 29 /// Constructor for class CheckResultsOperation. 30 CheckResultsOperation(Connection &_connection) : 31 AsyncOperation(std::string("checkresults"), _connection), 30 CheckResultsOperation(Connection &_connection, 31 const boost::function<void ()> &_callback_on_success = NoOpCallback, 32 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 33 AsyncOperation(std::string("checkresults"), _connection, _callback_on_success, _callback_on_failure), 32 34 jobInfo((size_t)2, 0) 33 35 {} -
src/Fragmentation/Automation/Operations/Controllers/GetNextJobIdOperation.hpp
r17017b r9db22d 29 29 public: 30 30 /// Constructor for class GetNextJobIdOperation. 31 GetNextJobIdOperation(Connection &_connection) : 32 AsyncOperation(std::string("getnextjobid"), _connection) 31 GetNextJobIdOperation(Connection &_connection, 32 const boost::function<void ()> &_callback_on_success = NoOpCallback, 33 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 34 AsyncOperation(std::string("getnextjobid"), _connection, _callback_on_success, _callback_on_failure) 33 35 {} 34 36 /// Destructor for class GetNextJobIdOperation -
src/Fragmentation/Automation/Operations/Controllers/ReceiveResultsOperation.hpp
r17017b r9db22d 26 26 public: 27 27 /// Constructor for class ReceiveResultsOperation. 28 ReceiveResultsOperation(Connection &_connection) : 29 AsyncOperation(std::string("receiveresults"), _connection) {} 28 ReceiveResultsOperation(Connection &_connection, 29 const boost::function<void ()> &_callback_on_success = NoOpCallback, 30 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 31 AsyncOperation(std::string("receiveresults"), _connection, _callback_on_success, _callback_on_failure) 32 {} 30 33 /// Destructor for class ReceiveResultsOperation 31 34 ~ReceiveResultsOperation() {} -
src/Fragmentation/Automation/Operations/Controllers/SendJobsOperation.hpp
r17017b r9db22d 26 26 public: 27 27 /// Constructor for class SendJobsOperation. 28 SendJobsOperation(Connection &_connection) : 29 AsyncOperation(std::string("sendjobs"), _connection) {} 28 SendJobsOperation(Connection &_connection, 29 const boost::function<void ()> &_callback_on_success = NoOpCallback, 30 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 31 AsyncOperation(std::string("sendjobs"), _connection, _callback_on_success, _callback_on_failure) 32 {} 30 33 /// Destructor for class SendJobsOperation 31 34 ~SendJobsOperation() {} -
src/Fragmentation/Automation/Operations/Servers/SendJobToWorkerOperation.hpp
r17017b r9db22d 31 31 * @param _connection connection for operation 32 32 */ 33 SendJobToWorkerOperation(Connection &_connection) : 34 AsyncOperation(std::string("sendjobtoworker"),_connection), 33 SendJobToWorkerOperation(Connection &_connection, 34 const boost::function<void ()> &_callback_on_success = NoOpCallback, 35 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 36 AsyncOperation(std::string("sendjobtoworker"),_connection, _callback_on_success, _callback_on_failure), 35 37 job( new SystemCommandJob(std::string("/bin/true"), std::string("donothing"), JobId::NoJob) ) 36 38 {} -
src/Fragmentation/Automation/Operations/Servers/ShutdownWorkerOperation.hpp
r17017b r9db22d 29 29 public: 30 30 /// Constructor for class ShutdownWorkerOperation. 31 ShutdownWorkerOperation(Connection &_connection) : 32 AsyncOperation(std::string("shutdown"),_connection) {} 31 ShutdownWorkerOperation(Connection &_connection, 32 const boost::function<void ()> &_callback_on_success = NoOpCallback, 33 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 34 AsyncOperation(std::string("shutdown"),_connection, _callback_on_success, _callback_on_failure) {} 33 35 /// Destructor for class ShutdownWorkerOperation 34 36 ~ShutdownWorkerOperation() {} -
src/Fragmentation/Automation/Operations/Workers/EnrollInPoolOperation.hpp
r17017b r9db22d 29 29 public: 30 30 /// Constructor for class EnrollInPoolOperation. 31 EnrollInPoolOperation(Connection &_connection, const WorkerAddress &_address) : 32 AsyncOperation(std::string("enrollinpool"),_connection), 31 EnrollInPoolOperation(Connection &_connection, const WorkerAddress &_address, 32 const boost::function<void ()> &_callback_on_success = NoOpCallback, 33 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 34 AsyncOperation(std::string("enrollinpool"),_connection, _callback_on_success, _callback_on_failure), 33 35 address(_address), 34 36 EnrollmentFlag(false) -
src/Fragmentation/Automation/Operations/Workers/ObtainJobOperation.hpp
r17017b r9db22d 28 28 public: 29 29 /// Constructor for class ObtainJobOperation. 30 ObtainJobOperation(Connection &_connection) : 31 AsyncOperation(std::string("obtainjob"),_connection) {} 30 ObtainJobOperation(Connection &_connection, 31 const boost::function<void ()> &_callback_on_success = NoOpCallback, 32 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 33 AsyncOperation(std::string("obtainjob"),_connection, _callback_on_success, _callback_on_failure) 34 {} 32 35 /// Destructor for class ObtainJobOperation 33 36 ~ObtainJobOperation() {} -
src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.hpp
r17017b r9db22d 29 29 public: 30 30 /// Constructor for class SubmitResultOperation. 31 SubmitResultOperation(Connection &_connection, const WorkerAddress &_address) : 32 AsyncOperation(std::string("submitresult"),_connection), 31 SubmitResultOperation(Connection &_connection, const WorkerAddress &_address, 32 const boost::function<void ()> &_callback_on_success = NoOpCallback, 33 const boost::function<void ()> &_callback_on_failure = NoOpCallback) : 34 AsyncOperation(std::string("submitresult"),_connection, _callback_on_success, _callback_on_failure), 33 35 result( new FragmentResult(JobId::NoJob, std::string("EmptyResult")) ), 34 36 address(_address),
Note:
See TracChangeset
for help on using the changeset viewer.