Example #1
0
 public StreamID Register(IStreamProvider provider)
 {
     lock (this)
     {
         StreamID streamID = InternalGetNextStreamID();
         InternalRegister(streamID, provider);
         if (StreamTracingEnabled)
         {
             StreamEvents.Add(new RegisterStreamEvent(streamID));
         }
         return(streamID);
     }
 }
Example #2
0
 public override StreamID Allocate()
 {
     lock (this)
     {
         StreamID streamID = InternalGetNextStreamID();
         if (StreamTracingEnabled)
         {
             StreamEvents.Add(new AllocateStreamEvent(streamID));
         }
         _defaultProvider.Create(streamID);
         InternalRegister(streamID, _defaultProvider);
         return(streamID);
     }
 }
Example #3
0
 public override StreamID Reference(StreamID streamID)
 {
     lock (this)
     {
         StreamID     localStreamID = InternalGetNextStreamID();
         StreamHeader header        = GetStreamHeader(streamID);
         if (StreamTracingEnabled)
         {
             StreamEvents.Add(new ReferenceStreamEvent(localStreamID, header.StreamID));
         }
         header.References.Add(localStreamID);
         _referencingHeaders.Add(localStreamID, streamID);
         InternalRegister(localStreamID, _defaultProvider);
         return(localStreamID);
     }
 }