It seems a fairly complete solution
multioutput_function_node. This node may be connected to one or more (currently up to 10) ports. The ports are passed as a std::tuple
to each execution of the node’s functor, and during each execution the
functor may send items to any combination of output ports or to none at
all."Regarding the multiple outputs there is the following remark on the page:http://software.intel.com/en-us/blogs/2011/09/13/using-intel-tbb-40-features-to-simplify-dining-philosophers/ :
"One of the new Community Preview nodes is themultioutput_function_node. This node may be connected to one or more (currently up to 10) ports. The ports are passed as astd::tupleto each execution of the node’s functor, and during each execution the functor may send items to any combination of output ports or to none at all."
Sent from Samsung Galaxy Tab (tm) on Rogers
Brad Cox <brad...@gmail.com> wrote:
>FWIW, it seems to me you're taking on a lot of complexity to support forked
>pipes that could be eliminated with splitter nodes. Tee joints if you will.
>Nodes that can't modify objects may be occasionally useful but that's a
>rare case.
>
>On Thu, May 24, 2012 at 4:10 PM, Dan <dpol...@gmail.com> wrote:
>
>> I just want to mention that you can use the "potential" connections (type
>> 2) also for the convergent paths not just the divergent.
>> In the case of "material" connections (type 1) you can use them in the
>> divergent paths only if you have a special component that explicitly
>> duplicates the IPs. In fact the divergence is implemented by the component
>> that duplicates the IPs so you don't use the "material" connection to
>> implement the divergence in fact.
>> Conclusion:
>>
>> 1. type "material" can be used anytime but not in the divergence from
>> an output port. You can use it to send IP that can be transformed (modifed)
>> by the receiver
>> 2. type "potential" can be used anytime but not in the case where you
Entity: An object that is not defined by its attributes, but rather by a thread of continuity and its identity.Example: Most airlines distinguish each seat uniquely on every flight. Each seat is an entity in this context. However, Southwest Airlines (or EasyJet/RyanAir for Europeans) does not distinguish between every seat; all seats are the same. In this context, a seat is actually a value object.Value Object: An object that contains attributes but has no conceptual identity. They should be treated as immutable.Example: When people exchange dollar bills, they generally do not distinguish between each unique bill; they only are concerned about the face value of the dollar bill. In this context, dollar bills are value objects. However, the Federal Reserve may be concerned about each unique bill; in this context each bill would be an entity.Aggregate: A collection of objects that are bound together by a root entity, otherwise known as an aggregate root. The aggregate root guarantees the consistency of changes being made within the aggregate by forbidding external objects from holding references to its members.
Presumably allowing one IP to be sent to several destinations without copying only works within a single shared memory, so it does not scale up across multiple memories.
Regards,