コード例 #1
0
        public void CreateAndDestroy()
        {
            var metadata = Metadata.CreateBuilder()
                           .Add(new Metadata.MetadataEntry("host", "somehost"))
                           .Add(new Metadata.MetadataEntry("header2", "header value")).Build();
            var nativeMetadata = MetadataArraySafeHandle.Create(metadata);

            nativeMetadata.Dispose();
        }
コード例 #2
0
        public void CreateAndDestroy()
        {
            var metadata = new Metadata {
                new Metadata.Entry("host", "somehost"),
                new Metadata.Entry("header2", "header value"),
            };
            var nativeMetadata = MetadataArraySafeHandle.Create(metadata);

            nativeMetadata.Dispose();
        }
コード例 #3
0
        public void Setup()
        {
            var native = NativeMethods.Get();

            // nop the native-call via reflection
            NativeMethods.Delegates.grpcsharp_call_send_status_from_server_delegate nop = (CallSafeHandle call, BatchContextSafeHandle ctx, StatusCode statusCode, byte[] statusMessage, UIntPtr statusMessageLen, MetadataArraySafeHandle metadataArray, int sendEmptyInitialMetadata, byte[] optionalSendBuffer, UIntPtr optionalSendBufferLen, WriteFlags writeFlags) => {
                completionRegistry.Extract(ctx.Handle).OnComplete(true); // drain the dictionary as we go
                return(CallError.OK);
            };
            native.GetType().GetField(nameof(native.grpcsharp_call_send_status_from_server)).SetValue(native, nop);

            environment        = GrpcEnvironment.AddRef();
            metadata           = MetadataArraySafeHandle.Create(Metadata.Empty);
            completionRegistry = new CompletionRegistry(environment, () => environment.BatchContextPool.Lease(), () => throw new NotImplementedException());
            var cq = CompletionQueueSafeHandle.CreateAsync(completionRegistry);

            call = CreateFakeCall(cq);
        }
コード例 #4
0
        public void ReadMetadataFromPtrUnsafe()
        {
            var metadata = new Metadata
            {
                { "host", "somehost" },
                { "header2", "header value" }
            };
            var nativeMetadata = MetadataArraySafeHandle.Create(metadata);

            var copy = MetadataArraySafeHandle.ReadMetadataFromPtrUnsafe(nativeMetadata.Handle);

            Assert.AreEqual(2, copy.Count);

            Assert.AreEqual("host", copy[0].Key);
            Assert.AreEqual("somehost", copy[0].Value);
            Assert.AreEqual("header2", copy[1].Key);
            Assert.AreEqual("header value", copy[1].Value);

            nativeMetadata.Dispose();
        }
コード例 #5
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
 {
     throw new NotImplementedException();
 }
コード例 #6
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
 {
     UnaryResponseClientHandler = callback;
 }
コード例 #7
0
 public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
                                       byte[] optionalPayload, WriteFlags writeFlags)
 {
     SendStatusFromServerHandler = callback;
 }
コード例 #8
0
 public void StartUnary(BatchContextSafeHandle ctx, SliceBufferSafeHandle payload, WriteFlags writeFlags, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     StartCallMaybeFail();
     throw new NotImplementedException();
 }
コード例 #9
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
 {
     SendCompletionHandler = callback;
 }
コード例 #10
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray)
 {
     ReceivedStatusOnClientHandler = callback;
 }
コード例 #11
0
ファイル: FakeNativeCall.cs プロジェクト: jwq0622/grpc02
 public void StartClientStreaming(IUnaryResponseClientCallback callback, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     UnaryResponseClientCallback = callback;
 }
コード例 #12
0
ファイル: FakeNativeCall.cs プロジェクト: jwq0622/grpc02
 public void StartUnary(IUnaryResponseClientCallback callback, byte[] payload, WriteFlags writeFlags, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     UnaryResponseClientCallback = callback;
 }
コード例 #13
0
 public void StartSendStatusFromServer(ISendStatusFromServerCompletionCallback callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
                                       SliceBufferSafeHandle payload, WriteFlags writeFlags)
 {
     SendStatusFromServerCallback = callback;
 }
コード例 #14
0
 public void StartServerStreaming(IReceivedStatusOnClientCallback callback, SliceBufferSafeHandle payload, WriteFlags writeFlags, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     StartCallMaybeFail();
     ReceivedStatusOnClientCallback = callback;
 }
コード例 #15
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray)
 {
     UnaryResponseClientHandler = callback;
 }
コード例 #16
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
 {
     ReceivedStatusOnClientHandler = callback;
 }
コード例 #17
0
ファイル: FakeNativeCall.cs プロジェクト: jwq0622/grpc02
 public void StartServerStreaming(IReceivedStatusOnClientCallback callback, byte[] payload, WriteFlags writeFlags, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     ReceivedStatusOnClientCallback = callback;
 }
コード例 #18
0
ファイル: AsyncCallTest.cs プロジェクト: xiexiemanyou/grpc
 public void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray)
 {
     SendCompletionHandler = callback;
 }
コード例 #19
0
ファイル: FakeNativeCall.cs プロジェクト: jwq0622/grpc02
 public void StartDuplexStreaming(IReceivedStatusOnClientCallback callback, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     ReceivedStatusOnClientCallback = callback;
 }
コード例 #20
0
        public void CreateEmptyAndDestroy()
        {
            var nativeMetadata = MetadataArraySafeHandle.Create(new Metadata());

            nativeMetadata.Dispose();
        }
コード例 #21
0
 public void StartUnary(IUnaryResponseClientCallback callback, SliceBufferSafeHandle payload, WriteFlags writeFlags, MetadataArraySafeHandle metadataArray, CallFlags callFlags)
 {
     StartCallMaybeFail();
     UnaryResponseClientCallback = callback;
 }