Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/20/08 15:41:25 (16 years ago)
Author:
whackl
Message:

implemented ticket (#376) (Client Services)

File:
1 edited

Legend:

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

    r782 r790  
    3232using System.Security.Policy;
    3333using System.Security;
     34using HeuristicLab.Hive.Client.Communication;
     35using BO = HeuristicLab.Hive.Contracts.BusinessObjects;
    3436
    3537
     
    5860    }
    5961
    60     public void Start() {     
    61       Heartbeat beat = new Heartbeat();
    62       beat.Interval = 5000;
    63       beat.StartHeartbeat(); 
     62    public void Start() {
     63      Heartbeat beat = new Heartbeat { Interval = 5000 };
     64      beat.StartHeartbeat();
     65
     66      BO.Client clientInfo = new BO.Client { ClientId = Guid.NewGuid() };
     67
     68      ClientCommunicatorClient clientCommunicator = ServiceLocator.GetClientCommunicator();
     69      clientCommunicator.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(ClientCommunicator_LoginCompleted);
     70      clientCommunicator.LoginAsync(clientInfo);
    6471
    6572      MessageQueue queue = MessageQueue.GetInstance();
    66       queue.AddMessage(MessageContainer.MessageType.FetchJob);     
     73      queue.AddMessage(MessageContainer.MessageType.FetchJob);
    6774      while (true) {
    6875        MessageContainer container = queue.GetMessage();
    6976        Debug.WriteLine("Main loop received this message: " + container.Message.ToString());
    70         Logging.GetInstance().Info(this.ToString(), container.Message.ToString()); 
     77        Logging.GetInstance().Info(this.ToString(), container.Message.ToString());
    7178        DetermineAction(container);
    7279      }
     80    }
     81
     82    void ClientCommunicator_LoginCompleted(object sender, LoginCompletedEventArgs e) {     
     83      if (e.Result.Success) {
     84        Logging.GetInstance().Info(this.ToString(), "Login completed to Hive Server @ " + DateTime.Now);
     85        Status.LoginTime = DateTime.Now;
     86        Status.LoggedIn = true;
     87      } else
     88        Logging.GetInstance().Error(this.ToString(), e.Result.StatusMessage);
    7389    }
    7490
     
    7793      if (sandboxed) {
    7894        pset = new PermissionSet(PermissionState.None);
    79         pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));       
     95        pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
    8096      } else {
    8197        pset = new PermissionSet(PermissionState.Unrestricted);
     
    85101      //Temp Fix!
    86102      setup.PrivateBinPath = "plugins";
    87       return System.AppDomain.CreateDomain("appD", AppDomain.CurrentDomain.Evidence, setup, pset, CreateStrongName(Assembly.GetExecutingAssembly())); 
     103      return System.AppDomain.CreateDomain("appD", AppDomain.CurrentDomain.Evidence, setup, pset, CreateStrongName(Assembly.GetExecutingAssembly()));
    88104
    89105    }
     
    97113          Debug.WriteLine("-- Job Aborted Message received");
    98114          break;
    99        
    100        
     115
     116
    101117        case MessageContainer.MessageType.RequestSnapshot:
    102118          engines[container.JobId].RequestSnapshot();
     
    105121          engines[container.JobId].GetSnapshot();
    106122          break;
    107        
    108        
     123
     124
    109125        case MessageContainer.MessageType.FetchJob:
    110126          bool sandboxed = true;
    111127
    112128          IJob job = CreateNewJob();
    113          
    114           AppDomain appDomain = CreateNewAppDomain(true);
     129
     130          AppDomain appDomain = CreateNewAppDomain(false);
    115131          appDomains.Add(job.JobId, appDomain);
    116          
     132
    117133          Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
    118134          engine.Job = job;
     
    132148      }
    133149    }
    134    
     150
    135151    /// <summary>
    136152    /// Simulator Class for new Jobs. will be replaced with fetching Jobs from the Interface
Note: See TracChangeset for help on using the changeset viewer.