Exemplo n.º 1
0
        public ObservableProject(HostState hostState, BoincRpc.Project rpcProject)
        {
            HostId   = hostState.Id;
            HostName = hostState.Name;

            Update(rpcProject);
        }
Exemplo n.º 2
0
        public ObservableTransfer(HostState hostState, BoincRpc.FileTransfer fileTransfer)
        {
            HostId   = hostState.Id;
            HostName = hostState.Name;

            Update(fileTransfer);
        }
Exemplo n.º 3
0
        public ObservableMessage(HostState hostState, BoincRpc.Message rpcMessage)
        {
            HostId   = hostState.Id;
            HostName = hostState.Name;

            RpcMessage = rpcMessage;

            Project     = rpcMessage.Project;
            Date        = rpcMessage.Timestamp.ToLocalTime().ToString("g");
            MessageBody = rpcMessage.Body;
            Priority    = rpcMessage.Priority.ToString();
        }
Exemplo n.º 4
0
        public void Update(HostState hostState, BoincRpc.Result result)
        {
            RpcResult = result;

            Progress         = result.ReadyToReport ? 1 : result.FractionDone;
            ElapsedTime      = Utils.ConvertDuration(result.ElapsedTime);
            CpuTime          = Utils.ConvertDuration(result.CurrentCpuTime);
            CpuTimeRemaining = Utils.ConvertDuration(result.EstimatedCpuTimeRemaining);
            LastCheckpoint   = Utils.ConvertDuration(result.CurrentCpuTime - result.CheckpointCpuTime);
            Deadline         = Utils.ConvertDateTime(result.ReportDeadline);
            Status           = Statuses.GetTaskStatus(result, RpcProject, hostState.BoincState);
        }
Exemplo n.º 5
0
        public ObservableTask(HostState hostState, BoincRpc.Result result)
        {
            HostId   = hostState.Id;
            HostName = hostState.Name;

            RpcProject = hostState.BoincState.Projects?.FirstOrDefault(p => p.MasterUrl == result.ProjectUrl);
            var rpcWorkunit = hostState.BoincState.Workunits?.FirstOrDefault(w => w.ProjectUrl == RpcProject?.MasterUrl && w.Name == result.WorkunitName);
            var rpcApp      = hostState.BoincState.Apps?.FirstOrDefault(a => a.ProjectUrl == RpcProject?.MasterUrl && a.Name == rpcWorkunit?.AppName);

            if (RpcProject == null || rpcWorkunit == null || rpcApp == null)
            {
                Status = Statuses.GetTaskStatus(result, RpcProject, hostState.BoincState);
                return;
            }

            Project     = RpcProject.ProjectName;
            Application = rpcApp.UserFriendlyName;
            Workunit    = result.WorkunitName;

            Update(hostState, result);
        }