Esempio n. 1
0
Object const * Manager::findObjectNc(const char * name) const {
    nm_node_t node = nm_mgr_find_node_nc(*this, name);
    if (node == NULL
        || nm_node_type(node) != &g_object_type)
    {
        return NULL;
    }

    return Object::_cast(node);
}
Esempio n. 2
0
bool Manager::removeObject(const char * name) {
    nm_node_t node = nm_mgr_find_node_nc(*this, name);
    if (node) {
        nm_node_free(node);
        return true;
    }
    else {
        return false;
    }
}
Esempio n. 3
0
weibo_manage_t
weibo_manage_find_nc(
    gd_app_context_t app,
    const char * name)
{
    nm_node_t node;

    if (name == NULL) return weibo_manage_default(app);

    node = nm_mgr_find_node_nc(gd_app_nm_mgr(app), name);
    if (node == NULL || nm_node_type(node) != &s_nm_node_type_weibo_manage) return NULL;
    return (weibo_manage_t)nm_node_data(node);
}
Esempio n. 4
0
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);
}