http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/Properties/AssemblyInfo.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/Properties/AssemblyInfo.cs deleted file mode 100644 index 946ee33..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -/** - * 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.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Org.Apache.REEF.Examples.RetainedEvalCLRBridge")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Org.Apache.REEF.Examples.RetainedEvalCLRBridge")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("636170aa-ea18-45bf-b345-83dae7fb6a03")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")]
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalActiveContextHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalActiveContextHandler.cs b/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalActiveContextHandler.cs deleted file mode 100644 index 8bcd5c6..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalActiveContextHandler.cs +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 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 Org.Apache.REEF.Driver.Context; -using Org.Apache.REEF.Tang.Implementations.Tang; -using Org.Apache.REEF.Tang.Interface; -using Org.Apache.REEF.Tang.Util; -using Org.Apache.REEF.Tasks; -using System; -using Org.Apache.REEF.Examples.Tasks.ShellTask; - -namespace Org.Apache.REEF.Examples.RetainedCLREvalBridge.Handler -{ - public class RetainedEvalActiveContextHandler : IObserver<IActiveContext> - { - public void OnNext(IActiveContext activeContext) - { - ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder(); - cb.AddConfiguration(TaskConfiguration.ConfigurationModule - .Set(TaskConfiguration.Identifier, "bridgeCLRShellTask_" + DateTime.Now.Ticks) - .Set(TaskConfiguration.Task, GenericType<ShellTask>.Class) - .Build()); - cb.BindNamedParameter<ShellTask.Command, string>(GenericType<ShellTask.Command>.Class, "echo"); - - IConfiguration taskConfiguration = cb.Build(); - - activeContext.SubmitTask(taskConfiguration); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnCompleted() - { - throw new NotImplementedException(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalAllocatedEvaluatorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalAllocatedEvaluatorHandler.cs b/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalAllocatedEvaluatorHandler.cs deleted file mode 100644 index d4379c3..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalAllocatedEvaluatorHandler.cs +++ /dev/null @@ -1,48 +0,0 @@ -/** - * 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 Org.Apache.REEF.Driver.Context; -using Org.Apache.REEF.Driver.Evaluator; -using Org.Apache.REEF.Tang.Interface; -using System; - -namespace Org.Apache.REEF.Examples.RetainedCLREvalBridge.Handler -{ - public class RetainedEvalAllocatedEvaluatorHandler : IObserver<IAllocatedEvaluator> - { - public void OnCompleted() - { - throw new NotImplementedException(); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnNext(IAllocatedEvaluator allocatedEvaluator) - { - IConfiguration contextConfiguration = ContextConfiguration.ConfigurationModule - .Set(ContextConfiguration.Identifier, "RetainedEvalCLRBridgeContextId") - .Build(); - - allocatedEvaluator.SubmitContext(contextConfiguration); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalEvaluatorRequestorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalEvaluatorRequestorHandler.cs b/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalEvaluatorRequestorHandler.cs deleted file mode 100644 index b4d5084..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalEvaluatorRequestorHandler.cs +++ /dev/null @@ -1,48 +0,0 @@ -/** - * 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 Org.Apache.REEF.Driver.Bridge; -using Org.Apache.REEF.Driver.Evaluator; -using System; - -namespace Org.Apache.REEF.Examples.RetainedCLREvalBridge.Handler -{ - public class RetainedEvalEvaluatorRequestorHandler : IObserver<IEvaluatorRequestor> - { - public void OnNext(IEvaluatorRequestor requestor) - { - int evaluatorsNumber = 1; - int memory = 512; - string rack = "WonderlandRack"; - EvaluatorRequest request = new EvaluatorRequest(evaluatorsNumber, memory, rack); - - requestor.Submit(request); - } - - public void OnCompleted() - { - throw new NotImplementedException(); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalStartHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalStartHandler.cs b/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalStartHandler.cs deleted file mode 100644 index 97a3645..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.RetainedEvalCLRBridge/handler/RetainedEvalStartHandler.cs +++ /dev/null @@ -1,90 +0,0 @@ -/** - * 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 Org.Apache.REEF.Driver; -using Org.Apache.REEF.Driver.Bridge; -using Org.Apache.REEF.Driver.Context; -using Org.Apache.REEF.Driver.Evaluator; -using Org.Apache.REEF.Tasks; -using Org.Apache.REEF.Tang.Annotations; -using System; -using System.Collections.Generic; -using System.Linq; -using Org.Apache.REEF.Examples.RetainedCLREvalBridge.Handler; -using Org.Apache.REEF.Examples.Tasks.ShellTask; - -namespace Org.Apache.REEF.Examples.RetainedCLREvalBridge.Handler -{ - public class RetainedEvalStartHandler : IStartHandler - { - private static ClrSystemHandler<IEvaluatorRequestor> _evaluatorRequestorHandler; - private static ClrSystemHandler<IAllocatedEvaluator> _allocatedEvaluatorHandler; - private static ClrSystemHandler<IActiveContext> _activeContextHandler; - - [Inject] - public RetainedEvalStartHandler() - { - CreateClassHierarchy(); - Identifier = "RetainedEvalStartHandler"; - } - - public RetainedEvalStartHandler(string id) - { - Identifier = id; - CreateClassHierarchy(); - } - - public string Identifier { get; set; } - - public IList<ulong> GetHandlers() - { - ulong[] handlers = Enumerable.Repeat(Constants.NullHandler, Constants.HandlersNumber).ToArray(); - - // initiate Evaluator Requestor handler - _evaluatorRequestorHandler = new ClrSystemHandler<IEvaluatorRequestor>(); - handlers[Constants.Handlers[Constants.EvaluatorRequestorHandler]] = ClrHandlerHelper.CreateHandler(_evaluatorRequestorHandler); - Console.WriteLine("_evaluatorRequestorHandler initiated"); - _evaluatorRequestorHandler.Subscribe(new RetainedEvalEvaluatorRequestorHandler()); - - // initiate Allocated Evaluator handler - _allocatedEvaluatorHandler = new ClrSystemHandler<IAllocatedEvaluator>(); - handlers[Constants.Handlers[Constants.AllocatedEvaluatorHandler]] = ClrHandlerHelper.CreateHandler(_allocatedEvaluatorHandler); - Console.WriteLine("_allocatedEvaluatorHandler initiated"); - _allocatedEvaluatorHandler.Subscribe(new RetainedEvalAllocatedEvaluatorHandler()); - - // initiate Active Context handler - _activeContextHandler = new ClrSystemHandler<IActiveContext>(); - handlers[Constants.Handlers[Constants.ActiveContextHandler]] = ClrHandlerHelper.CreateHandler(_activeContextHandler); - Console.WriteLine("_activeContextHandler initiated"); - _activeContextHandler.Subscribe(new RetainedEvalActiveContextHandler()); - - return handlers; - } - - private void CreateClassHierarchy() - { - HashSet<string> clrDlls = new HashSet<string>(); - clrDlls.Add(typeof(IDriver).Assembly.GetName().Name); - clrDlls.Add(typeof(ITask).Assembly.GetName().Name); - clrDlls.Add(typeof(ShellTask).Assembly.GetName().Name); - - ClrHandlerHelper.GenerateClassHierarchy(clrDlls); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/FailedTask/FailedTask.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/FailedTask/FailedTask.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/FailedTask/FailedTask.cs deleted file mode 100644 index aa489ce..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/FailedTask/FailedTask.cs +++ /dev/null @@ -1,45 +0,0 @@ -/** - * 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; -using System.Threading; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; - -namespace Org.Apache.REEF.Examples.Tasks.FailedTask -{ - public class FailedTask : ITask - { - [Inject] - public FailedTask() - { - } - - public byte[] Call(byte[] memento) - { - Console.WriteLine("I am about to fail."); - Thread.Sleep(2 * 1000); - throw new ApplicationException("bite me."); - } - - public void Dispose() - { - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloService.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloService.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloService.cs deleted file mode 100644 index e7734c1..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloService.cs +++ /dev/null @@ -1,58 +0,0 @@ -/** - * 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; -using System.Collections.Generic; -using Org.Apache.REEF.Services; -using Org.Apache.REEF.Tang.Annotations; - -namespace Org.Apache.REEF.Examples.Tasks.HelloTask -{ - public class HelloService : IService - { - private IList<string> _guests; - - [Inject] - public HelloService() - { - if (_guests == null) - { - _guests = new List<string>(); - _guests.Add("MR.SMITH"); - } - } - - public IList<string> Guests - { - get - { - return _guests; - } - } - - public void AddGuest(string guestName) - { - if (string.IsNullOrWhiteSpace(guestName)) - { - throw new ArgumentException("can't do with empty name."); - } - Guests.Add(guestName); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTask.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTask.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTask.cs deleted file mode 100644 index f832d50..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTask.cs +++ /dev/null @@ -1,124 +0,0 @@ -/** - * 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; -using System.Linq; -using System.Net; -using System.Threading; -using Org.Apache.REEF.Common.io; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; -using Org.Apache.REEF.Tasks.Events; -using Org.Apache.REEF.Utilities; -using Org.Apache.REEF.Utilities.Logging; - -namespace Org.Apache.REEF.Examples.Tasks.HelloTask -{ - public class HelloTask : ITask - { - private static readonly Logger LOGGER = Logger.GetLogger(typeof(HelloTask)); - - private INameClient _nameClient = null; - - [Inject] - public HelloTask() - { - Console.WriteLine("HelloTask constructor 0"); - } - - [Inject] - public HelloTask(HelloService service, INameClient nameClient) - { - Console.WriteLine("HelloTask constructor 2"); - Service = service; - _nameClient = nameClient; - } - - [Inject] - public HelloTask(HelloService service) - { - Console.WriteLine("HelloTask constructor 1"); - Service = service; - } - - public HelloService Service { get; set; } - - public byte[] Call(byte[] memento) - { - Console.WriteLine("Hello, CLR REEF!"); - if (_nameClient != null) - { - _nameClient.Register("abc", new IPEndPoint(IPAddress.Any, 8080)); - Console.WriteLine("IP Address: {0}", _nameClient.Lookup("abc")); - } - PrintGuestList(); - Thread.Sleep(5 * 1000); - Console.WriteLine("Bye, CLR REEF!"); - - return null; - } - - public void Dispose() - { - LOGGER.Log(Level.Info, "Hello task disposed."); - } - - private void HandleDriverMessage(string message) - { - using (LOGGER.LogFunction("HelloTask::HandleDriverMessage")) - { - LOGGER.Log(Level.Info, "I handle message by logging : " + message); - } - } - - private void PrintGuestList() - { - if (Service == null || !Service.Guests.Any()) - { - Console.WriteLine("No service provided."); - } - else - { - Console.WriteLine("Serving guest: " + string.Join(";", Service.Guests)); - } - } - - public class HelloDriverMessageHandler : IDriverMessageHandler - { - private HelloTask _parentTask; - - [Inject] - public HelloDriverMessageHandler(HelloTask task) - { - _parentTask = task; - } - - public void Handle(IDriverMessage value) - { - string message = string.Empty; - LOGGER.Log(Level.Verbose, "Receieved a message from driver, handling it with HelloDriverMessageHandler"); - if (value.Message.IsPresent()) - { - message = ByteUtilities.ByteArrarysToString(value.Message.Value); - } - _parentTask.HandleDriverMessage(message); - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTaskMessage.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTaskMessage.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTaskMessage.cs deleted file mode 100644 index 4814e0e..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/HelloTask/HelloTaskMessage.cs +++ /dev/null @@ -1,50 +0,0 @@ -/** - * 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; -using System.Globalization; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; -using Org.Apache.REEF.Utilities; - -namespace Org.Apache.REEF.Examples.Tasks.HelloTask -{ - public class HelloTaskMessage : ITaskMessageSource - { - [Inject] - public HelloTaskMessage() - { - } - - public Optional<TaskMessage> Message - { - get - { - TaskMessage defaultTaskMessage = TaskMessage.From( - "helloSourceId", - ByteUtilities.StringToByteArrays("hello message generated at " + DateTime.Now.ToString(CultureInfo.InvariantCulture))); - return Optional<TaskMessage>.Of(defaultTaskMessage); - } - - set - { - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/Org.Apache.REEF.Examples.Tasks.csproj ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/Org.Apache.REEF.Examples.Tasks.csproj b/lang/cs/Org.Apache.REEF.Examples.Tasks/Org.Apache.REEF.Examples.Tasks.csproj deleted file mode 100644 index 333e2b7..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/Org.Apache.REEF.Examples.Tasks.csproj +++ /dev/null @@ -1,117 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -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. ---> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{75503F90-7B82-4762-9997-94B5C68F15DB}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Org.Apache.REEF.Examples.Tasks</RootNamespace> - <AssemblyName>Org.Apache.REEF.Examples.Tasks</AssemblyName> - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <RestorePackages>true</RestorePackages> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - </PropertyGroup> - <Import Project="$(SolutionDir)\build.props" /> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>$(BinDir)\$(Platform)\$(Configuration)\$(RootNamespace)</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>$(BinDir)\$(Platform)\$(Configuration)\$(RootNamespace)</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>$(BinDir)\$(Platform)\$(Configuration)\$(RootNamespace)</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>$(BinDir)\$(Platform)\$(Configuration)\$(RootNamespace)</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data.DataSetExtensions" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="FailedTask\FailedTask.cs" /> - <Compile Include="HelloTask\HelloService.cs" /> - <Compile Include="HelloTask\HelloTask.cs" /> - <Compile Include="HelloTask\HelloTaskMessage.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="ShellTask\ShellTask.cs" /> - <Compile Include="StreamingTasks\StreamTask1.cs" /> - <Compile Include="StreamingTasks\StreamTask2.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj"> - <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project> - <Name>Org.Apache.REEF.Tang</Name> - </ProjectReference> - <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj"> - <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project> - <Name>Org.Apache.REEF.Utilities</Name> - </ProjectReference> - <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj"> - <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project> - <Name>Org.Apache.REEF.Common</Name> - </ProjectReference> - <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj"> - <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project> - <Name>Org.Apache.REEF.Driver</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/Properties/AssemblyInfo.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/Properties/AssemblyInfo.cs deleted file mode 100644 index 4a41805..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -/** - * 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.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Tasks")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Tasks")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b9e219f1-a02c-468c-ab26-3ef5c91310f7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/ShellTask/ShellTask.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/ShellTask/ShellTask.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/ShellTask/ShellTask.cs deleted file mode 100644 index 7bc90d5..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/ShellTask/ShellTask.cs +++ /dev/null @@ -1,91 +0,0 @@ -/** - * 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; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Text; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; -using Org.Apache.REEF.Utilities.Diagnostics; -using Org.Apache.REEF.Utilities.Logging; - -[module: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleClass", Justification = "allow name parameter class to be embedded")] - -namespace Org.Apache.REEF.Examples.Tasks.ShellTask -{ - public class ShellTask : ITask - { - [Inject] - public ShellTask([Parameter(Value = typeof(Command))] string command) - { - Cmd = command; - } - - public string Cmd { get; set; } - - public byte[] Call(byte[] memento) - { - return Encoding.UTF8.GetBytes(CommandLineExecute(Cmd)); - } - - public void Dispose() - { - } - - private string CommandLineExecute(string command) - { - string output = string.Empty; - try - { - ProcessStartInfo startInfo = new ProcessStartInfo() - { - FileName = "cmd.exe", - Arguments = @"/c " + command, - RedirectStandardOutput = true, - UseShellExecute = false, - CreateNoWindow = true - }; - - using (Process process = Process.Start(startInfo)) - { - StringBuilder standardOutput = new StringBuilder(); - - process.WaitForExit(1000); - - standardOutput.Append(process.StandardOutput.ReadToEnd()); - output = standardOutput.ToString(); - } - } - catch (Exception e) - { - output = string.Format(CultureInfo.InvariantCulture, "Failed to execute command [{0}] and capture the output, exception {1} with message {2} ", command, e, e.Message); - Exceptions.Caught(e, Level.Error, output, Logger.GetLogger(typeof(ShellTask))); - } - - return output; - } - - [NamedParameter("Shell Command", "cmd", "")] - public class Command : Name<string> - { - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask1.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask1.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask1.cs deleted file mode 100644 index f35bf91..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask1.cs +++ /dev/null @@ -1,67 +0,0 @@ -/** - * 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.Threading; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; - -namespace Org.Apache.REEF.Examples.Tasks.StreamingTasks -{ - public class StreamTask1 : ITask - { - private string _ipAddress; - - [Inject] - public StreamTask1([Parameter(typeof(IpAddress))] string ipAddress) - { - this._ipAddress = ipAddress; - } - - [Inject] - public StreamTask1() - { - } - - public byte[] Call(byte[] memento) - { - System.Console.WriteLine("Hello, Streaming 1!!, Ip: " + _ipAddress); - - Thread.Sleep(10000); - - SIFirstNode(); - - return null; - } - - public void Dispose() - { - } - - public void SIFirstNode() - { - //var a = new SIFirstNodeXAM(); - //a.Process(1111, 2222, ipAddress); - } - - [NamedParameter("Ip Address", "IP", "10.121.32.158")] - public class IpAddress : Name<string> - { - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask2.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask2.cs b/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask2.cs deleted file mode 100644 index 16ccfcc..0000000 --- a/lang/cs/Org.Apache.REEF.Examples.Tasks/StreamingTasks/StreamTask2.cs +++ /dev/null @@ -1,51 +0,0 @@ -/** - * 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 Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tasks; - -namespace Org.Apache.REEF.Examples.Tasks.StreamingTasks -{ - public class StreamTask2 : ITask - { - [Inject] - public StreamTask2() - { - } - - public byte[] Call(byte[] memento) - { - System.Console.WriteLine("Hello, Streaming 2!!"); - - SISecondNode(); - - return null; - } - - public void Dispose() - { - } - - public void SISecondNode() - { - //var a = new SISecondNodeXAM(); - //a.Process(2222, 1111); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/AnotherHelloAllocatedEvaluatorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/AnotherHelloAllocatedEvaluatorHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/AnotherHelloAllocatedEvaluatorHandler.cs new file mode 100644 index 0000000..3a1e847 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/AnotherHelloAllocatedEvaluatorHandler.cs @@ -0,0 +1,48 @@ +/** + * 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 Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Tang.Annotations; +using System; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class AnotherHelloAllocatedEvaluatorHandler : IObserver<IAllocatedEvaluator> + { + [Inject] + public AnotherHelloAllocatedEvaluatorHandler() + { + } + + public void OnNext(IAllocatedEvaluator allocatedEvaluator) + { + Console.WriteLine("I am just here for the ride."); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloActiveContextHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloActiveContextHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloActiveContextHandler.cs new file mode 100644 index 0000000..d18ae44 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloActiveContextHandler.cs @@ -0,0 +1,83 @@ +/** + * 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 Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Tasks; +using Org.Apache.REEF.Tang.Annotations; +using Org.Apache.REEF.Tang.Formats; +using Org.Apache.REEF.Tang.Interface; +using Org.Apache.REEF.Tang.Util; +using System; +using System.Globalization; +using Org.Apache.REEF.Examples.Tasks.HelloTask; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloActiveContextHandler : IObserver<IActiveContext> + { + [Inject] + public HelloActiveContextHandler() + { + } + + public void OnNext(IActiveContext activeContext) + { + Console.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + "Active context {0} received from evaluator {1}", + activeContext.Id, + activeContext.EvaluatorId)); + + IEvaluatorDescriptor evaluatorDescriptor = activeContext.EvaluatorDescriptor; + string ipAddress = evaluatorDescriptor.NodeDescriptor.InetSocketAddress.Address.ToString(); + int port = evaluatorDescriptor.NodeDescriptor.InetSocketAddress.Port; + string hostName = evaluatorDescriptor.NodeDescriptor.HostName; + + Console.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + "The running evaluator is assigned with {0} MB of memory and is running at ip: {1} and port {2}, with hostname {3}", + evaluatorDescriptor.Memory, + ipAddress, + port, + hostName)); + + IConfiguration taskConfiguration = TaskConfiguration.ConfigurationModule + .Set(TaskConfiguration.Identifier, "bridgeCLRHelloTask_" + DateTime.Now.Ticks) + .Set(TaskConfiguration.Task, GenericType<HelloTask>.Class) + .Set(TaskConfiguration.OnMessage, GenericType<HelloTask.HelloDriverMessageHandler>.Class) + .Set(TaskConfiguration.OnSendMessage, GenericType<HelloTaskMessage>.Class) + .Build(); + + activeContext.SubmitTask(taskConfiguration); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloAllocatedEvaluatorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloAllocatedEvaluatorHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloAllocatedEvaluatorHandler.cs new file mode 100644 index 0000000..c07f809 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloAllocatedEvaluatorHandler.cs @@ -0,0 +1,132 @@ +/** + * 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 Org.Apache.REEF.Common.io; +using Org.Apache.REEF.Driver.Bridge; +using Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Network.Naming; +using Org.Apache.REEF.Services; +using Org.Apache.REEF.Tang.Annotations; +using Org.Apache.REEF.Tang.Implementations.Configuration; +using Org.Apache.REEF.Tang.Implementations.Tang; +using Org.Apache.REEF.Tang.Interface; +using Org.Apache.REEF.Tang.Util; +using Org.Apache.REEF.Tasks; +using Org.Apache.REEF.Utilities; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Net; +using Org.Apache.REEF.Examples.Tasks.HelloTask; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloAllocatedEvaluatorHandler : IObserver<IAllocatedEvaluator> + { + [Inject] + public HelloAllocatedEvaluatorHandler() + { + } + + public void OnNext(IAllocatedEvaluator allocatedEvaluator) + { + string control = string.Empty; + + ISet<string> arguments = ClrHandlerHelper.GetCommandLineArguments(); + + if (arguments != null && arguments.Any()) + { + foreach (string argument in arguments) + { + Console.WriteLine("testing argument: " + argument); + } + + control = arguments.Last(); + } + + IEvaluatorDescriptor descriptor = allocatedEvaluator.GetEvaluatorDescriptor(); + + IConfiguration serviceConfiguration = ServiceConfiguration.ConfigurationModule + .Set(ServiceConfiguration.Services, GenericType<HelloService>.Class) + .Build(); + + IConfiguration contextConfiguration = ContextConfiguration.ConfigurationModule + .Set(ContextConfiguration.Identifier, "bridgeHelloCLRContextId_" + Guid.NewGuid().ToString("N")) + .Build(); + + IConfiguration taskConfiguration = TaskConfiguration.ConfigurationModule + .Set(TaskConfiguration.Identifier, "bridgeHelloCLRTaskId_" + Guid.NewGuid().ToString("N")) + .Set(TaskConfiguration.Task, GenericType<HelloTask>.Class) + .Set(TaskConfiguration.OnMessage, GenericType<HelloTask.HelloDriverMessageHandler>.Class) + .Set(TaskConfiguration.OnSendMessage, GenericType<HelloTaskMessage>.Class) + .Build(); + + IConfiguration mergedTaskConfiguration = taskConfiguration; + + if (allocatedEvaluator.NameServerInfo != null) + { + IPEndPoint nameServerEndpoint = NetUtilities.ParseIpEndpoint(allocatedEvaluator.NameServerInfo); + + IConfiguration nameClientConfiguration = TangFactory.GetTang().NewConfigurationBuilder( + NamingConfiguration.ConfigurationModule + .Set(NamingConfiguration.NameServerAddress, nameServerEndpoint.Address.ToString()) + .Set(NamingConfiguration.NameServerPort, + nameServerEndpoint.Port.ToString(CultureInfo.InvariantCulture)) + .Build()) + .BindImplementation(GenericType<INameClient>.Class, + GenericType<NameClient>.Class) + .Build(); + + mergedTaskConfiguration = Configurations.Merge(taskConfiguration, nameClientConfiguration); + } + + string ipAddress = descriptor.NodeDescriptor.InetSocketAddress.Address.ToString(); + int port = descriptor.NodeDescriptor.InetSocketAddress.Port; + string hostName = descriptor.NodeDescriptor.HostName; + Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Alloated evaluator {0} with ip {1}:{2}. Hostname is {3}", allocatedEvaluator.Id, ipAddress, port, hostName)); + Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Evaluator is assigned with {0} MB of memory and {1} cores.", descriptor.Memory, descriptor.VirtualCore)); + + if (control.Equals("submitContext", StringComparison.OrdinalIgnoreCase)) + { + allocatedEvaluator.SubmitContext(contextConfiguration); + } + else if (control.Equals("submitContextAndServiceAndTask", StringComparison.OrdinalIgnoreCase)) + { + allocatedEvaluator.SubmitContextAndServiceAndTask(contextConfiguration, serviceConfiguration, mergedTaskConfiguration); + } + else + { + // default behavior + allocatedEvaluator.SubmitContextAndTask(contextConfiguration, mergedTaskConfiguration); + } + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloCompletedEvaluatorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloCompletedEvaluatorHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloCompletedEvaluatorHandler.cs new file mode 100644 index 0000000..7c4f650 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloCompletedEvaluatorHandler.cs @@ -0,0 +1,59 @@ +/** + * 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 Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Driver.Task; +using Org.Apache.REEF.Utilities; +using Org.Apache.REEF.Tang.Annotations; +using System; +using System.Globalization; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + /// <summary> + /// Sample implementaion of RunningTaskHandler + /// </summary> + public class HelloCompletedEvaluatorHandler : IObserver<ICompletedEvaluator> + { + [Inject] + public HelloCompletedEvaluatorHandler() + { + } + + public void OnNext(ICompletedEvaluator completedEvaluator) + { + string messageStr = string.Format( + CultureInfo.InvariantCulture, + "HelloCompletedEvaluatorHandler: Evaluator [{0}] is done.", + completedEvaluator.Id); + Console.WriteLine(messageStr); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartActiveContextHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartActiveContextHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartActiveContextHandler.cs new file mode 100644 index 0000000..9494f96 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartActiveContextHandler.cs @@ -0,0 +1,69 @@ +/** + * 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 Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Tang.Annotations; +using System; +using System.Globalization; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloDriverRestartActiveContextHandler : IObserver<IActiveContext> + { + [Inject] + public HelloDriverRestartActiveContextHandler() + { + } + + public void OnNext(IActiveContext activeContext) + { + Console.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + "Active context {0} received after driver restart, from evaluator {1}", + activeContext.Id, + activeContext.EvaluatorId)); + + IEvaluatorDescriptor evaluatorDescriptor = activeContext.EvaluatorDescriptor; + string ipAddress = evaluatorDescriptor.NodeDescriptor.InetSocketAddress.Address.ToString(); + int port = evaluatorDescriptor.NodeDescriptor.InetSocketAddress.Port; + string hostName = evaluatorDescriptor.NodeDescriptor.HostName; + + Console.WriteLine( + string.Format( + CultureInfo.InvariantCulture, + "The running evaluator allocated by previous driver is assigned with {0} MB of memory and is running at ip: {1} and port {2}, with hostname {3}", + evaluatorDescriptor.Memory, + ipAddress, + port, + hostName)); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartRunningTaskHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartRunningTaskHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartRunningTaskHandler.cs new file mode 100644 index 0000000..d2d30cf --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloDriverRestartRunningTaskHandler.cs @@ -0,0 +1,67 @@ +/** + * 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; +using System.Globalization; +using Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Task; +using Org.Apache.REEF.Utilities; +using Org.Apache.REEF.Tang.Annotations; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + /// <summary> + /// Sample implementaion of RunningTaskHandler + /// </summary> + public class HelloDriverRestartRunningTaskHandler : IObserver<IRunningTask> + { + [Inject] + public HelloDriverRestartRunningTaskHandler() + { + } + + public void OnNext(IRunningTask runningTask) + { + IActiveContext context = runningTask.ActiveContext; + + Console.WriteLine(string.Format( + CultureInfo.InvariantCulture, + "HelloDriverRestartRunningTaskHandler: Task [{0}] is running after driver restart. Evaluator id: [{1}].", + runningTask.Id, + context.EvaluatorId)); + + runningTask.Send(ByteUtilities.StringToByteArrays( + string.Format( + CultureInfo.InvariantCulture, + "Hello, task {0}! Glad to know that you are still running in Evaluator {1} after driver restart!", + runningTask.Id, + context.EvaluatorId))); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloEvaluatorRequestorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloEvaluatorRequestorHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloEvaluatorRequestorHandler.cs new file mode 100644 index 0000000..4f24e0f --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloEvaluatorRequestorHandler.cs @@ -0,0 +1,65 @@ +/** + * 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 Org.Apache.REEF.Driver.Bridge; +using Org.Apache.REEF.Driver.Evaluator; +using System; + +using Org.Apache.REEF.Tang.Annotations; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloEvaluatorRequestorHandler : IObserver<IEvaluatorRequestor> + { + [Inject] + public HelloEvaluatorRequestorHandler() + { + } + + public void OnNext(IEvaluatorRequestor evalutorRequestor) + { + int evaluatorsNumber = 1; + int memory = 512; + int core = 2; + string rack = "WonderlandRack"; + string evaluatorBatchId = "evaluatorThatRequires512MBofMemory"; + EvaluatorRequest request = new EvaluatorRequest(evaluatorsNumber, memory, core, rack, evaluatorBatchId); + + evalutorRequestor.Submit(request); + + evaluatorsNumber = 1; + memory = 1999; + core = 2; + rack = "WonderlandRack"; + evaluatorBatchId = "evaluatorThatRequires1999MBofMemory"; + request = new EvaluatorRequest(evaluatorsNumber, memory, core, rack, evaluatorBatchId); + evalutorRequestor.Submit(request); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedEvaluatorHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedEvaluatorHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedEvaluatorHandler.cs new file mode 100644 index 0000000..e9aa232 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedEvaluatorHandler.cs @@ -0,0 +1,68 @@ +/** + * 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 Org.Apache.REEF.Driver.Bridge; +using Org.Apache.REEF.Driver.Evaluator; +using Org.Apache.REEF.Tang.Annotations; +using System; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloFailedEvaluatorHandler : IObserver<IFailedEvaluator> + { + private static int _failureCount = 0; + + private static int _maxTrial = 2; + + [Inject] + public HelloFailedEvaluatorHandler() + { + } + + public void OnNext(IFailedEvaluator failedEvaluator) + { + Console.WriteLine("Receive a failed evaluator: " + failedEvaluator.Id); + if (++_failureCount < _maxTrial) + { + Console.WriteLine("Requesting another evaluator"); + EvaluatorRequest newRequest = new EvaluatorRequest(1, 512, "somerack"); + IEvaluatorRequestor requestor = failedEvaluator.GetEvaluatorRequetor(); + if (failedEvaluator.GetEvaluatorRequetor() != null) + { + requestor.Submit(newRequest); + } + } + else + { + Console.WriteLine("Exceed max retries number"); + throw new Exception("Unrecoverable evaluator failure."); + } + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedTaskHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedTaskHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedTaskHandler.cs new file mode 100644 index 0000000..7618f00 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloFailedTaskHandler.cs @@ -0,0 +1,67 @@ +/** + * 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 Org.Apache.REEF.Driver.Task; +using Org.Apache.REEF.Utilities; +using Org.Apache.REEF.Tang.Annotations; +using System; +using System.Globalization; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloFailedTaskHandler : IObserver<IFailedTask> + { + [Inject] + public HelloFailedTaskHandler() + { + } + + public void OnNext(IFailedTask failedTask) + { + string errorMessage = string.Format( + CultureInfo.InvariantCulture, + "Task [{0}] has failed caused by [{1}], with message [{2}] and description [{3}]. The raw data for failure is [{4}].", + failedTask.Id, + failedTask.Reason.IsPresent() ? failedTask.Reason.Value : string.Empty, + failedTask.Message, + failedTask.Description.IsPresent() ? failedTask.Description.Value : string.Empty, + failedTask.Data.IsPresent() ? ByteUtilities.ByteArrarysToString(failedTask.Data.Value) : string.Empty); + + Console.WriteLine(errorMessage); + + if (failedTask.GetActiveContext().IsPresent()) + { + Console.WriteLine("Disposing the active context the failed task ran in."); + + // we must do something here: either close the context or resubmit a task to the active context + failedTask.GetActiveContext().Value.Dispose(); + } + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloHttpHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloHttpHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloHttpHandler.cs new file mode 100644 index 0000000..e1bf097 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloHttpHandler.cs @@ -0,0 +1,51 @@ +/** + * 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.Globalization; +using System.Net; +using Org.Apache.REEF.Driver.Bridge; +using Org.Apache.REEF.Utilities; +using Org.Apache.REEF.Utilities.Logging; +using Org.Apache.REEF.Tang.Annotations; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloHttpHandler : IHttpHandler + { + private static readonly Logger LOGGER = Logger.GetLogger(typeof(HttpServerHandler)); + + [Inject] + public HelloHttpHandler() + { + } + + public string GetSpecification() + { + return "NRT"; //Client Example + } + + public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse response) + { + LOGGER.Log(Level.Info, string.Format(CultureInfo.CurrentCulture, "HelloHttpHandler OnHttpRequest: URL: {0}, QueryString: {1}, inputStream: {2}.", requet.Url, requet.Querystring, ByteUtilities.ByteArrarysToString(requet.InputStream))); + response.Status = HttpStatusCode.OK; + response.OutputStream = + ByteUtilities.StringToByteArrays("Byte array returned from HelloHttpHandler in CLR!!!"); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRestartHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRestartHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRestartHandler.cs new file mode 100644 index 0000000..6e72147 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRestartHandler.cs @@ -0,0 +1,48 @@ +/** + * 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 Org.Apache.REEF.Tang.Annotations; +using Org.Apache.REEF.Wake.Time; +using System; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + public class HelloRestartHandler : IObserver<StartTime> + { + [Inject] + public HelloRestartHandler() + { + } + + public void OnNext(StartTime value) + { + Console.WriteLine("Hello from CLR: we are informed that Driver has restarted at " + new DateTime(value.TimeStamp)); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/29c56c8e/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRunningTaskHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRunningTaskHandler.cs b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRunningTaskHandler.cs new file mode 100644 index 0000000..07048e4 --- /dev/null +++ b/lang/cs/Org.Apache.REEF.Examples/HelloCLRBridge/Handlers/HelloRunningTaskHandler.cs @@ -0,0 +1,65 @@ +/** + * 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; +using System.Globalization; +using Org.Apache.REEF.Driver.Context; +using Org.Apache.REEF.Driver.Task; +using Org.Apache.REEF.Utilities; +using Org.Apache.REEF.Tang.Annotations; + +namespace Org.Apache.REEF.Examples.HelloCLRBridge.Handlers +{ + /// <summary> + /// Sample implementaion of RunningTaskHandler + /// </summary> + public class HelloRunningTaskHandler : IObserver<IRunningTask> + { + [Inject] + public HelloRunningTaskHandler() + { + } + + public void OnNext(IRunningTask runningTask) + { + IActiveContext context = runningTask.ActiveContext; + + string messageStr = string.Format( + CultureInfo.InvariantCulture, + "HelloRunningTaskHandler: Task [{0}] is running. Evaluator id: [{1}].", + runningTask.Id, + context.EvaluatorId); + Console.WriteLine(messageStr); + + byte[] message = ByteUtilities.StringToByteArrays(messageStr); + + runningTask.Send(message); + } + + public void OnError(Exception error) + { + throw new NotImplementedException(); + } + + public void OnCompleted() + { + throw new NotImplementedException(); + } + } +}
