/// <summary> /// Initializes a new instance of the <see cref="DbExporter" /> class. /// </summary> /// <param name="dbReader">A database reader - an object which implements <see cref="IDbReader" /> interface /// and provide some basic operation for reading the DB content.</param> /// <param name="dataSetExporter">A dataset exporter - allows to save the content of some dataset in a file of a particular format.</param> /// <param name="packer">A packer - packs the files created by dataset exporter to some storage (e.g. to a folder or a ZIP archive).</param> /// <param name="loggerFactory">The logger factory.</param> public DbExporter(IDbReader dbReader, IDatasetExporter dataSetExporter, IDataPacker packer, ILoggerFactory loggerFactory) { _dbReader = dbReader; _datasetExporter = dataSetExporter; _dataPacker = packer; _logger = loggerFactory?.CreateLogger("Korzh.DbUtils"); }
public int AddChannel(Socket socket, IDataPacker dataPacker, IDataUnpacker dataUnpacker) { var channelId = Interlocked.Increment(ref ChannelIdSeed); if (channelId == 0) { channelId = Interlocked.Increment(ref ChannelIdSeed); } var recvArgs = AcquireRecvArgs(dataUnpacker); if (Channels.TryAdd(channelId, new ChannelDescription(channelId, socket, recvArgs, dataPacker))) { FreeChannels.Add(channelId); BeginReceive(socket, recvArgs); return(channelId); } else { ReleaseRecvArgs(recvArgs); return(-1); } }
public ChannelDescription(int id, Socket socket, SocketAsyncEventArgs recvArgs, IDataPacker dataPacker) { Id = id; Socket = socket; RecvArgs = recvArgs; DataPacker = dataPacker; }
/// <summary> /// Initializes a new instance of the <see cref="DbExporter"/> class. /// </summary> /// <param name="dbReader">A database reader - an object which implements <see cref="IDbReader"/> interface /// and provide some basic operation for reading the DB content.</param> /// <param name="dataSetExporter">A dataset exporter - allows to save the content of some dataset in a file of a particular format.</param> /// <param name="packer">A packer - packs the files created by dataset exporter to some storage (e.g. to a folder or a ZIP archive).</param> public DbExporter(IDbReader dbReader, IDatasetExporter dataSetExporter, IDataPacker packer) { _dbReader = dbReader; _datasetExporter = dataSetExporter; _dataPacker = packer; }