TaskScript::getProvider() naming + understanding

Hi all,

I am not sure I understand what goes on behind the hood of function TaskScript::getProvider(...).

The doc says that it allows to make OperationCaller calls on the operations of a given service of a TaskContext. In order to do so getProvider(...) returns boost::shared_ptr<ServiceType>.

Now if ServiceType turns out to be... say Scripting, then getProvider(...) returns a pointer on a Scripting object. And it turns out that Scripting derives from ServiceRequester.

Here is the core of the problem: to my understanding a Service provides operations (hence can be called a "provider"), but when I write getProvider(...) I am actually returned a ServiceRequester...

Hum hum... any idea of where I am getting things wrong?