RangeMgr::RangeMgr(mem_allocrator_t alloc) { if (cpe_range_mgr_init(&m_rm, alloc) != 0) { throw ::std::runtime_error("init RangeMgr fail!"); } }
net_mgr_t net_mgr_create(mem_allocrator_t alloc, error_monitor_t em) { net_mgr_t nmgr; nmgr = (net_mgr_t)mem_alloc(alloc, sizeof(struct net_mgr)); if (nmgr == NULL) return NULL; bzero(nmgr, sizeof(struct net_mgr)); if (cpe_range_mgr_init(&nmgr->m_ep_ids, alloc) != 0) { CPE_ERROR(em, "init ep ids fail!"); mem_free(alloc, nmgr); return NULL; } nmgr->m_ev_loop = ev_loop_new(EVFLAG_AUTO); if (!nmgr->m_ev_loop) { CPE_ERROR(em, "net_mgr_create: create event loop fail!"); cpe_range_mgr_fini(&nmgr->m_ep_ids); mem_free(alloc, nmgr); return NULL; } nmgr->m_alloc = alloc; nmgr->m_em = em; nmgr->m_debug = 0; nmgr->m_ep_page_capacity = 0; nmgr->m_ep_pages = NULL; TAILQ_INIT(&nmgr->m_chanels); if (cpe_hash_table_init( &nmgr->m_listeners, alloc, (cpe_hash_fun_t)net_listener_hash, (cpe_hash_cmp_t)net_listener_cmp, CPE_HASH_OBJ2ENTRY(net_listener, m_hh), 256) != 0) { CPE_ERROR(em, "net_mgr_create: init listener hash list fail!"); cpe_range_mgr_fini(&nmgr->m_ep_ids); mem_free(alloc, nmgr); return NULL; } if (cpe_hash_table_init( &nmgr->m_connectors, alloc, (cpe_hash_fun_t)net_connector_hash, (cpe_hash_cmp_t)net_connector_cmp, CPE_HASH_OBJ2ENTRY(net_connector, m_hh), 256) != 0) { CPE_ERROR(em, "net_mgr_create: init connector hash list fail!"); cpe_hash_table_fini(&nmgr->m_listeners); cpe_range_mgr_fini(&nmgr->m_ep_ids); mem_free(alloc, nmgr); return NULL; } return nmgr; }