Repository: reef
Updated Branches:
  refs/heads/REEF-335 bb2a7345d -> 133c064f9


http://git-wip-us.apache.org/repos/asf/reef/blob/133c064f/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverClientProtocolGrpc.cs
----------------------------------------------------------------------
diff --git 
a/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverClientProtocolGrpc.cs
 
b/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverClientProtocolGrpc.cs
new file mode 100644
index 0000000..d220993
--- /dev/null
+++ 
b/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverClientProtocolGrpc.cs
@@ -0,0 +1,870 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+// <auto-generated>
+//     Generated by the protocol buffer compiler.  DO NOT EDIT!
+//     source: DriverClientProtocol.proto
+// </auto-generated>
+// Original file comments:
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+#pragma warning disable 1591
+#region Designer generated code
+
+using grpc = global::Grpc.Core;
+
+namespace Org.Apache.REEF.Bridge.Proto {
+  /// <summary>
+  /// The java driver service definition.
+  /// </summary>
+  public static partial class DriverClient
+  {
+    static readonly string __ServiceName = "driverbridge.DriverClient";
+
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.Void> __Marshaller_Void = 
grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.Void.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.IdleStatus> 
__Marshaller_IdleStatus = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.IdleStatus.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo> 
__Marshaller_StartTimeInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo> 
__Marshaller_StopTimeInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo> 
__Marshaller_AlarmTriggerInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo> 
__Marshaller_EvaluatorInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.ContextInfo> 
__Marshaller_ContextInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.ContextInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo> 
__Marshaller_ContextMessageInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.TaskInfo> 
__Marshaller_TaskInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.TaskInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo> 
__Marshaller_TaskMessageInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo.Parser.ParseFrom);
+    static readonly 
grpc::Marshaller<global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo> 
__Marshaller_ClientMessageInfo = grpc::Marshallers.Create((arg) => 
global::Google.Protobuf.MessageExtensions.ToByteArray(arg), 
global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo.Parser.ParseFrom);
+
+    static readonly grpc::Method<global::Org.Apache.REEF.Bridge.Proto.Void, 
global::Org.Apache.REEF.Bridge.Proto.IdleStatus> __Method_IdlenessCheckHandler 
= new grpc::Method<global::Org.Apache.REEF.Bridge.Proto.Void, 
global::Org.Apache.REEF.Bridge.Proto.IdleStatus>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "IdlenessCheckHandler",
+        __Marshaller_Void,
+        __Marshaller_IdleStatus);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_StartHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "StartHandler",
+        __Marshaller_StartTimeInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_StopHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "StopHandler",
+        __Marshaller_StopTimeInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_AlarmTrigger = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "AlarmTrigger",
+        __Marshaller_AlarmTriggerInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_AllocatedEvaluatorHandler = 
new grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "AllocatedEvaluatorHandler",
+        __Marshaller_EvaluatorInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_CompletedEvaluatorHandler = 
new grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "CompletedEvaluatorHandler",
+        __Marshaller_EvaluatorInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_FailedEvaluatorHandler = 
new grpc::Method<global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "FailedEvaluatorHandler",
+        __Marshaller_EvaluatorInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_ActiveContextHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ActiveContextHandler",
+        __Marshaller_ContextInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_ClosedContextHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ClosedContextHandler",
+        __Marshaller_ContextInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_FailedContextHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "FailedContextHandler",
+        __Marshaller_ContextInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_ContextMessageHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ContextMessageHandler",
+        __Marshaller_ContextMessageInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_RunningTaskHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "RunningTaskHandler",
+        __Marshaller_TaskInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_FailedTaskHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "FailedTaskHandler",
+        __Marshaller_TaskInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_CompletedTaskHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "CompletedTaskHandler",
+        __Marshaller_TaskInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_SuspendedTaskHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "SuspendedTaskHandler",
+        __Marshaller_TaskInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_TaskMessageHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "TaskMessageHandler",
+        __Marshaller_TaskMessageInfo,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_ClientMessageHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ClientMessageHandler",
+        __Marshaller_ClientMessageInfo,
+        __Marshaller_Void);
+
+    static readonly grpc::Method<global::Org.Apache.REEF.Bridge.Proto.Void, 
global::Org.Apache.REEF.Bridge.Proto.Void> __Method_ClientCloseHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.Void, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ClientCloseHandler",
+        __Marshaller_Void,
+        __Marshaller_Void);
+
+    static readonly 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void> 
__Method_ClientCloseWithMessageHandler = new 
grpc::Method<global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo, 
global::Org.Apache.REEF.Bridge.Proto.Void>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "ClientCloseWithMessageHandler",
+        __Marshaller_ClientMessageInfo,
+        __Marshaller_Void);
+
+    /// <summary>Service descriptor</summary>
+    public static global::Google.Protobuf.Reflection.ServiceDescriptor 
Descriptor
+    {
+      get { return 
global::Org.Apache.REEF.Bridge.Proto.DriverClientProtocolReflection.Descriptor.Services[0];
 }
+    }
+
+    /// <summary>Base class for server-side implementations of 
DriverClient</summary>
+    public abstract partial class DriverClientBase
+    {
+      /// <summary>
+      /// Inquire if idle
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.IdleStatus>
 IdlenessCheckHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Request for resources
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
StartHandler(global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
StopHandler(global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
AlarmTrigger(global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Evaluator handlers
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
AllocatedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Context handlers
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ActiveContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClosedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ContextMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Task handlers
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
RunningTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
SuspendedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
TaskMessageHandler(global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Client Handlers
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler 
being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a 
task).</returns>
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo 
request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual 
global::System.Threading.Tasks.Task<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseWithMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new 
grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+    }
+
+    /// <summary>Client for DriverClient</summary>
+    public partial class DriverClientClient : 
grpc::ClientBase<DriverClientClient>
+    {
+      /// <summary>Creates a new client for DriverClient</summary>
+      /// <param name="channel">The channel to use to make remote 
calls.</param>
+      public DriverClientClient(grpc::Channel channel) : base(channel)
+      {
+      }
+      /// <summary>Creates a new client for DriverClient that uses a custom 
<c>CallInvoker</c>.</summary>
+      /// <param name="callInvoker">The callInvoker to use to make remote 
calls.</param>
+      public DriverClientClient(grpc::CallInvoker callInvoker) : 
base(callInvoker)
+      {
+      }
+      /// <summary>Protected parameterless constructor to allow creation of 
test doubles.</summary>
+      protected DriverClientClient() : base()
+      {
+      }
+      /// <summary>Protected constructor to allow creation of configured 
clients.</summary>
+      /// <param name="configuration">The client configuration.</param>
+      protected DriverClientClient(ClientBaseConfiguration configuration) : 
base(configuration)
+      {
+      }
+
+      /// <summary>
+      /// Inquire if idle
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.IdleStatus 
IdlenessCheckHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return IdlenessCheckHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Inquire if idle
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.IdleStatus 
IdlenessCheckHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_IdlenessCheckHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Inquire if idle
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.IdleStatus> 
IdlenessCheckHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return IdlenessCheckHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Inquire if idle
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.IdleStatus> 
IdlenessCheckHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_IdlenessCheckHandler, null, 
options, request);
+      }
+      /// <summary>
+      /// Request for resources
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
StartHandler(global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return StartHandler(request, new grpc::CallOptions(headers, deadline, 
cancellationToken));
+      }
+      /// <summary>
+      /// Request for resources
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
StartHandler(global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_StartHandler, null, 
options, request);
+      }
+      /// <summary>
+      /// Request for resources
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
StartHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return StartHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Request for resources
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
StartHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.StartTimeInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_StartHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
StopHandler(global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return StopHandler(request, new grpc::CallOptions(headers, deadline, 
cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
StopHandler(global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_StopHandler, null, 
options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
StopHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return StopHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
StopHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.StopTimeInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_StopHandler, null, options, 
request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
AlarmTrigger(global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return AlarmTrigger(request, new grpc::CallOptions(headers, deadline, 
cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
AlarmTrigger(global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_AlarmTrigger, null, 
options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
AlarmTriggerAsync(global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return AlarmTriggerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
AlarmTriggerAsync(global::Org.Apache.REEF.Bridge.Proto.AlarmTriggerInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_AlarmTrigger, null, 
options, request);
+      }
+      /// <summary>
+      /// Evaluator handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
AllocatedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return AllocatedEvaluatorHandler(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Evaluator handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
AllocatedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::CallOptions options)
+      {
+        return 
CallInvoker.BlockingUnaryCall(__Method_AllocatedEvaluatorHandler, null, 
options, request);
+      }
+      /// <summary>
+      /// Evaluator handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
AllocatedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return AllocatedEvaluatorHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Evaluator handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
AllocatedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo
 request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_AllocatedEvaluatorHandler, 
null, options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
CompletedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return CompletedEvaluatorHandler(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
CompletedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::CallOptions options)
+      {
+        return 
CallInvoker.BlockingUnaryCall(__Method_CompletedEvaluatorHandler, null, 
options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return CompletedEvaluatorHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo
 request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_CompletedEvaluatorHandler, 
null, options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedEvaluatorHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedEvaluatorHandler(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_FailedEvaluatorHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedEvaluatorHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedEvaluatorHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.EvaluatorInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_FailedEvaluatorHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Context handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ActiveContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ActiveContextHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Context handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ActiveContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_ActiveContextHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Context handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ActiveContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ActiveContextHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Context handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ActiveContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_ActiveContextHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClosedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClosedContextHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClosedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_ClosedContextHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClosedContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClosedContextHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClosedContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_ClosedContextHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedContextHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedContextHandler(global::Org.Apache.REEF.Bridge.Proto.ContextInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_FailedContextHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedContextHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedContextHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_FailedContextHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ContextMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ContextMessageHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ContextMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_ContextMessageHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ContextMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ContextMessageHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ContextMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ContextMessageInfo
 request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_ContextMessageHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Task handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
RunningTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return RunningTaskHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Task handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
RunningTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_RunningTaskHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Task handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
RunningTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return RunningTaskHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Task handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
RunningTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_RunningTaskHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedTaskHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
FailedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_FailedTaskHandler, null, 
options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return FailedTaskHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
FailedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_FailedTaskHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
CompletedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return CompletedTaskHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
CompletedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_CompletedTaskHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return CompletedTaskHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
CompletedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_CompletedTaskHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
SuspendedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return SuspendedTaskHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
SuspendedTaskHandler(global::Org.Apache.REEF.Bridge.Proto.TaskInfo request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_SuspendedTaskHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
SuspendedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return SuspendedTaskHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
SuspendedTaskHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_SuspendedTaskHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
TaskMessageHandler(global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return TaskMessageHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
TaskMessageHandler(global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_TaskMessageHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
TaskMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return TaskMessageHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
TaskMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.TaskMessageInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_TaskMessageHandler, null, 
options, request);
+      }
+      /// <summary>
+      /// Client Handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo 
request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientMessageHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Client Handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo 
request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_ClientMessageHandler, 
null, options, request);
+      }
+      /// <summary>
+      /// Client Handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. 
This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call 
will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the 
call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientMessageHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Client Handlers
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_ClientMessageHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientCloseHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientCloseHandler(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientCloseHandler(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_ClientCloseHandler, 
null, options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::Metadata headers = null, global::System.DateTime? deadline = null, 
global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientCloseHandlerAsync(request, new grpc::CallOptions(headers, 
deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.Void request, 
grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_ClientCloseHandler, null, 
options, request);
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientCloseWithMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientCloseWithMessageHandler(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::Org.Apache.REEF.Bridge.Proto.Void 
ClientCloseWithMessageHandler(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::CallOptions options)
+      {
+        return 
CallInvoker.BlockingUnaryCall(__Method_ClientCloseWithMessageHandler, null, 
options, request);
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseWithMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::Metadata headers = null, global::System.DateTime? deadline = 
null, global::System.Threading.CancellationToken cancellationToken = 
default(global::System.Threading.CancellationToken))
+      {
+        return ClientCloseWithMessageHandlerAsync(request, new 
grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual 
grpc::AsyncUnaryCall<global::Org.Apache.REEF.Bridge.Proto.Void> 
ClientCloseWithMessageHandlerAsync(global::Org.Apache.REEF.Bridge.Proto.ClientMessageInfo
 request, grpc::CallOptions options)
+      {
+        return 
CallInvoker.AsyncUnaryCall(__Method_ClientCloseWithMessageHandler, null, 
options, request);
+      }
+      /// <summary>Creates a new instance of client from given 
<c>ClientBaseConfiguration</c>.</summary>
+      protected override DriverClientClient 
NewInstance(ClientBaseConfiguration configuration)
+      {
+        return new DriverClientClient(configuration);
+      }
+    }
+
+    /// <summary>Creates service definition that can be registered with a 
server</summary>
+    /// <param name="serviceImpl">An object implementing the server-side 
handling logic.</param>
+    public static grpc::ServerServiceDefinition BindService(DriverClientBase 
serviceImpl)
+    {
+      return grpc::ServerServiceDefinition.CreateBuilder()
+          .AddMethod(__Method_IdlenessCheckHandler, 
serviceImpl.IdlenessCheckHandler)
+          .AddMethod(__Method_StartHandler, serviceImpl.StartHandler)
+          .AddMethod(__Method_StopHandler, serviceImpl.StopHandler)
+          .AddMethod(__Method_AlarmTrigger, serviceImpl.AlarmTrigger)
+          .AddMethod(__Method_AllocatedEvaluatorHandler, 
serviceImpl.AllocatedEvaluatorHandler)
+          .AddMethod(__Method_CompletedEvaluatorHandler, 
serviceImpl.CompletedEvaluatorHandler)
+          .AddMethod(__Method_FailedEvaluatorHandler, 
serviceImpl.FailedEvaluatorHandler)
+          .AddMethod(__Method_ActiveContextHandler, 
serviceImpl.ActiveContextHandler)
+          .AddMethod(__Method_ClosedContextHandler, 
serviceImpl.ClosedContextHandler)
+          .AddMethod(__Method_FailedContextHandler, 
serviceImpl.FailedContextHandler)
+          .AddMethod(__Method_ContextMessageHandler, 
serviceImpl.ContextMessageHandler)
+          .AddMethod(__Method_RunningTaskHandler, 
serviceImpl.RunningTaskHandler)
+          .AddMethod(__Method_FailedTaskHandler, serviceImpl.FailedTaskHandler)
+          .AddMethod(__Method_CompletedTaskHandler, 
serviceImpl.CompletedTaskHandler)
+          .AddMethod(__Method_SuspendedTaskHandler, 
serviceImpl.SuspendedTaskHandler)
+          .AddMethod(__Method_TaskMessageHandler, 
serviceImpl.TaskMessageHandler)
+          .AddMethod(__Method_ClientMessageHandler, 
serviceImpl.ClientMessageHandler)
+          .AddMethod(__Method_ClientCloseHandler, 
serviceImpl.ClientCloseHandler)
+          .AddMethod(__Method_ClientCloseWithMessageHandler, 
serviceImpl.ClientCloseWithMessageHandler).Build();
+    }
+
+  }
+}
+#endregion

http://git-wip-us.apache.org/repos/asf/reef/blob/133c064f/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverCommonProtocol.cs
----------------------------------------------------------------------
diff --git 
a/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverCommonProtocol.cs
 
b/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverCommonProtocol.cs
new file mode 100644
index 0000000..c4c890c
--- /dev/null
+++ 
b/lang/cs/Org.Apache.REEF.Bridge.Client/GrpcGeneratedCode/DriverCommonProtocol.cs
@@ -0,0 +1,358 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: DriverCommonProtocol.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Org.Apache.REEF.Bridge.Proto {
+
+  /// <summary>Holder for reflection information generated from 
DriverCommonProtocol.proto</summary>
+  public static partial class DriverCommonProtocolReflection {
+
+    #region Descriptor
+    /// <summary>File descriptor for DriverCommonProtocol.proto</summary>
+    public static pbr::FileDescriptor Descriptor {
+      get { return descriptor; }
+    }
+    private static pbr::FileDescriptor descriptor;
+
+    static DriverCommonProtocolReflection() {
+      byte[] descriptorData = global::System.Convert.FromBase64String(
+          string.Concat(
+            "ChpEcml2ZXJDb21tb25Qcm90b2NvbC5wcm90bxIMZHJpdmVyYnJpZGdlIgYK",
+            "BFZvaWQiUQoNRXhjZXB0aW9uSW5mbxIMCgRuYW1lGAEgASgJEg8KB21lc3Nh",
+            "Z2UYAiABKAkSEwoLc3RhY2tfdHJhY2UYAyADKAkSDAoEZGF0YRgEIAEoDEI/",
+            "ChxvcmcuYXBhY2hlLnJlZWYuYnJpZGdlLnByb3RvUAGqAhxPcmcuQXBhY2hl",
+            "LlJFRUYuQnJpZGdlLlByb3RvYgZwcm90bzM="));
+      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+          new pbr::FileDescriptor[] { },
+          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+            new 
pbr::GeneratedClrTypeInfo(typeof(global::Org.Apache.REEF.Bridge.Proto.Void), 
global::Org.Apache.REEF.Bridge.Proto.Void.Parser, null, null, null, null),
+            new 
pbr::GeneratedClrTypeInfo(typeof(global::Org.Apache.REEF.Bridge.Proto.ExceptionInfo),
 global::Org.Apache.REEF.Bridge.Proto.ExceptionInfo.Parser, new[]{ "Name", 
"Message", "StackTrace", "Data" }, null, null, null)
+          }));
+    }
+    #endregion
+
+  }
+  #region Messages
+  /// <summary>
+  /// Void message type
+  /// </summary>
+  public sealed partial class Void : pb::IMessage<Void> {
+    private static readonly pb::MessageParser<Void> _parser = new 
pb::MessageParser<Void>(() => new Void());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<Void> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return 
global::Org.Apache.REEF.Bridge.Proto.DriverCommonProtocolReflection.Descriptor.MessageTypes[0];
 }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Void() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Void(Void other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Void Clone() {
+      return new Void(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as Void);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(Void other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(Void other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class ExceptionInfo : pb::IMessage<ExceptionInfo> {
+    private static readonly pb::MessageParser<ExceptionInfo> _parser = new 
pb::MessageParser<ExceptionInfo>(() => new ExceptionInfo());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<ExceptionInfo> Parser { get { return 
_parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return 
global::Org.Apache.REEF.Bridge.Proto.DriverCommonProtocolReflection.Descriptor.MessageTypes[1];
 }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ExceptionInfo() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ExceptionInfo(ExceptionInfo other) : this() {
+      name_ = other.name_;
+      message_ = other.message_;
+      stackTrace_ = other.stackTrace_.Clone();
+      data_ = other.data_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ExceptionInfo Clone() {
+      return new ExceptionInfo(this);
+    }
+
+    /// <summary>Field number for the "name" field.</summary>
+    public const int NameFieldNumber = 1;
+    private string name_ = "";
+    /// <summary>
+    /// Exception name/type
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Name {
+      get { return name_; }
+      set {
+        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "message" field.</summary>
+    public const int MessageFieldNumber = 2;
+    private string message_ = "";
+    /// <summary>
+    /// Exception message
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Message {
+      get { return message_; }
+      set {
+        message_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "stack_trace" field.</summary>
+    public const int StackTraceFieldNumber = 3;
+    private static readonly pb::FieldCodec<string> _repeated_stackTrace_codec
+        = pb::FieldCodec.ForString(26);
+    private readonly pbc::RepeatedField<string> stackTrace_ = new 
pbc::RepeatedField<string>();
+    /// <summary>
+    /// Stack trace
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<string> StackTrace {
+      get { return stackTrace_; }
+    }
+
+    /// <summary>Field number for the "data" field.</summary>
+    public const int DataFieldNumber = 4;
+    private pb::ByteString data_ = pb::ByteString.Empty;
+    /// <summary>
+    /// Data associated with exception
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pb::ByteString Data {
+      get { return data_; }
+      set {
+        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as ExceptionInfo);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(ExceptionInfo other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Name != other.Name) return false;
+      if (Message != other.Message) return false;
+      if(!stackTrace_.Equals(other.stackTrace_)) return false;
+      if (Data != other.Data) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Name.Length != 0) hash ^= Name.GetHashCode();
+      if (Message.Length != 0) hash ^= Message.GetHashCode();
+      hash ^= stackTrace_.GetHashCode();
+      if (Data.Length != 0) hash ^= Data.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Name.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Name);
+      }
+      if (Message.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Message);
+      }
+      stackTrace_.WriteTo(output, _repeated_stackTrace_codec);
+      if (Data.Length != 0) {
+        output.WriteRawTag(34);
+        output.WriteBytes(Data);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Name.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+      }
+      if (Message.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Message);
+      }
+      size += stackTrace_.CalculateSize(_repeated_stackTrace_codec);
+      if (Data.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(ExceptionInfo other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Name.Length != 0) {
+        Name = other.Name;
+      }
+      if (other.Message.Length != 0) {
+        Message = other.Message;
+      }
+      stackTrace_.Add(other.stackTrace_);
+      if (other.Data.Length != 0) {
+        Data = other.Data;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Name = input.ReadString();
+            break;
+          }
+          case 18: {
+            Message = input.ReadString();
+            break;
+          }
+          case 26: {
+            stackTrace_.AddEntriesFrom(input, _repeated_stackTrace_codec);
+            break;
+          }
+          case 34: {
+            Data = input.ReadBytes();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  #endregion
+
+}
+
+#endregion Designer generated code

http://git-wip-us.apache.org/repos/asf/reef/blob/133c064f/lang/cs/Org.Apache.REEF.Bridge.Client/Org.Apache.REEF.Bridge.Client.DotNet.csproj
----------------------------------------------------------------------
diff --git 
a/lang/cs/Org.Apache.REEF.Bridge.Client/Org.Apache.REEF.Bridge.Client.DotNet.csproj
 
b/lang/cs/Org.Apache.REEF.Bridge.Client/Org.Apache.REEF.Bridge.Client.DotNet.csproj
new file mode 100644
index 0000000..dcdab87
--- /dev/null
+++ 
b/lang/cs/Org.Apache.REEF.Bridge.Client/Org.Apache.REEF.Bridge.Client.DotNet.csproj
@@ -0,0 +1,63 @@
+<Project>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+  <PropertyGroup>
+    <AssemblyName>Org.Apache.REEF.Bridge.Client</AssemblyName>
+    <Description>Bridge CSharp Client for REEF.NET</Description>
+    <PackageTags>REEF Bridge CSharp Client</PackageTags>
+  </PropertyGroup>
+  <Import Project="..\build.DotNetApp.props" />
+  <ItemGroup>
+    <PackageReference Include="Grpc" Version="1.11.0-pre2" />
+    <PackageReference Include="Grpc.Tools" Version="1.11.0-pre2" />
+    <PackageReference Include="Google.Protobuf" Version="3.5.0.0" />
+  </ItemGroup>
+  <PropertyGroup>
+    <GrpcSchemaDirectory>..\..\common\proto\bridge</GrpcSchemaDirectory>
+    
<GrpcToolsDirectory>$(PackagesDir)\grpc.tools\1.11.0-pre2\tools\windows_x64</GrpcToolsDirectory>
+    
<GrpcToolsDirectory>$(PackagesDir)\grpc.tools\1.11.0-pre2\tools\windows_x64</GrpcToolsDirectory>
+    
<GrpcLibraryDirectory>$(PackagesDir)\grpc.core\1.11.0-pre2\lib\net45</GrpcLibraryDirectory>
+  </PropertyGroup>
+  <!-- TODO[JIRA REEF-1888] This item group will not be needed when only 
.netcore is targeted. -->
+  <ItemGroup Condition="'$(TargetFramework)' == 'net452' Or 
'$(TargetFramework)' == 'net46'">
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Configuration" />
+  </ItemGroup>
+  <ItemGroup>
+    <Reference Include="Grpc.Core">
+      <HintPath>$(GRrpcLibraryDirectory)\Grpc.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Google.Protobuf">
+      
<HintPath>$(PackagesDir)\Google.Protobuf.3.5.0\lib\net45\Google.Protobuf.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <ProjectReference 
Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
+    <ProjectReference 
Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" 
/>
+    <ProjectReference 
Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
+    <ProjectReference 
Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
+    <ProjectReference 
Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
+  </ItemGroup>
+  <Import Project="..\build.DotNet.targets" />
+  <Import Project="$(SolutionDir)\GrpcCodeGeneration.Targets" 
Condition="Exists('$(SolutionDir)\GrpcCodeGeneration.Targets')" />
+  <Target Name="CodeGeneration" DependsOnTargets="Restore" 
BeforeTargets="BeforeBuild">
+    <Message Text="Generating C# classes from gRPC proto files @(Compile)..." 
Importance="High" />
+    <GrpcToCSharp OUtputDirectory="$(ProjectDir)\GrpcGeneratedCode" 
SourceFileList="ClientProtocol.proto;DriverCommonProtocol.proto;DriverClientProtocol.proto"
 GrpcSchemaDirectory="$(GrpcSchemaDirectory)" 
GrpcBinaryDirectory="$(GrpcToolsDirectory)" />
+  </Target>
+</Project>

http://git-wip-us.apache.org/repos/asf/reef/blob/133c064f/lang/cs/Org.Apache.REEF.Bridge.Client/Program.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Bridge.Client/Program.cs 
b/lang/cs/Org.Apache.REEF.Bridge.Client/Program.cs
new file mode 100644
index 0000000..18af573
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Bridge.Client/Program.cs
@@ -0,0 +1,29 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+
+namespace Org.Apache.REEF.Bridge.Client
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Console.WriteLine("Hello World!");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/133c064f/lang/cs/Org.Apache.REEF.DotNet.sln
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.DotNet.sln 
b/lang/cs/Org.Apache.REEF.DotNet.sln
index 3d612f1..eb352db 100644
--- a/lang/cs/Org.Apache.REEF.DotNet.sln
+++ b/lang/cs/Org.Apache.REEF.DotNet.sln
@@ -74,7 +74,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = 
"Org.Apache.REEF.Tests.DotNe
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = 
"Org.Apache.REEF.FatNuGet.DotNet", 
"Org.Apache.REEF.FatNuGet\Org.Apache.REEF.FatNuGet.DotNet.csproj", 
"{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}}") = 
"Org.Apache.REEF.Bridge.CLR.DotNet", 
"Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.DotNet.csproj", 
"{81575917-C673-4E6F-9CF1-0DD35FC5E717}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = 
"Org.Apache.REEF.Bridge.CLR.DotNet", 
"Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.DotNet.csproj", 
"{81575917-C673-4E6F-9CF1-0DD35FC5E717}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = 
"Org.Apache.REEF.Bridge.Client.DotNet", 
"Org.Apache.REEF.Bridge.Client\Org.Apache.REEF.Bridge.Client.DotNet.csproj", 
"{77BE3864-C183-4E56-8E9E-FEBFC429FA85}"
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -214,6 +216,10 @@ Global
                {81575917-C673-4E6F-9CF1-0DD35FC5E717}.Debug|x64.Build.0 = 
Debug|x64
                {81575917-C673-4E6F-9CF1-0DD35FC5E717}.Release|x64.ActiveCfg = 
Release|x64
                {81575917-C673-4E6F-9CF1-0DD35FC5E717}.Release|x64.Build.0 = 
Release|x64
+               {77BE3864-C183-4E56-8E9E-FEBFC429FA85}.Debug|x64.ActiveCfg = 
Debug|x64
+               {77BE3864-C183-4E56-8E9E-FEBFC429FA85}.Debug|x64.Build.0 = 
Debug|x64
+               {77BE3864-C183-4E56-8E9E-FEBFC429FA85}.Release|x64.ActiveCfg = 
Release|x64
+               {77BE3864-C183-4E56-8E9E-FEBFC429FA85}.Release|x64.Build.0 = 
Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE

Reply via email to