Beispiel #1
0
        /// <summary>
        /// Creates a stream
        /// </summary>
        /// <param name="streamId">Stream Id</param>
        public StorageStream CreateStream(Guid streamId, int tag = 0)
        {
            CheckClosed();

            if (SystemStreamId.IsSystemStreamId(streamId))
            {
                throw new InvalidStreamIdException();
            }
            if (ContainsStream(streamId))
            {
                throw new StreamExistsException();
            }

            StartTransaction();
            try
            {
                streamTable.Add(streamId, tag);
                CommitTransaction();
                streamsCreatedDuringTransaction.Add(streamId);
            }
            catch
            {
                RollbackTransaction();
                throw;
            }

            return(OpenStream(streamId));
        }