#region License Information /* HeuristicLab * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Collections.Generic; using System.Linq.Expressions; using HeuristicLab.Services.Hive.Common.DataTransfer; using DT = HeuristicLab.Services.Hive.Common.DataTransfer; namespace HeuristicLab.Services.Hive.DataAccess { public interface IHiveDao { #region Job Methods DT.Job GetJob(Guid id); IEnumerable GetJobs(Expression> predicate); Guid AddJob(DT.Job dto); void UpdateJob(DT.Job dto); void DeleteJob(Guid id); IEnumerable GetWaitingJobs(DT.Slave slave, int count); IEnumerable GetParentJobs(IEnumerable resourceIds, int count, bool finished); DT.Job UpdateJobState(Guid jobId, JobState jobState, Guid? slaveId, Guid? userId, string exception); #endregion #region JobData Methods DT.JobData GetJobData(Guid id); IEnumerable GetJobDatas(Expression> predicate); Guid AddJobData(DT.JobData dto); void UpdateJobData(DT.JobData dto); void DeleteJobData(Guid id); #endregion #region StateLog Methods DT.StateLog GetStateLog(Guid id); IEnumerable GetStateLogs(Expression> predicate); Guid AddStateLog(DT.StateLog dto); void UpdateStateLog(DT.StateLog dto); void DeleteStateLog(Guid id); #endregion #region HiveExperiment Methods DT.HiveExperiment GetHiveExperiment(Guid id); IEnumerable GetHiveExperiments(Expression> predicate); Guid AddHiveExperiment(DT.HiveExperiment dto); void UpdateHiveExperiment(DT.HiveExperiment dto); void DeleteHiveExperiment(Guid id); #endregion #region HiveExperimentPermission Methods DT.HiveExperimentPermission GetHiveExperimentPermission(Guid hiveExperimentId, Guid grantedUserId); IEnumerable GetHiveExperimentPermissions(Expression> predicate); void AddHiveExperimentPermission(DT.HiveExperimentPermission dto); void UpdateHiveExperimentPermission(DT.HiveExperimentPermission dto); void DeleteHiveExperimentPermission(Guid hiveExperimentId, Guid grantedUserId); void SetHiveExperimentPermission(Guid hiveExperimentId, Guid grantedByUserId, Guid grantedUserId, Permission permission); #endregion #region Plugin Methods DT.Plugin GetPlugin(Guid id); IEnumerable GetPlugins(Expression> predicate); Guid AddPlugin(DT.Plugin dto); void UpdatePlugin(DT.Plugin dto); void DeletePlugin(Guid id); #endregion #region PluginData Methods DT.PluginData GetPluginData(Guid id); IEnumerable GetPluginDatas(Expression> predicate); Guid AddPluginData(DT.PluginData dto); void UpdatePluginData(DT.PluginData dto); void DeletePluginData(Guid id); #endregion #region Calendar Methods #endregion #region Slave Methods DT.Slave GetSlave(Guid id); IEnumerable GetSlaves(Expression> predicate); Guid AddSlave(DT.Slave dto); void UpdateSlave(DT.Slave dto); void DeleteSlave(Guid id); #endregion #region SlaveGroup Methods DT.SlaveGroup GetSlaveGroup(Guid id); IEnumerable GetSlaveGroups(Expression> predicate); Guid AddSlaveGroup(DT.SlaveGroup dto); void UpdateSlaveGroup(DT.SlaveGroup dto); void DeleteSlaveGroup(Guid id); #endregion #region Resource Methods DT.Resource GetResource(Guid id); IEnumerable GetResources(Expression> predicate); Guid AddResource(DT.Resource dto); void UpdateResource(DT.Resource dto); void DeleteResource(Guid id); void AssignJobToResource(Guid jobId, Guid resourceId); IEnumerable GetAssignedResources(Guid jobId); IEnumerable GetParentResources(Guid resourceId); IEnumerable GetChildResources(Guid resourceId); IEnumerable GetJobsByResourceId(Guid resourceId); #endregion #region Authorization Methods Permission GetPermissionForJob(Guid jobId, Guid userId); Permission GetPermissionForExperiment(Guid experimentId, Guid userId); Guid GetExperimentForJob(Guid jobId); #endregion #region Lifecycle Methods DateTime GetLastCleanup(); void SetLastCleanup(DateTime datetime); #endregion #region Downtime Methods DT.Downtime GetDowntime(Guid id); IEnumerable GetDowntimes(Expression> predicate); Guid AddDowntime(DT.Downtime dto); void UpdateDowntime(DT.Downtime dto); void DeleteDowntime(Guid id); #endregion #region Statistics Methods DT.Statistics GetStatistic(Guid id); IEnumerable GetStatistics(Expression> predicate); Guid AddStatistics(DT.Statistics dto); void DeleteStatistics(Guid id); List GetUserStatistics(); #endregion } }