01-14-2015, 11:45 PM
The code is fine. Its just what files to put it in I disagree about. Once we've sorted that out I reckon its ready to merge.
As for UDP, if UDP goes in a separate file then you need to expose cNetworkSingleton anyway, as UDP will depend on cNetworkSingleton. My feeling is that cNetworkSingleton should be exposed but we just don't use it outside OSSupport. Also if you add a method to access m_DNSBase and m_EventBase then you can get rid of the friend class. Yes it leaks the libevent abstraction but so does accessing them through friends.
As for UDP, if UDP goes in a separate file then you need to expose cNetworkSingleton anyway, as UDP will depend on cNetworkSingleton. My feeling is that cNetworkSingleton should be exposed but we just don't use it outside OSSupport. Also if you add a method to access m_DNSBase and m_EventBase then you can get rid of the friend class. Yes it leaks the libevent abstraction but so does accessing them through friends.