Not really sure how your example relates to my problem statement...
In my case, the ARPQuerier() I'm creating has specific state it retains, and:
(1) needs to be plumbed into the middle of a pipeline in one other elementclass
(for IP packets);
(2) needs to be plumbed to the outputs of several instances of the above
elementclass (for the ARP packets);
Maybe I'm missing something in what you're saying.
On 1/17/11 6:09 PM, Cliff Frey wrote:
> I actually really like this property of elementclasses. Specifically, an
> elementclass is a substitute for an element. In cases like you describe
> Philip, i end up writing configs like:
>
> elementclass MyNull { input -> output; }
>
> // input/output 0: internet
> // input/output 1: LAN
> elementclass MyRouter {
> input [0] -> from_inet :: MyNull();
> input [1] -> from_lan :: MyNull();
> to_inet :: MyNull() -> [0] output;
> to_lan :: MyNull() -> [1] output;
>
> from_inet -> Classifier(12/0800, ...)
> ...
> }
> On Mon, Jan 17, 2011 at 4:55 PM, Philip Prindeville
> <[email protected]
> <mailto:[email protected]>> wrote:
>
> Yeah, it especially makes sense to have arpfoo be global if it needs to
> be accessible from two different elementclass's, one that deals with the IP
> flow (input [0] and output [0]) and another one that deals strictly with the
> ARP request/reply flow (input [1] and output [1]).
>
> Someone else will have to come up with the patches... I've not yet
> dabbled in the code itself.
>
>
> On 1/17/11 4:35 PM, Eddie Kohler wrote:
> > Hi Philip,
> >
> > I can see why you thought compound elements would work that way, but
> they don't. They are very strictly encapsulated: all connections to other
> elements must take place through explicit inputs and outputs.
> >
> > I admit it would make sense to do it the way you've imagined. Patches
> welcome...
> >
> > Eddie
> >
> >
> > On 1/15/11 2:53 PM, Philip Prindeville wrote:
> >> I've got a configuration where I do:
> >>
> >> ...
> >> arpfoo :: ARPQuerier(...);
> >>
> >> elementclass Bar {
> >> ...
> >> class :: classifier(...);
> >> ...
> >> class [2] -> [1] arpfoo;
> >> ...
> >> }
> >>
> >>
> >> but it complains that "unknown element class 'arpfoo'" in a few
> places, and that input 1 isn't used...
> >>
> >> So I'm confused. Everything is scoped globally... even stuff defined
> within an elementclass gets scoped globally.
> >>
> >> Why then can't I access a global variable from within an
> elementclass's scope?
> >>
> >> What am I missing?
> >>
> >> Thanks,
> >>
> >> -Philip
>
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click