Пример #1
0
        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)));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
 /// <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);
 }
Пример #7
0
        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);
        }
Пример #8
0
 public IProgramContext CreateProgramContext(ContextFeatures contextFeatures, IProgram program)
 {
     return(CreateProgramContext(contextFeatures, program, new ProgramExecutor(program)));
 }