Ok, that's what I thought, but your comment doesn't seem to match this:

# mtt_switch(@np@, 9, "return1", 100, return2", "default", 0);

You have an extra "return" in there, and the 5th argument doesn't seem to be 
quoted properly.



On Jan 3, 2011, at 8:21 AM, Mike Dubman wrote:

> Hi,
> it is c-style *switch* replacement, to simplify statements like this:
> 
> transport       = &if (&eq('@cycle@', '1'), '@btl_openib@' ,\
>                      &if (&eq('@cycle@', '2'), '@btl_openib@',\
>                        &if (&eq('@cycle@', '3'), '@btl_eth10g@',\
>                          &if (&eq('@cycle@', '4'), '@btl_eth10g@',\
>                            &if (&eq('@cycle@', '3a'), '@btl_eth10g@ -x 
> custom_noswitchconnect=1',\
>                              &if (&eq('@cycle@', '4a'), '@btl_eth10g@ -x 
> custom_noswitchconnect=1',\
>                                &if (&eq('@cycle@', '5'), '@btl_eth10g@',\
>                                  &if (&eq('@cycle@', '6'), '@btl_eth10g@',\
>                                    &if (&eq('@cycle@', '7'), '@btl_eth10g@',\
>                                      &if (&eq('@cycle@', '8'), 
> '@btl_eth10g@',\
>                                        &if (&eq('@cycle@', '11'), 
> '@btl_eth10g@',\
>                                          &if (&eq('@cycle@', '12'), 
> '@btl_eth10g@',\
>                                            '@btl_rdmaoe@'\
>                                          )\
>                                        )\
>                                      )\
>                                    )\
>                                  )\
>                                )\
>                              )\
>                            )\
>                          )\
>                        )\
>                     )\
>                   )
> 
> which can be rewritten as:
> 
> transport = mtt_switch(@cycle@, 1, @btl_openib@, 2, @btl_eth10g@, ...)
> 
> Will update wiki as well.
> 
> 
> Regards
> 
> 
> 
> On Mon, Jan 3, 2011 at 2:54 PM, Jeff Squyres <jsquy...@cisco.com> wrote:
> Mike --
> 
> Can you explain this one a little?  I don't understand the example you gave 
> in the comment.
> 
> Also, are you adding all the new funclets to the wiki documentation?
> 
> 
> 
> On Dec 29, 2010, at 3:52 AM, mi...@osl.iu.edu wrote:
> 
> > Author: miked
> > Date: 2010-12-29 03:52:24 EST (Wed, 29 Dec 2010)
> > New Revision: 1377
> > URL: https://svn.open-mpi.org/trac/mtt/changeset/1377
> >
> > Log:
> > added mtt_switch to simplify if-then-else cases in ini files
> >
> > Text files modified:
> >   trunk/lib/MTT/Values/Functions.pm |    21 +++++++++++++++++++++
> >   1 files changed, 21 insertions(+), 0 deletions(-)
> >
> > Modified: trunk/lib/MTT/Values/Functions.pm
> > ==============================================================================
> > --- trunk/lib/MTT/Values/Functions.pm (original)
> > +++ trunk/lib/MTT/Values/Functions.pm 2010-12-29 03:52:24 EST (Wed, 29 Dec 
> > 2010)
> > @@ -3163,4 +3163,25 @@
> >       return $x->{result_stdout};
> > }
> >
> > +#
> > +# Poor man switch statement
> > +# Example: mtt_switch(@np@, 9, "return1", 100, return2", "default", 0);
> > +#
> > +
> > +sub mtt_switch
> > +{
> > +    my ($var, %cases) = @_;
> > +
> > +    if ($cases{$var}) {
> > +        return $cases{$var};
> > +    }
> > +
> > +    if ($cases{'default'}) {
> > +        return $cases{'default'};
> > +    }
> > +
> > +    Debug("ERROR: Not found case for $var\n");
> > +}
> > +
> > +
> > 1;
> > _______________________________________________
> > mtt-svn mailing list
> > mtt-...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn
> 
> 
> --
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> 


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to