Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bufferSize">size of each buffer</param>
        /// <param name="startPoolSize">how many buffers to create at start</param>
        /// <param name="maxPoolSize">max number of buffers in pool</param>
        /// <param name="logger"></param>
        public Pool(CreateNewItem createNew, int bufferSize, int startPoolSize, int maxPoolSize, ILogger logger = null)
        {
            if (startPoolSize > maxPoolSize)
            {
                throw new ArgumentException("Start size must be less than max size", nameof(startPoolSize));
            }
            this.createNew = createNew ?? throw new ArgumentNullException(nameof(createNew));

            this.bufferSize  = bufferSize;
            this.maxPoolSize = maxPoolSize;
            this.logger      = logger;

            pool = new T[maxPoolSize];
            for (int i = 0; i < startPoolSize; i++)
            {
                Put(CreateNewBuffer());
            }
        }
        public CompareOption(Dictionary <string, string> columnsToCompare,
                             CreateNewItem <T1, T2> createNewItem, ModifyItem <T1, T2> modifyItem, RemoveItem <T1> removeItem,
                             GetSrcId <T1> getSrcId, GetDstId <T2> getDstId,
                             string columnNameOfRemove = "IsDeleted")
        {
            if (columnsToCompare == null || columnsToCompare.Count == 0)
            {
                throw new Exception("No compare columns are specified.");
            }

            this.ColumnNameOfRemove = columnNameOfRemove;
            this.ColumnsToCompare   = columnsToCompare;

            this.CreateNewItem = new CreateNewItem <T1, T2>(createNewItem);
            this.ModifyItem    = new ModifyItem <T1, T2>(modifyItem);
            this.RemoveItem    = new RemoveItem <T1>(removeItem);

            this.GetSrcId = new GetSrcId <T1>(getSrcId);
            this.GetDstId = new GetDstId <T2>(getDstId);
        }
Exemple #3
0
 public void AddListenerToCreate(CreateNewItem listener)
 {
     CreateEvent += listener;
 }
Exemple #4
0
 public IMessageHandling Handle(CreateNewItem command)
 {
     return(base.FromNewStream(command.ItemId, state =>
                               state.Update(new NewItemNeedsToBeAcceptedByTheServer(command.ItemId, command.Name))));
 }