public StreamerController(
            ChunkerConfig chunkerConfig,
            StreamerSessionCfg streamerSessionCfg,
            IDistributedCache cache,
            ITokenBroker tokenBroker,
            ISessionBroker sessionBroker,
            ITokenParser tokenParser,
            IChunkCollector chunkCollector,
            IPlaylistAssembler playlistAssembler)
        {
            _cache             = cache;
            _tokenBroker       = tokenBroker;
            _tokenParser       = tokenParser;
            _sessionBroker     = sessionBroker;
            _chunkCollector    = chunkCollector;
            _playlistAssembler = playlistAssembler;

            _chunkerConfig = chunkerConfig;
            _sessionCfg    = streamerSessionCfg;
        }
Esempio n. 2
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            // Entity Framework
            var connectionStr = _cfg["DBConnectionStr"];

            services.AddDbContext <StreamerContext>(
                o => o.UseSqlite(connectionStr));

            // Redis
            services.AddDistributedRedisCache(o =>
            {
                o.Configuration = "localhost";
                o.InstanceName  = "VideoStreamings";
            });

            // Custom stuff
            //services.AddSingleton<StreamingProcManager>();
            //services.AddSingleton<StreamsUpdateManager>();

            services.AddSingleton(ChunkerConfig.Load(_cfg));
            services.AddSingleton(StreamerSessionCfg.Load(_cfg));
            services.AddSingleton <StreamsConfig>();
            services.AddSingleton <StreamsUpdateWatcher>();

            services.AddTransient <IChunkCollector, ChunkCollector>();
            services.AddTransient <
                IPlaylistAssembler, SimplePlaylistAssembler>();
            services.AddTransient <ITokenBroker, SHA256TokenBroker>();
            services.AddTransient <ITokenParser, TokenParser>();
            services.AddTransient <ISessionBroker, SessionBroker>();

            services.AddTransient <UserTypeIdentifier>();
            services.AddTransient <IUserTypeIdentifier,
                                   PaidUserTypeIdentifier>();
            services.AddTransient <IUserTypeIdentifier,
                                   GuestUserTypeIdentifier>();
        }