creating and deleting pins at runtimeAugust 7, 2012 posted by: Elias
there’re situations were one needs to create pins at runtime depending on the value of some config pin. for example consider the Expr (Value)node node. it creates input pins for each given variable name.
with beta28 coming up this kind of task got considerably easier to do with a new interface called IIOFactory. it basically provides a method to create so called IO containers, containing the actual “view” on the pin data (such as ISpread) and controlling the lifetime of it.
say we want to create an ISpread<ISpread
(Import) IIOFactory FIOFactory; ... var inputAttribute = new InputAttribute("Input Foo"); var inputFooContainer = FIOFactory.CreateIOContainer<ISpread<ISpread<T>>>(inputAttribute); var inputFooSpread = inputFooContainer.IOObject; ...
in case we decide to get rid of those two pins which are used by inputFooSpread we simply call Dispose on the associated IO container:
... inputFooContainer.Dispose(); ...
for details and as a starting point have a look at the new dynamic plugin template contained in beta28, which creates inputs and outputs on the fly, when changing the associated config pins.
Comments are no longer accepted for this post.