Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/19/08 17:03:25 (16 years ago)
Author:
msteinbi
Message:

First version of a dummy implementation of the ClientCommunicator (#371)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs

    r780 r783  
    1212  /// </summary>
    1313  public class ClientCommunicator: IClientCommunicator {
     14    List<Client> clients;
     15    List<long> jobs;
     16    int nrOfJobs = 10;
     17
     18    public ClientCommunicator() {
     19      jobs = new List<long>();
     20      for (int i = 1; i < nrOfJobs; i++) {
     21        jobs.Add(i);
     22      }
     23    }
     24
    1425    #region IClientCommunicator Members
    1526
    1627    public Response Login(Client clientInfo) {
     28      if (clients == null)
     29        clients = new List<Client>();
     30
     31      clients.Add(clientInfo);
     32
    1733      Response response = new Response();
    1834      response.Success = true;
    19       response.StatusMessage = "Logged in...";
     35      response.StatusMessage = "Client with GUID " + clientInfo.ClientId + " successuflly logged in";
    2036
    2137      return response;
     
    2339
    2440    public ResponseHB SendHeartBeat(HeartBeatData hbData) {
    25       throw new NotImplementedException();
     41      ResponseHB response = new ResponseHB();
     42
     43      response.Success = true;
     44      response.StatusMessage = "HeartBeat received";
     45      if (jobs.Count > 0)
     46        response.ActionRequest.Add(new MessageContainer(MessageContainer.MessageType.FetchJob));
     47      else
     48        response.ActionRequest.Add(new MessageContainer(MessageContainer.MessageType.NoMessage));
     49
     50      return response;
    2651    }
    2752
    2853    public ResponseJob PullJob(Guid clientId) {
    29       throw new NotImplementedException();
     54      ResponseJob response = new ResponseJob();
     55
     56      response.JobId = jobs.ElementAt(jobs.Count);
     57      response.Success = true;
     58      response.StatusMessage = "Job with id " + jobs.Count + " sent";
     59      jobs.Remove(jobs.Count);
     60
     61      return response;
    3062    }
    3163
    3264    public Response SendJobResult(JobResult Result, bool finished) {
    33       throw new NotImplementedException();
     65      Response response = new Response();
     66      response.Success = true;
     67      response.StatusMessage = "Thanks for calculating";
     68
     69      return response;
    3470    }
    3571
    3672    public Response Logout(Guid clientId) {
    37       throw new NotImplementedException();
     73      bool clientRemoved = false;
     74      foreach (Client client in clients) {
     75        if (client.ClientId.Equals(clientId)) {
     76          clients.Remove(client);
     77          clientRemoved = true;
     78        }
     79      }
     80      Response response = new Response()
     81     
     82      if (clientRemoved) {
     83        response.Success = true;
     84        response.StatusMessage = "Successfully logged out. Good bye";
     85      } else {
     86        response.Success = false;
     87        response.StatusMessage = "Sorry, but you weren't logged in";
     88      }
     89      return response;
    3890    }
    3991
Note: See TracChangeset for help on using the changeset viewer.