Exemplo n.º 1
0
 public MultiDimInStream(IIOFactory factory, InputAttribute attribute)
 {
     FDataContainer    = factory.CreateIOContainer <IInStream <T> >(attribute.DecreaseBinSizeWrapCount(), false);
     FBinSizeContainer = factory.CreateIOContainer <IInStream <int> >(attribute.GetBinSizeInputAttribute(FDataContainer), false);
     FDataStream       = FDataContainer.IOObject;
     FBinSizeStream    = FBinSizeContainer.IOObject;
 }
Exemplo n.º 2
0
            public InputBinSpreadStream(IIOFactory ioFactory, InputAttribute attribute, bool checkIfChanged, Func <IIOContainer, IIOContainer <IInStream <int> > > binSizeIOContainerFactory)
            {
                // Don't do this, as spread max won't get computed for this pin
                // attribute.AutoValidate = false;
                attribute.CheckIfChanged = checkIfChanged;

                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 <IInStream <T> >(attribute, false); // No need for another indirection, access the node input directly
                    FDataContainer = container;
                    FDataStream    = container.IOObject;
                }

                FBinSizeContainer = binSizeIOContainerFactory(FDataContainer);
                FBinSizeStream    = FBinSizeContainer.IOObject;
                FDataIO           = FDataContainer.GetPluginIO();
            }