[Opensim-dev] RFC: Refactoring Scene.cs so that modules directly invoke services from CommsManager

Justin Clark-Casey jjustincc at googlemail.com
Thu Dec 18 21:00:10 UTC 2008


Teravus Ovares wrote:
> You would think that the service wrappers would be something that
> should go into scenebase, the scene base class as virtual.   The idea
> behind this is, 1.  it would be out of Scene.cs.   2.  It would be
> available, if someone intends on deriving another Scene class from
> SceneBase.
> 
> Then again.  Maybe Scene is too complicated and encapsulates too much
> specific functionality to make it reasonable to expect someone to
> derive a separate class from SceneBase.

Yeah.  I still am more in favor of switching everything to get services through CommsManager (which may be slightly 
misnamed).  On a little further digging, a lot of modules do this already, so we now have this inconsistent situation 
where some stuff is fetch through CommsManager and other things are done via CommsManager wrapping methods on Scene.

It would be nice to be consistent in this.

Also, going directly to CommsManager may make it easier to get services by interface in the future, instead of the 
existing hardcoded fields (in the same manner as interfaces are registered on Scene itself).

> 
> Best Regards
> 
> Teravus
> 
> On 12/18/08, Justin Clark-Casey <jjustincc at googlemail.com> wrote:
>> In Scene.cs there are quite a few wrapper methods that appears to exist primarily to relay calls from modules to other
>> services.  For instance, Scene.AddXmlRPCHandler() just recalls AddXmlRPCHandler() on the BaseHttpServer.  Some modules
>> make use of this method while others use Scene.CommsManager.HttpServer.AddXmlRPCHandler()
>>
>> I would like to refactor code such that services available through CommsManager are called directly rather than through
>> Scene wrappers.  Although this goes against the Law of Demeter (http://en.wikipedia.org/wiki/Law_of_Demeter) I think
>> that the advantage in reducing the large number of disparate methods on the Scene is worth it.  The alternative is that
>> the number of Scene wrapper methods continues to grow indefinitely as new service methods are introduced.
>>
>> Comments?
>>
>> --
>> justincc
>> Justin Clark-Casey
>> http://justincc.wordpress.com
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
> 


-- 
justincc
Justin Clark-Casey
http://justincc.wordpress.com



More information about the Opensim-dev mailing list