private Type _FindContextWithFeatures(ContextTargetType contextTargetType, ContextFeatures contextFeatures) { IEnumerable <Type> contextTypes = Assembly.GetExecutingAssembly().GetAttributedTypes(typeof(ContextAttribute)); return (contextTypes.FirstOrDefault( x => x.GetCustomAttributes(typeof(ContextAttribute), false).Cast <ContextAttribute>().Any( y => y.TargetType == contextTargetType && y.Caching == contextFeatures.Caching))); }
public ISequenceContext CreateSequenceContext(ContextFeatures contextFeatures, ISequence sequence) { ISequenceExecutor executor = Vixen.Services.SequenceTypeService.Instance.CreateSequenceExecutor(sequence); ISequenceContext context = (ISequenceContext)_CreateContext(ContextTargetType.Sequence, contextFeatures); if (executor != null && context != null) { context.Executor = executor; context.Sequence = sequence; _AddContext(context); } return(context); }
public ISequenceContext CreateSequenceContext(ContextFeatures contextFeatures, ISequence sequence) { ISequenceExecutor executor = Vixen.Services.SequenceTypeService.Instance.CreateSequenceExecutor(sequence); ISequenceContext context = (ISequenceContext)_CreateContext(ContextTargetType.Sequence, contextFeatures); if (executor != null && context != null) { context.Executor = executor; context.Sequence = sequence; _AddContext(context); } VixenSystem.Instrumentation.AddValue(_contextUpdateTimeValue); return(context); }
private IContext _CreateContext(ContextTargetType contextTargetType, ContextFeatures contextFeatures) { if (contextFeatures == null) { throw new ArgumentNullException("contextFeatures"); } Type contextType = _FindContextWithFeatures(contextTargetType, contextFeatures); if (contextType == null) { Logging.Error(string.Format("Could not find a context for target type {0} with features {1}", contextTargetType, contextFeatures)); return(null); } return((ContextBase)Activator.CreateInstance(contextType)); }
private IContext _CreateContext(ContextTargetType contextTargetType, ContextFeatures contextFeatures) { if (contextFeatures == null) { throw new ArgumentNullException("contextFeatures"); } Type contextType = _FindContextWithFeatures(contextTargetType, contextFeatures); if (contextType == null) { VixenSystem.Logging.Error("Could not find a context for target type " + contextTargetType + " with features " + contextFeatures); return(null); } return((ContextBase)Activator.CreateInstance(contextType)); }
/// <summary> /// Look if the provided text starts with any declaration keyword /// </summary> public static bool IsDeclaration(string line, ContextFeatures features) { foreach (string keyword in features.accessKeywords) { if (line.StartsWith(keyword) && IsSpaceAt(line, keyword.Length)) { return(true); } } foreach (string keyword in features.declKeywords) { if (line.StartsWith(keyword) && IsSpaceAt(line, keyword.Length)) { return(true); } } return(false); }
public IProgramContext CreateProgramContext(ContextFeatures contextFeatures, IProgram program, IExecutor executor) { if (contextFeatures == null) { throw new ArgumentNullException("contextFeatures"); } if (executor == null) { throw new ArgumentNullException("executor"); } IProgramContext context = (IProgramContext)_CreateContext(ContextTargetType.Program, contextFeatures); if (context != null) { context.Executor = executor; context.Program = program; _AddContext(context); } return(context); }
public IProgramContext CreateProgramContext(ContextFeatures contextFeatures, IProgram program) { return(CreateProgramContext(contextFeatures, program, new ProgramExecutor(program))); }