public QueueRaker( IEventStorage eventStorage, IEventLoggerAdditionalInfoRepository eventLoggerAdditionalInfoRepository, IEventLogProfiler profiler, ILog logger, TimeSpan eventsTtl) { this.eventStorage = eventStorage; this.eventLoggerAdditionalInfoRepository = eventLoggerAdditionalInfoRepository; this.profiler = profiler; this.logger = logger; this.eventsTtl = eventsTtl; manualResetEventPool = new ManualResetEventPool(); queue = new Queue <QueueEntry>(); Start(); }
public EventLogger( ICassandraCluster cassandraCluster, ISerializer serializer, ColumnFamilyFullName eventLogColumnFamily, IEventLogPointerCreator eventLogPointerCreator, Func <IQueueRaker> createQueueRaker, IEventLoggerAdditionalInfoRepository eventLoggerAdditionalInfoRepository, IEventLogProfiler profiler, ILog logger) { this.serializer = serializer; this.eventLogPointerCreator = eventLogPointerCreator; this.createQueueRaker = createQueueRaker; this.eventLoggerAdditionalInfoRepository = eventLoggerAdditionalInfoRepository; this.profiler = profiler; this.logger = logger; columnFamilyConnection = cassandraCluster.RetrieveColumnFamilyConnection(eventLogColumnFamily.KeyspaceName, eventLogColumnFamily.ColumnFamilyName); }
public IEventRepository CreateEventRepository(IShardCalculator shardCalculator, IEventRepositoryColumnFamilyFullNames columnFamilies, IEventLogProfiler profiler, TimeSpan eventsTtl) { var eventLogPointerCreator = new EventLogPointerCreator(); var remoteLockImplementation = new CassandraRemoteLockImplementation(cassandraCluster, serializer, CassandraRemoteLockImplementationSettings.Default(columnFamilies.RemoteLock.KeyspaceName, columnFamilies.RemoteLock.ColumnFamilyName)); var remoteLocker = new RemoteLocker(remoteLockImplementation, new RemoteLockerMetrics(columnFamilies.RemoteLock.KeyspaceName), logger); var eventLoggerAdditionalInfoRepository = new EventLoggerAdditionalInfoRepository(cassandraCluster, serializer, remoteLocker, columnFamilies.EventLogAdditionalInfo, columnFamilies.EventLog); var eventStorage = new EventStorage(columnFamilies.EventLog, eventLogPointerCreator, cassandraCluster, serializer); Func <IQueueRaker> createQueueRaker = () => new QueueRaker(eventStorage, eventLoggerAdditionalInfoRepository, profiler, logger, eventsTtl); var eventLogger = new EventLogger(cassandraCluster, serializer, columnFamilies.EventLog, eventLogPointerCreator, createQueueRaker, eventLoggerAdditionalInfoRepository, profiler, logger); return(new EventRepository(eventTypeIdentifierProvider, eventLogger, shardCalculator, serializer)); }