Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/RT/OperationCenter/OP.cs

82 lines
1.9 KiB
C#

using System;
using MECF.Framework.Common.OperationCenter;
namespace Aitex.Core.RT.OperationCenter
{
public class OP
{
public static ICommonOperation InnerOperationManager { private get; set; }
public static IOperation OperationManager { private get; set; }
public static void Subscribe<T>(T instance, string keyPrefix = null) where T : class
{
if (InnerOperationManager != null)
{
InnerOperationManager.Subscribe(instance, keyPrefix);
}
}
public static void Subscribe(string key, Func<string, object[], bool> op)
{
if (InnerOperationManager != null)
{
InnerOperationManager.Subscribe(key, op);
}
}
public static void Subscribe(string key, OperationFunction op)
{
if (OperationManager != null)
{
OperationManager.Subscribe(key, op);
}
}
public static void DoOperation(string operationName, params object[] args)
{
if (InnerOperationManager != null)
{
InnerOperationManager.DoOperation(operationName, args);
}
}
public static void DoOperation(string operationName, out string reason, int time, params object[] args)
{
reason = string.Empty;
if (OperationManager != null)
{
OperationManager.DoOperation(operationName, out reason, time, args);
}
}
public static bool ContainsOperation(string operation)
{
if (InnerOperationManager != null)
{
return InnerOperationManager.ContainsOperation(operation);
}
return true;
}
public static bool CanDoOperation(string operation, out string reason, params object[] args)
{
if (InnerOperationManager != null)
{
return InnerOperationManager.CanDoOperation(operation, out reason, args);
}
reason = string.Empty;
return true;
}
public static bool AddCheck(string operation, IInterlockChecker checker)
{
if (InnerOperationManager != null)
{
return InnerOperationManager.AddCheck(operation, checker);
}
return true;
}
}
}