using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;


namespace clinkAPIcall
{
    /// <summary>
    /// 32位sdk
    /// </summary>
    public class SDK32
    {
        /// <summary>
        /// 设置侦听端口冲突时是否提示(一般不需要调用，默认是 1：提示)如果要调用本函数应在调用clinkStart前先调用
        /// </summary>
        /// <param name="portConflictAlert">侦听端口冲突时是否提示 0：不提示、1：提示</param>
        [DllImport("clinkAPI32.dll", CallingConvention = CallingConvention.Cdecl)]
        public extern static void setPortConflictAlert(int portConflictAlert);

        /// <summary>
        /// 启动(只需要调用一次，重复调用也不会出错，调用时内部会判断是否已启动过，如果已启动过直接返回第一次调用的结果。调用时因客户端网络不通返回了0，过了段时间网络正常后我们会自动重连，这时再调用会返回150，这时如果没有调用业务也可正常运行)
        /// </summary>
        /// <param name="key">sdk配置密钥(从自己的实例中可以获取该密钥)</param>
        /// <returns>返回150表示成功，其它的值均为失败。150：成功、0：网络不通、1：已外部停止(如调用了停止函数，该函数一般不需要调用)、2：已内部停止(如运行过程中密钥被删除等)、170：实例到期或密钥不存在</returns>
        [DllImport("clinkAPI32.dll", CallingConvention = CallingConvention.Cdecl)]
        public extern static int clinkStart(string key);
    }
}
