#region License Information /* HeuristicLab * Copyright (C) 2002-2010 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.Data; using System.Net.Security; using System.ServiceModel; namespace HeuristicLab.Services.OKB { /// /// Service interface for downloading and uploading data tables. /// [ServiceContract(SessionMode = SessionMode.Required, ProtectionLevel = ProtectionLevel.EncryptAndSign)] public interface ITableService { /// /// Prepares the data table to be downloaded. /// /// Name of the table. /// The number of rows. /// An empyt that contains just /// the column headers. [OperationContract(IsInitiating = true)] DataTable PrepareDataTable(string tableName, out int count); /// /// Gets the next few rows. /// /// The maximum number of rows to return. /// A partial with the /// next few rows. [OperationContract(IsInitiating = false, IsTerminating = false)] DataTable GetNextRows(int count); /// /// Finishes fetching rows and closes the connection. /// [OperationContract(IsTerminating = true)] void FinishFetchingRows(); /// /// Updates the data table using the partial /// with changed rows. /// /// The with /// changed rows. /// Name of the table. [OperationContract(IsInitiating = true, IsTerminating = true)] void UpdateDataTable(DataTable changedRows, string tableName); /// /// Deletes the selected table rows using the value of the /// "Id" column. /// /// The ids. /// Name of the table. [OperationContract(IsInitiating = true, IsTerminating = true)] void DeleteTableRows(int[] ids, string tableName); } }