Beispiel #1
0
 /// <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");
 }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
 public ChannelDescription(int id, Socket socket, SocketAsyncEventArgs recvArgs, IDataPacker dataPacker)
 {
     Id         = id;
     Socket     = socket;
     RecvArgs   = recvArgs;
     DataPacker = dataPacker;
 }
Beispiel #4
0
 /// <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;
 }