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
participants (1)
-
'Andre Merzky'