Пример #1
0
        IStreamSource IStreamResolver.ResolveInclude(IStreamSource baseStream, string includePath)
        {
            if (includePath == "%code%")
            {
                StringBuilder sb = new StringBuilder(4096);
                StringWriter  sw = new StringWriter(sb);

                sw.WriteLine();
                GenerateScriptCore(sw);

                string compiledCode = sb.ToString();
                return(new CodeStreamSource(compiledCode));
            }
            else
            {
                IStreamResolver resolver = baseStream as IStreamResolver;
                if (resolver != null)
                {
                    return(resolver.ResolveInclude(baseStream, includePath));
                }

                string resolvedPath = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(baseStream.FullName)), includePath);
                return(new FileInputStreamSource(resolvedPath));
            }
        }
Пример #2
0
        public static async Task <TrackData> Parse(string input)
        {
            if (File.Exists(input))
            {
                return(new TrackData(input, Utils.GetFilename(input)));
            }

            IStreamResolver resolver = await FindValidResovler(input);

            if (resolver == null)
            {
                return(null);
            }

            TrackData retval = new TrackData(input, resolver);

            if (resolver.SupportsTrackNames)
            {
                retval.Name = await resolver.GetTrackName(input);
            }
            else
            {
                retval.Name = input;
            }

            return(retval);
        }
Пример #3
0
        public EventSourceFacade(IStreamResolver streamResolver, IDatabaseLookup databaseLookup)
        {
            var dbPath  = databaseLookup.GetDatabase(streamResolver.GetStream());
            var options = new DbContextOptionsBuilder <DomainContext>()
                          .UseSqlite($"Data Source={dbPath}")
                          .Options;

            _context = new DomainContext(options);
        }
Пример #4
0
        public ReadModel(IStreamResolver streamResolver, IEventLookup eventLookup,
                         IDataContext dataContext, IDatabaseLookup databaseLookup)
        {
            _eventLookup = eventLookup;
            _dataContext = dataContext;

            _eventHandlers = new List <Action <BaseEvent> >();

            var eventDbFile = databaseLookup.GetDatabase(streamResolver.GetStream());
            var options     = new DbContextOptionsBuilder <DomainContext>()
                              .UseSqlite($"Data Source={eventDbFile}")
                              .Options;

            _context = new DomainContext(options);
        }
Пример #5
0
        public PreprocessorTextReader(IStreamSource source, ICollection<string> predefinedVariables, IStreamResolver includeResolver, IScriptInfo scriptInfo) {
            Debug.Assert(source != null);

            _source = source;
            _includeResolver = includeResolver;
            _scriptInfo = scriptInfo;

            _definedVariables = new Dictionary<string, string>();
            _activeInstructions = new Stack<Instruction>();

            if ((predefinedVariables != null) && (predefinedVariables.Count != 0)) {
                foreach (string s in predefinedVariables) {
                    _definedVariables[s] = String.Empty;
                }
            }

            _currentLinePosition = -1;
        }
Пример #6
0
        public PreprocessorTextReader(IStreamSource source, ICollection <string> predefinedVariables, IStreamResolver includeResolver)
        {
            Debug.Assert(source != null);

            _source          = source;
            _includeResolver = includeResolver;

            _definedVariables   = new Dictionary <string, string>();
            _activeInstructions = new Stack <Instruction>();

            if ((predefinedVariables != null) && (predefinedVariables.Count != 0))
            {
                foreach (string s in predefinedVariables)
                {
                    _definedVariables[s] = String.Empty;
                }
            }

            _currentLinePosition = -1;
        }
Пример #7
0
        private async Task <string> GetStreamUrl()
        {
            if (File.Exists(Location))
            {
                return(Location);
            }

            if (_cachedResolver != null)
            {
                return(await _cachedResolver.ResolveStreamUrl(Location));
            }

            IStreamResolver resolver = await FindValidResovler(Location);

            if (resolver == null)
            {
                return(null);
            }

            return(await resolver.ResolveStreamUrl(Location));
        }
Пример #8
0
        private static async Task <IStreamResolver> FindValidResovler(string location)
        {
            IStreamResolver resolver = null;

            foreach (IStreamResolver candidateResolver in Resolvers)
            {
                if (candidateResolver.SupportsAsyncCanResolve)
                {
                    if (await candidateResolver.AsyncCanResolve(location))
                    {
                        resolver = candidateResolver;
                        break;
                    }
                }
                else if (candidateResolver.SyncCanResolve(location))
                {
                    resolver = candidateResolver;
                    break;
                }
            }

            return(resolver);
        }
Пример #9
0
 private TrackData(string location, IStreamResolver resovler)
 {
     Location = location;
     _cachedResolver = resovler;
 }
Пример #10
0
 private TrackData(string location, IStreamResolver resovler)
 {
     Location        = location;
     _cachedResolver = resovler;
 }
Пример #11
0
 internal ScriptPreprocessor(IStreamResolver includeResolver, IErrorHandler errorHandler, IScriptInfo scriptInfo)
 {
     _scriptInfo      = scriptInfo;
     _includeResolver = includeResolver;
     _errorHandler    = errorHandler;
 }
Пример #12
0
 public ScriptPreprocessor(IStreamResolver includeResolver, IErrorHandler errorHandler)
     : this(includeResolver, errorHandler, null)
 {
 }
Пример #13
0
 public ScriptPreprocessor(IStreamResolver includeResolver, IErrorHandler errorHandler)
 {
     _includeResolver = includeResolver;
     _errorHandler    = errorHandler;
 }
Пример #14
0
 internal ScriptPreprocessor(IStreamResolver includeResolver, IErrorHandler errorHandler, IScriptInfo scriptInfo) {
     _scriptInfo = scriptInfo;
     _includeResolver = includeResolver;
     _errorHandler = errorHandler;
 }
Пример #15
0
 public ScriptPreprocessor(IStreamResolver includeResolver, IErrorHandler errorHandler)
     : this(includeResolver, errorHandler, null) {
 }