Index: trunk/sources/HeuristicLab.Hive.Contracts/Interfaces/IClientCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/Interfaces/IClientCommunicator.cs	(revision 1371)
+++ trunk/sources/HeuristicLab.Hive.Contracts/Interfaces/IClientCommunicator.cs	(revision 1374)
@@ -40,10 +40,15 @@
     ResponseJob SendJob(Guid clientId);
     [OperationContract]
-    ResponseResultReceived ProcessJobResult(Guid clientId, 
+    ResponseResultReceived StoreFinishedJobResult(Guid clientId, 
       long jobId, 
       byte[] result, 
       double percentage,
-      Exception exception,  
-      bool finished);
+      Exception exception);
+    [OperationContract]
+    ResponseResultReceived ProcessSnapshot(Guid clientId, 
+      long jobId, 
+      byte[] result, 
+      double percentage, 
+      Exception exception);
     [OperationContract]
     Response Logout(Guid clientId);
Index: trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 1371)
+++ trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 1374)
@@ -246,29 +246,19 @@
     }
 
-    /// <summary>
-    /// the client can send job results during calculating 
-    /// and will send a final job result when he finished calculating
-    /// these job results will be stored in the database
-    /// </summary>
-    /// <param name="clientId"></param>
-    /// <param name="jobId"></param>
-    /// <param name="result"></param>
-    /// <param name="exception"></param>
-    /// <param name="finished"></param>
-    /// <returns></returns>
-    public ResponseResultReceived ProcessJobResult(Guid clientId, 
-      long jobId, 
-      byte[] result, 
+    private ResponseResultReceived ProcessJobResult(Guid clientId,
+      long jobId,
+      byte[] result,
       double percentage,
-      Exception exception,  
+      Exception exception,
       bool finished) {
+
       ResponseResultReceived response = new ResponseResultReceived();
       ClientInfo client =
         clientAdapter.GetById(clientId);
 
-      Job job = 
+      Job job =
         jobAdapter.GetById(jobId);
 
-      if (job.Client == null)    {
+      if (job.Client == null) {
         response.Success = false;
         response.StatusMessage = ApplicationConstants.RESPONSE_COMMUNICATOR_JOB_IS_NOT_BEEING_CALCULATED;
@@ -288,5 +278,5 @@
         response.Success = true;
         response.StatusMessage = ApplicationConstants.RESPONSE_COMMUNICATOR_JOBRESULT_RECEIVED;
-        return response;        
+        return response;
       }
       if (job.State != State.calculating) {
@@ -306,5 +296,5 @@
 
         List<JobResult> jobResults = new List<JobResult>(jobResultAdapter.GetResultsOf(job));
-        foreach (JobResult currentResult in jobResults) 
+        foreach (JobResult currentResult in jobResults)
           jobResultAdapter.Delete(currentResult);
       }
@@ -330,4 +320,30 @@
     }
 
+
+    /// <summary>
+    /// the client can send job results during calculating 
+    /// and will send a final job result when he finished calculating
+    /// these job results will be stored in the database
+    /// </summary>
+    /// <param name="clientId"></param>
+    /// <param name="jobId"></param>
+    /// <param name="result"></param>
+    /// <param name="exception"></param>
+    /// <param name="finished"></param>
+    /// <returns></returns>
+    public ResponseResultReceived StoreFinishedJobResult(Guid clientId, 
+      long jobId, 
+      byte[] result, 
+      double percentage,
+      Exception exception) {
+
+      return ProcessJobResult(clientId, jobId, result, percentage, exception, true);
+    }
+
+
+    public ResponseResultReceived ProcessSnapshot(Guid clientId, long jobId, byte[] result, double percentage, Exception exception) {
+      return ProcessJobResult(clientId, jobId, result, percentage, exception, false);
+    }
+
     /// <summary>
     /// when a client logs out the state will be set
Index: trunk/sources/HeuristicLab.Hive.Server.Core/ClientFacade.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server.Core/ClientFacade.cs	(revision 1371)
+++ trunk/sources/HeuristicLab.Hive.Server.Core/ClientFacade.cs	(revision 1374)
@@ -48,11 +48,10 @@
     }
 
-    public ResponseResultReceived ProcessJobResult(Guid clientId,
+    public ResponseResultReceived StoreFinishedJobResult(Guid clientId,
       long jobId,
       byte[] result,
       double percentage, 
-      Exception exception,
-      bool finished) {
-      return clientCommunicator.ProcessJobResult(clientId, jobId, result, percentage, exception, finished);
+      Exception exception) {
+      return clientCommunicator.StoreFinishedJobResult(clientId, jobId, result, percentage, exception);
     }
 
@@ -69,4 +68,8 @@
     }
 
+    public ResponseResultReceived ProcessSnapshot(Guid clientId, long jobId, byte[] result, double percentage, Exception exception) {
+      throw new NotImplementedException();
+    }
+
     #endregion
   }
