public Http3SharpImpl(string hostName, string port, Http3Sharp.ConnectionOptions options) { _cToken = new CancellationTokenSource(); Authority = hostName + port; _hostName = hostName; _port = port; // native 側のインスタンスの生成やコールバックの登録 _hostId = qwfsCreate(hostName, port, new Callbacks { SuccessFile = RequestFileSuccess, SuccessBinary = RequestBinarySuccess, Error = RequestError }); Debug.Assert(INVALID_HOST_ID != _hostId); // if (!_responseForEachHost.ContainsKey(_hostId)) { _responseForEachHost.Add(_hostId, new List <Http3Sharp.ResponseParamaters>()); } // そのうち単独呼び出しにするかも if (!string.IsNullOrWhiteSpace(options.QlogPath)) { if (!Directory.Exists(options.QlogPath)) { Directory.CreateDirectory(options.QlogPath); } } var result = qwfsSetOptions(_hostId, options); Debug.Assert(QwfsResult.Ok == result); _Http3SharpImplList.Add(_hostId, this); // Update 用のタスクをこの時点から走らせ始める(リクエストが無くてもハンドシェイクが始まる為) _task = Task.Run(() => { UpdateQwfs(); }); }
private static extern QwfsResult qwfsSetOptions(ulong hostId, Http3Sharp.ConnectionOptions options);