This class handles all the logic for flushing the In Memory buffer to the persistent storage.
Inheritance: IDisposable
Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PersistenceChannel"/> class.
 /// </summary>
 /// <param name="storageFolderName">
 /// A folder name. Under this folder all the transmissions will be saved.
 /// Setting this value groups channels, even from different processes.
 /// If 2 (or more) channels has the same <c>storageFolderName</c> only one channel will perform the sending even if the channel is in a different process/AppDomain/Thread.
 /// </param>
 /// <param name="sendersCount">
 /// Defines the number of senders. A sender is a long-running thread that sends telemetry batches in intervals defined by <see cref="SendingInterval"/>.
 /// So the amount of senders also defined the maximum amount of http channels opened at the same time.
 /// </param>
 public PersistenceChannel(string storageFolderName, int sendersCount = 1)
 {
     this.TelemetryBuffer = new TelemetryBuffer();
     this.storage         = ServiceLocator.GetService <BaseStorageService>();
     this.storage.Init(storageFolderName);
     this.Transmitter     = new PersistenceTransmitter(this.storage, sendersCount);
     this.flushManager    = new FlushManager(this.storage, this.TelemetryBuffer);
     this.EndpointAddress = TelemetryServiceEndpoint;
     this.developerMode   = false;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PersistenceChannel"/> class.
 /// </summary>
 /// <param name="storageFolderName">
 /// A folder name. Under this folder all the transmissions will be saved. 
 /// Setting this value groups channels, even from different processes. 
 /// If 2 (or more) channels has the same <c>storageFolderName</c> only one channel will perform the sending even if the channel is in a different process/AppDomain/Thread.  
 /// </param>
 /// <param name="sendersCount">
 /// Defines the number of senders. A sender is a long-running thread that sends telemetry batches in intervals defined by <see cref="SendingInterval"/>. 
 /// So the amount of senders also defined the maximum amount of http channels opened at the same time.
 /// </param>        
 public PersistenceChannel(string storageFolderName, int sendersCount = 1)
 {   
     this.TelemetryBuffer = new TelemetryBuffer();
     this.storage = ServiceLocator.GetService<BaseStorageService>();
     this.storage.Init(storageFolderName);
     this.Transmitter = new PersistenceTransmitter(this.storage, sendersCount);
     this.flushManager = new FlushManager(this.storage, this.TelemetryBuffer);
     this.EndpointAddress = TelemetryServiceEndpoint;
     this.developerMode = false;
 }