blob: 363961dc19460a6d9685992013cbf740311cf09e [file] [log] [blame]
// 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 System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using Org.Apache.REEF.Common.Context;
using Org.Apache.REEF.Driver.Context;
using Org.Apache.REEF.Driver.Defaults;
using Org.Apache.REEF.Driver.Evaluator;
using Org.Apache.REEF.Driver.Task;
using Org.Apache.REEF.Tang.Annotations;
using Org.Apache.REEF.Utilities.Attributes;
[module: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleClass", Justification = "allow name parameter class to be embedded")]
namespace Org.Apache.REEF.Driver.Bridge
{
/// <summary>
/// Hosts all named parameters for Drivers, including bridge handlers.
/// </summary>
public sealed class DriverBridgeConfigurationOptions
{
// Level.Verbose (since enum is not supported for TANG, we use a string here)
private const string _infoLevel = "Info";
[NamedParameter(documentation: "The start point for application logic. Event fired after the Driver is done initializing.")]
public class DriverStartedHandlers : Name<ISet<IObserver<IDriverStarted>>>
{
}
[NamedParameter(documentation: "Called when driver is restarted, after CLR bridge is set up.")]
public class DriverRestartedHandlers : Name<ISet<IObserver<IDriverRestarted>>>
{
}
[NamedParameter(documentation: "Called when driver restart is completed.", defaultClasses: new[] { typeof(DefaultDriverRestartCompletedHandler) })]
public class DriverRestartCompletedHandlers : Name<ISet<IObserver<IDriverRestartCompleted>>>
{
}
[NamedParameter(documentation: "Called when an evaluator has failed in the Driver Restart process.", defaultClasses: new[] { typeof(DefaultEvaluatorFailureHandler) })]
public class DriverRestartFailedEvaluatorHandlers : Name<ISet<IObserver<IFailedEvaluator>>>
{
}
[NamedParameter(documentation: "Called when evaluator is requested.")]
public class EvaluatorRequestHandlers : Name<ISet<IObserver<IEvaluatorRequestor>>>
{
}
[NamedParameter(documentation: "Called when an exception occurs on a running evaluator.", defaultClasses: new[] { typeof(DefaultEvaluatorFailureHandler) })]
public class FailedEvaluatorHandlers : Name<ISet<IObserver<IFailedEvaluator>>>
{
}
[NamedParameter(documentation: "Called when an evaluator completes.", defaultClasses: new[] { typeof(DefaultEvaluatorCompletionHandler) })]
public class CompletedEvaluatorHandlers : Name<ISet<IObserver<ICompletedEvaluator>>>
{
}
[NamedParameter(documentation: "Called when an allocated evaluator is given to the client.", defaultClasses: new[] { typeof(DefaultEvaluatorAllocationHandler) })]
public class AllocatedEvaluatorHandlers : Name<ISet<IObserver<IAllocatedEvaluator>>>
{
}
[NamedParameter(documentation: "Running task handler.", defaultClasses: new[] { typeof(DefaultTaskRunningHandler) })]
public class RunningTaskHandlers : Name<ISet<IObserver<IRunningTask>>>
{
}
[NamedParameter(documentation: "Running task during driver restart handler.", defaultClasses: new[] { typeof(DefaultDriverRestartTaskRunningHandler) })]
public class DriverRestartRunningTaskHandlers : Name<ISet<IObserver<IRunningTask>>>
{
}
[NamedParameter(documentation: "Task exception handler.", defaultClasses: new[] { typeof(DefaultTaskFailureHandler) })]
public class FailedTaskHandlers : Name<ISet<IObserver<IFailedTask>>>
{
}
[NamedParameter(documentation: "Task message handler.", defaultClasses: new[] { typeof(DefaultTaskMessageHandler) })]
public class TaskMessageHandlers : Name<ISet<IObserver<ITaskMessage>>>
{
}
[NamedParameter(documentation: "Http Event Handlers.", defaultClasses: new[] { typeof(DefaultHttpHandler) })]
public class HttpEventHandlers : Name<ISet<IHttpHandler>>
{
}
[NamedParameter(documentation: "Completed task handler.", defaultClasses: new[] { typeof(DefaultTaskCompletionHandler) })]
public class CompletedTaskHandlers : Name<ISet<IObserver<ICompletedTask>>>
{
}
[NamedParameter(documentation: "Suspended task handler.", defaultClasses: new[] { typeof(DefaultTaskSuspensionHandler) })]
public class SuspendedTaskHandlers : Name<ISet<IObserver<ISuspendedTask>>>
{
}
[NamedParameter(documentation: "Handler for IActiveContext.", defaultClasses: new[] { typeof(DefaultContextActiveHandler) })]
public class ActiveContextHandlers : Name<ISet<IObserver<IActiveContext>>>
{
}
[NamedParameter(documentation: "Handler for IActiveContext received during driver restart.", defaultClasses: new[] { typeof(DefaultDriverRestartContextActiveHandler) })]
public class DriverRestartActiveContextHandlers : Name<ISet<IObserver<IActiveContext>>>
{
}
[NamedParameter(documentation: "Handler for ClosedContext.", defaultClasses: new[] { typeof(DefaultContextClosureHandler) })]
public class ClosedContextHandlers : Name<ISet<IObserver<IClosedContext>>>
{
}
[NamedParameter(documentation: "Handler for FailedContext.", defaultClasses: new[] { typeof(DefaultContextFailureHandler) })]
public class FailedContextHandlers : Name<ISet<IObserver<IFailedContext>>>
{
}
[NamedParameter(documentation: "Handler for ContextMessage.", defaultClasses: new[] { typeof(DefaultContextMessageHandler) })]
public class ContextMessageHandlers : Name<ISet<IObserver<IContextMessage>>>
{
}
[NamedParameter("Evaluator recovery timeout for driver restart in seconds. > 0 => restart is enabled.", "DriverRestartEvaluatorRecoverySeconds", "-1")]
public sealed class DriverRestartEvaluatorRecoverySeconds : Name<int>
{
}
[NamedParameter("Command Line Arguments supplied by client", "CommandLineArguments", null)]
public class ArgumentSets : Name<ISet<string>>
{
}
[NamedParameter("Additional trace listeners supplied by client", "TraceListeners", null, defaultClasses: new[] { typeof(DefaultCustomTraceListener) })]
public class TraceListenersSet : Name<ISet<TraceListener>>
{
}
[Breaking("The change is introduced in 0.17")]
[NamedParameter("Custom Trace Level", "TraceLevel", defaultValue: _infoLevel)]
public class TraceLevel : Name<string>
{
}
}
}