- localServer_iterator localServer_find(const socket_t&) throw();
- localServer_iterator localServer_begin() throw() { return a_localServers.begin(); }
- localServer_iterator localServer_end() throw() { return a_localServers.end(); }
- static LocalServer* localServer(localServer_iterator ii) throw() { return ii->second; }
- const_localServer_iterator localServer_begin() const throw() { return a_localServers.begin(); }
- const_localServer_iterator localServer_end() const throw() { return a_localServers.end(); }
- static const LocalServer* localServer(const_localServer_iterator ii) throw() { return ii->second; }
-
- // Server sessions are managed within LocalServer (not at engine) due to dynamic cration nature
-
+ localServer_iterator localServer_find(const socket_t&) ;
+ localServer_iterator localServer_begin() { return a_localServers.begin(); }
+ localServer_iterator localServer_end() { return a_localServers.end(); }
+ static LocalServer* localServer(localServer_iterator ii) { return ii->second; }
+ const_localServer_iterator localServer_begin() const { return a_localServers.begin(); }
+ const_localServer_iterator localServer_end() const { return a_localServers.end(); }
+ static const LocalServer* localServer(const_localServer_iterator ii) { return ii->second; }
+
+ // Server sessions are managed within LocalServer (not at engine) due to dynamic creation nature
+ // Here we maintain the Destination-Realm / Destination-Host maps for DRA basics:
+ typedef std::vector<ServerSession*> server_sessions_vector_t;
+ typedef server_sessions_vector_t::const_iterator server_sessions_it_t;
+ typedef server_sessions_vector_t::iterator server_sessions_nc_it_t;
+ typedef std::map <std::string /* Destination-Host */, server_sessions_vector_t> dh_server_sessions_map_t;
+ typedef dh_server_sessions_map_t::const_iterator dh_server_sessions_it_t;
+ typedef dh_server_sessions_map_t::iterator dh_server_sessions_nc_it_t;
+ typedef std::map <std::string /* Destination-Realm */, dh_server_sessions_map_t> dr_dh_server_sessions_map_t;
+ typedef dr_dh_server_sessions_map_t::const_iterator dr_dh_server_sessions_it_t;
+ typedef dr_dh_server_sessions_map_t::iterator dr_dh_server_sessions_nc_it_t;
+ dr_dh_server_sessions_map_t a_dr_dh_server_sessions;
+ void manageDrDhServerSession(ServerSession *ss, bool register_or_desregister) ;