From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.Data.Client/Util/GrpcClientInterceptor.cs | 92 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 0 deletions(-)
diff --git a/HotelPms.Data.Client/Util/GrpcClientInterceptor.cs b/HotelPms.Data.Client/Util/GrpcClientInterceptor.cs
new file mode 100644
index 0000000..40246fd
--- /dev/null
+++ b/HotelPms.Data.Client/Util/GrpcClientInterceptor.cs
@@ -0,0 +1,92 @@
+using Grpc.Core;
+using Grpc.Core.Interceptors;
+using System;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HotelPms.Data.Util
+{
+ public class GrpcClientInterceptor : Interceptor
+ {
+ /// <summary>
+ /// 一元调用(UnaryCall)
+ /// </summary>
+ /// <typeparam name="TRequest"></typeparam>
+ /// <typeparam name="TResponse"></typeparam>
+ /// <param name="request"></param>
+ /// <param name="context"></param>
+ /// <param name="continuation"></param>
+ /// <returns></returns>
+ public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("AsyncUnaryCall");
+ Console.WriteLine("客户端调用执行开始");
+ var responseCon = continuation(request, context);
+ var response = new AsyncUnaryCall<TResponse>(responseCon.ResponseAsync, responseCon.ResponseHeadersAsync, responseCon.GetStatus, responseCon.GetTrailers, responseCon.Dispose);
+ Console.WriteLine("客户端调用执行结束"); //非同期処理のため、ここには処理未完成
+ return response;
+ }
+
+ private async Task<TResponse> MyAsyncStuff<TResponse>(AsyncUnaryCall<TResponse> responseAsync)
+ {
+ return await responseAsync;
+ }
+
+ public override AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(ClientInterceptorContext<TRequest, TResponse> context, AsyncClientStreamingCallContinuation<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("AsyncClientStreamingCall");
+ return base.AsyncClientStreamingCall(context, continuation);
+ }
+
+ public override AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(ClientInterceptorContext<TRequest, TResponse> context, AsyncDuplexStreamingCallContinuation<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("AsyncDuplexStreamingCall");
+ return base.AsyncDuplexStreamingCall(context, continuation);
+ }
+
+ /// <summary>
+ /// 同期
+ /// </summary>
+ /// <typeparam name="TRequest"></typeparam>
+ /// <typeparam name="TResponse"></typeparam>
+ /// <param name="request"></param>
+ /// <param name="context"></param>
+ /// <param name="continuation"></param>
+ /// <returns></returns>
+ public override TResponse BlockingUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, BlockingUnaryCallContinuation<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("BlockingUnaryCall");
+ return base.BlockingUnaryCall(request, context, continuation);
+ }
+
+ public override AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, AsyncServerStreamingCallContinuation<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("AsyncServerStreamingCall");
+ return base.AsyncServerStreamingCall(request, context, continuation);
+ }
+
+ public override Task<TResponse> ClientStreamingServerHandler<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, ServerCallContext context, ClientStreamingServerMethod<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("ClientStreamingServerHandler");
+ return base.ClientStreamingServerHandler(requestStream, context, continuation);
+ }
+
+ public override Task DuplexStreamingServerHandler<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, IServerStreamWriter<TResponse> responseStream, ServerCallContext context, DuplexStreamingServerMethod<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("DuplexStreamingServerHandler");
+ return base.DuplexStreamingServerHandler(requestStream, responseStream, context, continuation);
+ }
+
+ public override Task ServerStreamingServerHandler<TRequest, TResponse>(TRequest request, IServerStreamWriter<TResponse> responseStream, ServerCallContext context, ServerStreamingServerMethod<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("ServerStreamingServerHandler");
+ return base.ServerStreamingServerHandler(request, responseStream, context, continuation);
+ }
+
+ public override Task<TResponse> UnaryServerHandler<TRequest, TResponse>(TRequest request, ServerCallContext context, UnaryServerMethod<TRequest, TResponse> continuation)
+ {
+ Console.WriteLine("UnaryServerHandler");
+ return base.UnaryServerHandler(request, context, continuation);
+ }
+ }
+}
--
Gitblit v1.10.0