On 27 Jan 2010 at 9:59, Jack Z wrote:

> Hi Ulrich,
> 
> Thanks for your comment.
> 
> So by "implement polymorphism", do you mean sk->sw_write_space is
> platform dependent or it does different jobs when called from
> different functions in the open-iscsi code?

Hi,

I mean: If you call a routine indirect through a function pointer, the 
reason is that you want to call different routines at runtime. 
Otherwise this is unnecessary and shows poor performance.

So if calling different routines through a pointer, there must exist a 
common expectation what the code being called does (i.e. the common 
subset of expectations that every possible routine fulfills).

[If you want to look it up somewhere else, try "dynamic binding", 
"polymorphism" or Bertrand Meyers "Object-Oriented software 
construction"]

Therefore you should not ask which specific routine will be called 
through the pointer at some moment in time, but what the routine 
(whatever it is) is expected to do.

(I know it's theoretical, but just introducing "hooks" (as function 
pointers are frequently called) can be a source of errors unless the 
semantics of such a hook are well defined).

Now: Do you really want to know which specific routine is called, or do 
you want to know what the routine is supposed to do?

[...]

Regards,
Ulrich

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to