public void SoftSyncNegotiate(TimeSpan timeout, Dictionary<TunnelType_Value, List<uint>> channelListDic = null)
{
SoftSyncReqFlags_Value flags = SoftSyncReqFlags_Value.SOFT_SYNC_TCP_FLUSHED;
if (channelListDic != null)
{
flags |= SoftSyncReqFlags_Value.SOFT_SYNC_CHANNEL_LIST_PRESENT;
}
List<SoftSyncChannelList> channelList = new List<SoftSyncChannelList>();
int numberOfTunnels = 0;
if (channelListDic != null)
{
foreach (KeyValuePair<TunnelType_Value, List<uint>> kvp in channelListDic)
{
SoftSyncChannelList channel = new SoftSyncChannelList(kvp.Key, (ushort)kvp.Value.Count, kvp.Value);
channelList.Add(channel);
}
numberOfTunnels = channelListDic.Count;
}
SoftSyncNegotiate(timeout, flags, (ushort)numberOfTunnels, channelList.ToArray());
}