using System;
namespace Top.Api
{
    /// 
    /// TOP客户端。
    /// 
    public interface ITopClient
    {
        /// 
        /// 执行TOP公开API请求。
        /// 
        /// 领域对象
        /// 具体的TOP API请求
        /// 领域对象
        T Execute(ITopRequest request) where T : TopResponse;
        /// 
        /// 执行TOP隐私API请求。
        /// 
        /// 领域对象
        /// 具体的TOP API请求
        /// 用户会话码
        /// 领域对象
        T Execute(ITopRequest request, string session) where T : TopResponse;
        /// 
        /// 执行TOP隐私API请求。
        /// 
        /// 领域对象
        /// 具体的TOP API请求
        /// 用户会话码
        /// 请求时间戳
        /// 领域对象
        T Execute(ITopRequest request, string session, DateTime timestamp) where T : TopResponse;
    }
}