void * Object::operator new (size_t size, nm_mgr_t nmm, const char * name) { nm_node_t node = nm_instance_create(nmm, name, size); if (node == NULL) { if (nm_mgr_find_node_nc(nmm, name)) { ::std::ostringstream os; os << "named object " << name << " already exist!"; throw ::std::runtime_error(os.str()); } else { throw ::std::bad_alloc(); } } return nm_node_data(node); }
weibo_manage_t weibo_manage_create( gd_app_context_t app, const char * name, mem_allocrator_t alloc, error_monitor_t em) { weibo_manage_t mgr; nm_node_t mgr_node; if (name == 0) name = cpe_hs_data((cpe_hash_string_t)&s_weibo_manage_default_name); mgr_node = nm_instance_create(gd_app_nm_mgr(app), name, sizeof(struct weibo_manage)); if (mgr_node == NULL) return NULL; mgr = (weibo_manage_t)nm_node_data(mgr_node); mgr->m_alloc = alloc; mgr->m_app = app; mgr->m_em = em; mgr->m_debug = 0; mgr->m_pages_count = 0; mgr->m_pages_capacity = 0; mgr->m_pages_by_id = NULL; mgr->m_pages_by_time = NULL; TAILQ_INIT(&mgr->m_runing_it_list); mgr->m_msg_id_page_free_list = NULL; mgr->m_persistent = NULL; mgr->m_persistent_ctx = NULL; nm_node_set_type(mgr_node, &s_nm_node_type_weibo_manage); return mgr; }