internal SbFunctionImpl(
            GrpcConnection connection, SbFunctionRpcServiceClient client,
            GrpcSbFunction grpcSbFunction, GrpcAddressFactory addressFactory)
        {
            this.connection     = connection;
            this.client         = client;
            this.grpcSbFunction = grpcSbFunction;
            this.addressFactory = addressFactory;

            // Keep a handle to objects we need in the destructor.
            gcHandle = GCHandle.Alloc(
                new Tuple <GrpcConnection, SbFunctionRpcServiceClient, GrpcSbFunction>(
                    connection, client, grpcSbFunction));
        }
 internal SbFunctionImpl(GrpcConnection connection, GrpcSbFunction grpcSbFunction)
     : this(connection,
            new SbFunctionRpcServiceClient(connection.CallInvoker),
            grpcSbFunction, new GrpcAddressFactory())
 {
 }
 public virtual SbFunction Create(GrpcConnection connection, GrpcSbFunction grpcSbFunction)
 {
     return(new SbFunctionImpl(connection, grpcSbFunction));
 }