Index: src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.cpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ 	(revision )
@@ -1,124 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2011-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * ReceiveJobsOperation.cpp
- *
- *  Created on: Dec 11, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-// boost asio needs specific operator new
-#include <boost/asio.hpp>
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include <boost/bind.hpp>
-#include <boost/foreach.hpp>
-#include <iostream>
-#include <vector>
-#include "Connection.hpp" // Must come before boost/serialization headers.
-#include <boost/serialization/vector.hpp>
-#include "CodePatterns/Info.hpp"
-#include "CodePatterns/Log.hpp"
-#include "ControllerChoices.hpp"
-#include "Jobs/FragmentJob.hpp"
-
-#include "Controller/Commands/ReceiveJobsOperation.hpp"
-
-/** Handle connect operation to receive jobs from controller
- *
- * \param e error code if something went wrong
- * \param endpoint_iterator endpoint of the connection
- */
-void ReceiveJobsOperation::handle_connect(const boost::system::error_code& e,
-    boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
-{
-  Info info(__FUNCTION__);
-  if (!e)
-  {
-    // Successfully established connection. Give choice.
-    enum ControllerChoices choice = ReceiveJobs;
-    connection_.async_write(choice,
-      boost::bind(&ReceiveJobsOperation::handle_SendJobs, this,
-      boost::asio::placeholders::error));
-  } else if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) {
-    // Try the next endpoint.
-    connection_.socket().close();
-    boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
-    connection_.socket().async_connect(endpoint,
-      boost::bind(&ReceiveJobsOperation::handle_connect, this,
-      boost::asio::placeholders::error, ++endpoint_iterator));
-  } else {
-    // An error occurred. Log it and return. Since we are not starting a new
-    // operation the io_service will run out of work to do and the client will
-    // exit.
-    Exitflag = ErrorFlag;
-    ELOG(1, e.message());
-  }
-}
-
-/** Callback function when jobs have been sent.
- *
- * \param e error code if something went wrong
- */
-void ReceiveJobsOperation::handle_SendJobs(const boost::system::error_code& e)
-{
-  Info info(__FUNCTION__);
-  if (!e)
-  {
-    // Successfully established connection. Start operation to read the vector
-    // of jobs. The connection::async_write() function will automatically
-    // encode the data that is written to the underlying socket.
-    LOG(1, "INFO: Sending "+toString(jobs.size())+" jobs ...");
-    connection_.async_write(jobs,
-      boost::bind(&ReceiveJobsOperation::handle_FinishOperation, this,
-      boost::asio::placeholders::error));
-  }
-  else
-  {
-    // An error occurred.
-    Exitflag = ErrorFlag;
-    ELOG(1, e.message());
-  }
-
-  // Since we are not starting a new operation the io_service will run out of
-  // work to do and the client will exit.
-}
-
-/** Callback function when an operation has been completed.
- *
- * \param e error code if something went wrong
- */
-void ReceiveJobsOperation::handle_FinishOperation(const boost::system::error_code& e)
-{
-  Info info(__FUNCTION__);
-
-  LOG(1, "INFO: Jobs have been sent. Clearing.");
-  jobs.clear();
-
-  AsyncOperation::handle_FinishOperation(e);
-}
-
-/** Place number of jobs into this controller.
- *
- * \param _jobs jobs to add
- */
-void ReceiveJobsOperation::addJobs(const std::vector<FragmentJob::ptr> &_jobs)
-{
-  jobs.reserve(jobs.size()+_jobs.size());
-  BOOST_FOREACH(FragmentJob::ptr job, _jobs) {
-    jobs.push_back(job);
-  }
-  LOG(1, "INFO: ReceiveJobsOperation now contains " << jobs.size() << " job(s).");
-}
-
Index: src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.hpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.hpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ 	(revision )
@@ -1,60 +1,0 @@
-/*
- * ReceiveJobsOperation.hpp
- *
- *  Created on: Dec 11, 2011
- *      Author: heber
- */
-
-#ifndef FRAGMENTCONTROLLER_RECEIVEJOBSOPERATION_HPP_
-#define FRAGMENTCONTROLLER_RECEIVEJOBSOPERATION_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <boost/asio.hpp>
-#include <string>
-#include <vector>
-
-#include "Connection.hpp"
-#include "Jobs/FragmentJob.hpp"
-
-#include "Controller/Commands/AsyncOperation.hpp"
-
-class ReceiveJobsOperation : public AsyncOperation {
-public:
-  /// Constructor for class ReceiveJobsOperation.
-  ReceiveJobsOperation(Connection &_connection) :
-    AsyncOperation(std::string("receivejobs"), _connection) {}
-  /// Destructor for class ReceiveJobsOperation
-  ~ReceiveJobsOperation() {}
-
-public:
-  // virtual function pointer to the connection handler
-  virtual void handle_connect(const boost::system::error_code& e,
-      boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
-
-  /// Callback function when bunch of jobs have been sent.
-  void handle_SendJobs(const boost::system::error_code& e);
-
-  /// Setter for jobs
-  void addJobs(const std::vector<FragmentJob::ptr> &jobs);
-
-  /** Getter for number of jobs present in the queue.
-   *
-   * \return jobs.size()
-   */
-  size_t getPresentJobs() const
-  {
-    return jobs.size();
-  }
-
-protected:
-  void handle_FinishOperation(const boost::system::error_code& e);
-
-  /// bunch of jobs
-  std::vector<FragmentJob::ptr> jobs;
-};
-
-#endif /* FRAGMENTCONTROLLER_RECEIVEJOBSOPERATION_HPP_ */
Index: src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.cpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
+++ src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.cpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -0,0 +1,124 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * SendJobsOperation.cpp
+ *
+ *  Created on: Dec 11, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// boost asio needs specific operator new
+#include <boost/asio.hpp>
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include <boost/bind.hpp>
+#include <boost/foreach.hpp>
+#include <iostream>
+#include <vector>
+#include "Connection.hpp" // Must come before boost/serialization headers.
+#include <boost/serialization/vector.hpp>
+#include "CodePatterns/Info.hpp"
+#include "CodePatterns/Log.hpp"
+#include "ControllerChoices.hpp"
+#include "Jobs/FragmentJob.hpp"
+
+#include "Controller/Commands/SendJobsOperation.hpp"
+
+/** Handle connect operation to receive jobs from controller
+ *
+ * \param e error code if something went wrong
+ * \param endpoint_iterator endpoint of the connection
+ */
+void SendJobsOperation::handle_connect(const boost::system::error_code& e,
+    boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
+{
+  Info info(__FUNCTION__);
+  if (!e)
+  {
+    // Successfully established connection. Give choice.
+    enum ControllerChoices choice = SendJobs;
+    connection_.async_write(choice,
+      boost::bind(&SendJobsOperation::handle_SendJobs, this,
+      boost::asio::placeholders::error));
+  } else if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) {
+    // Try the next endpoint.
+    connection_.socket().close();
+    boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
+    connection_.socket().async_connect(endpoint,
+      boost::bind(&SendJobsOperation::handle_connect, this,
+      boost::asio::placeholders::error, ++endpoint_iterator));
+  } else {
+    // An error occurred. Log it and return. Since we are not starting a new
+    // operation the io_service will run out of work to do and the client will
+    // exit.
+    Exitflag = ErrorFlag;
+    ELOG(1, e.message());
+  }
+}
+
+/** Callback function when jobs have been sent.
+ *
+ * \param e error code if something went wrong
+ */
+void SendJobsOperation::handle_SendJobs(const boost::system::error_code& e)
+{
+  Info info(__FUNCTION__);
+  if (!e)
+  {
+    // Successfully established connection. Start operation to read the vector
+    // of jobs. The connection::async_write() function will automatically
+    // encode the data that is written to the underlying socket.
+    LOG(1, "INFO: Sending "+toString(jobs.size())+" jobs ...");
+    connection_.async_write(jobs,
+      boost::bind(&SendJobsOperation::handle_FinishOperation, this,
+      boost::asio::placeholders::error));
+  }
+  else
+  {
+    // An error occurred.
+    Exitflag = ErrorFlag;
+    ELOG(1, e.message());
+  }
+
+  // Since we are not starting a new operation the io_service will run out of
+  // work to do and the client will exit.
+}
+
+/** Callback function when an operation has been completed.
+ *
+ * \param e error code if something went wrong
+ */
+void SendJobsOperation::handle_FinishOperation(const boost::system::error_code& e)
+{
+  Info info(__FUNCTION__);
+
+  LOG(1, "INFO: Jobs have been sent. Clearing.");
+  jobs.clear();
+
+  AsyncOperation::handle_FinishOperation(e);
+}
+
+/** Place number of jobs into this controller.
+ *
+ * \param _jobs jobs to add
+ */
+void SendJobsOperation::addJobs(const std::vector<FragmentJob::ptr> &_jobs)
+{
+  jobs.reserve(jobs.size()+_jobs.size());
+  BOOST_FOREACH(FragmentJob::ptr job, _jobs) {
+    jobs.push_back(job);
+  }
+  LOG(1, "INFO: SendJobsOperation now contains " << jobs.size() << " job(s).");
+}
+
Index: src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.hpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.hpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
+++ src/Fragmentation/Automation/Controller/Commands/SendJobsOperation.hpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -0,0 +1,60 @@
+/*
+ * SendJobsOperation.hpp
+ *
+ *  Created on: Dec 11, 2011
+ *      Author: heber
+ */
+
+#ifndef FRAGMENTCONTROLLER_SENDJOBSOPERATION_HPP_
+#define FRAGMENTCONTROLLER_SENDJOBSOPERATION_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <boost/asio.hpp>
+#include <string>
+#include <vector>
+
+#include "Connection.hpp"
+#include "Jobs/FragmentJob.hpp"
+
+#include "Controller/Commands/AsyncOperation.hpp"
+
+class SendJobsOperation : public AsyncOperation {
+public:
+  /// Constructor for class SendJobsOperation.
+  SendJobsOperation(Connection &_connection) :
+    AsyncOperation(std::string("sendjobs"), _connection) {}
+  /// Destructor for class SendJobsOperation
+  ~SendJobsOperation() {}
+
+public:
+  // virtual function pointer to the connection handler
+  virtual void handle_connect(const boost::system::error_code& e,
+      boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
+
+  /// Callback function when bunch of jobs have been sent.
+  void handle_SendJobs(const boost::system::error_code& e);
+
+  /// Setter for jobs
+  void addJobs(const std::vector<FragmentJob::ptr> &jobs);
+
+  /** Getter for number of jobs present in the queue.
+   *
+   * \return jobs.size()
+   */
+  size_t getPresentJobs() const
+  {
+    return jobs.size();
+  }
+
+protected:
+  void handle_FinishOperation(const boost::system::error_code& e);
+
+  /// bunch of jobs
+  std::vector<FragmentJob::ptr> jobs;
+};
+
+#endif /* FRAGMENTCONTROLLER_SENDJOBSOPERATION_HPP_ */
Index: src/Fragmentation/Automation/Controller/FragmentController.cpp
===================================================================
--- src/Fragmentation/Automation/Controller/FragmentController.cpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ src/Fragmentation/Automation/Controller/FragmentController.cpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -30,5 +30,5 @@
 #include "Controller/Commands/CheckResultsOperation.hpp"
 #include "Controller/Commands/GetNextJobIdOperation.hpp"
-#include "Controller/Commands/ReceiveJobsOperation.hpp"
+#include "Controller/Commands/SendJobsOperation.hpp"
 #include "Controller/Commands/SendResultsOperation.hpp"
 #include "Controller/Commands/ShutdownOperation.hpp"
@@ -49,5 +49,5 @@
   Commands.registerInstance(new CheckResultsOperation(connection_));
   Commands.registerInstance(new GetNextJobIdOperation(connection_));
-  Commands.registerInstance(new ReceiveJobsOperation(connection_));
+  Commands.registerInstance(new SendJobsOperation(connection_));
   Commands.registerInstance(new SendResultsOperation(connection_));
   Commands.registerInstance(new ShutdownOperation(connection_));
Index: src/Fragmentation/Automation/ControllerChoices.hpp
===================================================================
--- src/Fragmentation/Automation/ControllerChoices.hpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ src/Fragmentation/Automation/ControllerChoices.hpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -18,5 +18,5 @@
   NoControllerOperation,
   GetNextJobId,
-  ReceiveJobs,
+  SendJobs,
   CheckState,
   SendResults,
Index: src/Fragmentation/Automation/FragmentScheduler.cpp
===================================================================
--- src/Fragmentation/Automation/FragmentScheduler.cpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ src/Fragmentation/Automation/FragmentScheduler.cpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -352,5 +352,5 @@
       break;
     }
-    case ReceiveJobs:
+    case SendJobs:
     {
       // The connection::async_write() function will automatically
Index: src/Fragmentation/Automation/Makefile.am
===================================================================
--- src/Fragmentation/Automation/Makefile.am	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ src/Fragmentation/Automation/Makefile.am	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -48,6 +48,6 @@
   Controller/Commands/GetNextJobIdOperation.cpp \
   Controller/Commands/ObtainJobOperation.cpp \
-  Controller/Commands/ReceiveJobsOperation.cpp \
   Controller/Commands/RemoveFromPoolOperation.cpp \
+  Controller/Commands/SendJobsOperation.cpp \
   Controller/Commands/SendJobToWorkerOperation.cpp \
   Controller/Commands/SendResultsOperation.cpp \
@@ -65,6 +65,6 @@
   Controller/Commands/ObtainJobOperation.hpp \
   Controller/Commands/Operation.hpp \
-  Controller/Commands/ReceiveJobsOperation.hpp \
   Controller/Commands/RemoveFromPoolOperation.hpp \
+  Controller/Commands/SendJobsOperation.hpp \
   Controller/Commands/SendJobToWorkerOperation.hpp \
   Controller/Commands/SendResultsOperation.hpp \
Index: src/Fragmentation/Automation/controller.cpp
===================================================================
--- src/Fragmentation/Automation/controller.cpp	(revision 6b3a376093d3dcb7eae7953f45036bc650bb4286)
+++ src/Fragmentation/Automation/controller.cpp	(revision 425fc6dc643f9f341f0b236c7ace03fce1c18ce0)
@@ -42,5 +42,5 @@
 #include "Controller/Commands/CheckResultsOperation.hpp"
 #include "Controller/Commands/GetNextJobIdOperation.hpp"
-#include "Controller/Commands/ReceiveJobsOperation.hpp"
+#include "Controller/Commands/SendJobsOperation.hpp"
 #include "Controller/Commands/SendResultsOperation.hpp"
 #include "Controller/Commands/ShutdownOperation.hpp"
@@ -132,7 +132,9 @@
     std::vector<FragmentJob::ptr> &jobs)
 {
-  ReceiveJobsOperation *recjobs = static_cast<ReceiveJobsOperation *>(
-      controller.Commands.getByName("receivejobs"));
-  recjobs->addJobs(jobs);
+  SendJobsOperation *sendjobs = static_cast<SendJobsOperation *>(
+      controller.Commands.getByName("sendjobs"));
+  sendjobs->addJobs(jobs);
+  const size_t presentJobs = sendjobs->getPresentJobs();
+  LOG(1, "INFO: #" << presentJobs << " jobs are now waiting to be transmitted.");
 }
 
@@ -148,7 +150,9 @@
     const std::string &service)
 {
-  ReceiveJobsOperation *recjobs = static_cast<ReceiveJobsOperation *>(
-      controller.Commands.getByName("receivejobs"));
-  (*recjobs)(host, service);
+  SendJobsOperation *sendjobs = static_cast<SendJobsOperation *>(
+      controller.Commands.getByName("sendjobs"));
+  const size_t presentJobs = sendjobs->getPresentJobs();
+  LOG(1, "INFO: #" << presentJobs << " jobs are being sent to the server.");
+  (*sendjobs)(host, service);
 }
 
