/// <summary> /// リクエストを型付けするためのメソッドです。 /// </summary> private IPbResponse HandleRequestInternal <TReq, TRes>( PbRequestHandler <TReq, TRes> handler, object requestObj) where TRes : class { var e = new PbRequestEventArgs <TReq, TRes>((TReq)requestObj); handler(this, e); return(new PbResponse <TRes>() { Response = e.Response, ErrorCode = e.ErrorCode, }); }
/// <summary> /// プロトコルのバージョンチェックを行います。 /// </summary> private void HandleCheckProtocolVersionRequest( object sender, PbRequestEventArgs <PbCheckProtocolVersionRequest, PbCheckProtocolVersionResponse> e) { var clientVersion = e.Request.ProtocolVersion; var result = PbVersionCheckResult.Ok; if (clientVersion == null) { result = PbVersionCheckResult.InvalidValue; } else if (clientVersion < ProtocolVersion) { result = PbVersionCheckResult.TooLower; } else if (clientVersion > ProtocolVersion) { result = PbVersionCheckResult.TooUpper; } // バージョンチェックの結果を返します。 e.Response = new PbCheckProtocolVersionResponse(result); }
/// <summary> /// 存在確認リクエストを処理します。 /// </summary> private void HandleKeepAliveRequest( object sender, PbRequestEventArgs <PbKeepAliveRequest, PbKeepAliveResponse> e) { e.Response = new PbKeepAliveResponse(); }