Bug 2193

Summary: ACE_Connector - Footprint improvements - eliminating inheritance
Product: ACE Reporter: Kobi Cohen-Arazi <kobi-co>
Component: ACE CoreAssignee: DOC Center Support List (internal) <tao-support>
Status: NEW ---    
Severity: normal CC: bala, johnny
Priority: P3    
Version: 5.4.6   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 2181    

Description Kobi Cohen-Arazi 2005-07-19 03:45:23 CDT
It seems that ACE_Connector really don't need the public inheritance from
ACE_Service_Object. Since we really do not benefit from being a Service_Object
(all the functions of Shared_Object and Service_Object are default one and
return -1)
If some derived type need to have that capability, it will inherit
ACE_Service_Object. We don't need it in ACE_Connector.

We also do not need the capability of being ACE_Event_Handler since we have an
helper object (NBCH) that is registered against the reactor.
(ACE_NonBlocking_Connect_Handler) So inheriting ACE_Event_Handler is useless.

We do have a slight problem now having 2 reactor pointers members in
ACE_Connector. One, is private from the ACE_Connector aspect, since that member
is inherited from ACE_Service_Object (which inherit ACE_Event_Handler in turn),
and another reactor_ - same data member is introduced in ACE_Connector.

Removing the ACE_Service_Object inheritance from ACE_Connector will benefit in
eliminating that unnecessary data member(s) and functions. (BTW set/get reactor
functions in ACE_Connector are both exists from ACE_Connector type and from
ACE_Event_Handler type) - thus reducing footprints a bit.

Bala Comment (Emailed to the ace-users group) - 
Irfan and me went over this before we  decided on creating a NBCH. There
was point in time (apparently), when ACE  users were using service
configurators to load connectors. Additionally there is a backward
compatibility issue associated with it. I am all for the change.
I leave it to others to speak up. My $0.02.
Comment 1 Steve Huston 2005-07-19 08:52:43 CDT
Just for the record, I do not agree that removing the ACE_Service_Object
inheritance from ACE_Connector is desireable or right.
The extraneous ACE_Reactor stuff should be removed, however.