示例#1
0
 public MultiDimOutStream(IIOFactory ioFactory, OutputAttribute attribute)
 {
     FDataContainer    = ioFactory.CreateIOContainer <IOutStream <T> >(attribute.DecreaseBinSizeWrapCount(), false);
     FBinSizeContainer = ioFactory.CreateIOContainer <IOutStream <int> >(attribute.GetBinSizeOutputAttribute(FDataContainer), false);
     FDataStream       = FDataContainer.IOObject;
     FBinSizeStream    = FBinSizeContainer.IOObject;
     Length            = 1;
 }
示例#2
0
 public OutputBinSpreadStream(IIOFactory ioFactory, OutputAttribute attribute, Func <IIOContainer, IIOContainer <IOutStream <int> > > binSizeIOContainerFactory)
 {
     if (attribute.IsBinSizeEnabled)
     {
         var container = ioFactory.CreateIOContainer <ISpread <T> >(attribute.DecreaseBinSizeWrapCount(), false); // Ask for a spread, otherwise we lose track of bin size wrapping
         FDataContainer = container;
         FDataStream    = container.IOObject.Stream;
     }
     else
     {
         var container = ioFactory.CreateIOContainer <IOutStream <T> >(attribute, false); // No need for another indirection, access the node output directly
         FDataContainer = container;
         FDataStream    = container.IOObject;
     }
     FBinSizeContainer = binSizeIOContainerFactory(FDataContainer);
     FBinSizeStream    = FBinSizeContainer.IOObject;
     Length            = 1;
 }