public override void Install(ParticleDefinitionContext feature) { // A real transport would probably rely on NSB.Raw to do it's TransportBinder work feature.RegisterInterfaceType("In Memory") .For <InMemoryTransport>(builder => new InMemoryTransport()) .For <TransportBinder>(builder => builder.Get <InMemoryTransport>()); }
public override void Install(ParticleDefinitionContext feature) { // Here we register a new channel type // It registers a startable that will bind to the configured transport // and push messages to the configured store feature.RegisterChannelType("Audits") .For <Startable>(builder => new AuditChannelMonitor(builder.Get <Core.Particle>(), builder.Get <ChannelSettings>(), builder.Get <AuditSettings>())); }
public override void Install(ParticleDefinitionContext feature) { // This is the main feature for In Memory Storage // It sets things up and then other features can add their own implementations as needed // In theory, this could expose a Startable service if it needed to perform startup init feature.RegisterStoreType("In Memory") .For <InMemoryStorage>(builder => new InMemoryStorage()); }
public override void Install(ParticleDefinitionContext feature) { // A basic round-robin audit store // Register a single writer that can be configured with a number of different stores // And round-robin writes to them all. // No need to implement the query interface as all of the sub-stores will be queried anyway feature.RegisterStoreType("Round Robin") .For <AuditWriter>(builder => new Writer(builder.Get <Core.Particle>(), builder.Get <RoundRobinStorageSettings>())); }
public override void Install(ParticleDefinitionContext feature) { // This provides the audit services over the top of the the in-memory storage // By doing it this way, this assembly only contains the details specifically // Required for this exact cross-section of features feature.RegisterStoreType("In Memory") .For <InMemoryAuditor>(builder => new InMemoryAuditor(builder.Get <InMemoryStorage>())) .For <MessagesQuery>(builder => builder.Get <InMemoryAuditor>()) .For <AuditWriter>(builder => builder.Get <InMemoryAuditor>()); }
public override void Install(ParticleDefinitionContext feature) { feature.RegisterStoreType("Remote") .For <MessagesQuery>(builder => new RemoteAuditor(builder.Get <RemoteStoreConnectionSettings>())); }
public abstract void Install(ParticleDefinitionContext feature);
public override void Install(ParticleDefinitionContext feature) { feature.RegisterApi <MessagesApi>("/messages"); }