[saga-rg] is_supported on attributes

'Andre Merzky' andre at merzky.net
Mon Feb 20 03:27:14 CST 2006


Hi all, 

in Athens we discussed the inspectionb on attributes, and
suggested to include 'is_supported' for inspection.  That
would allow to check if an implementation can handle a
specific attribute, e.g. can set tcp buffer size.

On a closer look at our implementatin we realized that we
can't sensibly implement is_supported, as we do not know to
what middleware we will eventually be bound at the time of
the method invokation.  Consider:


 {
   saga::stream s;
   if ( s.is_supported ("buffer_size") )
   {
     s.set_attribute ("buffer_size", "1024");
   }
   // 'til here adaptor independend - cannot say anything
   // about supported attribs.  The above test is useless.
 
   s.read (100, buff);
   // only on the method call an error could be thrown - we
   // now bind to a middleware, and know if that supports
   // buffer_size.  But that error is very much delayed, and
   // seems unrelated right here...
 }

So we would like to propose to leave is_supported out of the
interface, and instead define supported attributes in the
spec explicitely (as we do anyway).  An implementation
SHOULD then document any deviation, e.g. what attributes are
ignored desprite beeing defined in the spec.  An application
SHOULD be allowed to use any attrib defined in the spec, in
order to allow portability between SAGA implementations.  A
runtime warning CAN be used to inform the application about
ignored attributes.

Comments welcome! :-)

Cheers, Andre.

-- 
"So much time, so little to do..."  -- Garfield





More information about the saga-rg mailing list