#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);
}
}