Ignore:
Timestamp:
Jan 14, 2007, 6:21:52 PM (19 years ago)
Author:
cinc
Message:

Implemented nomIsObj().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/nom/class_c/nomclassmanager.c

    r177 r192  
    116116  mtab=(nomMethodTab*) classMtab;
    117117
    118   if(NULL==_gdataClassList)
    119     g_datalist_init(&_gdataClassList);
    120 
    121118  g_datalist_set_data_full(&_gdataClassList, mtab->nomClassName, classMtab, priv_handleClassRemove);
     119  g_tree_insert(_pClassListTree, mtab, mtab->nomClassName); /* key is the mtab because we want to use
     120                                                               this tree for fast lookup of mtabs to
     121                                                               check for objects. */
     122
    122123  //  g_datalist_set_data_full(&_gdataClassList, mtab->nomClassName, classMtab, priv_handleClassRemove);
    123124  //nomPrintf("%s: registering %lx, %s classList: %lx\n", __FUNCTION__,
     
    181182  mtab=(nomMethodTab*) classMtab;
    182183
    183   if(NULL==_gdataMethodList)
    184     g_datalist_init(&_gdataMethodList);
    185 
    186184  g_datalist_set_data_full(&_gdataMethodList, chrMethodName, classMtab, priv_handleMethodRemoveFromList);
    187185  //g_datalist_set_data_full(&_gdataClassList, mtab->nomClassName, classMtab, priv_handleClassRemove);
     
    190188}
    191189
    192 
    193 
    194 
    195 
     190NOM_Scope CORBA_boolean NOMLINK impl_NOMClassMgr_nomIsObject(NOMClassMgr* nomSelf, const PNOMObject nomObject,
     191                                                             CORBA_Environment *ev)
     192{
     193  NOMClassMgrData* nomThis=NOMClassMgrGetData(nomSelf);
     194
     195  if(NULLHANDLE==nomObject)
     196    return FALSE;
     197
     198  return (g_tree_lookup(_pClassListTree, nomObject->mtab)!= NULLHANDLE);
     199}
     200
     201static
     202int nomClassMgrCompareFunc(gconstpointer a, gconstpointer b)
     203{
     204  if(a < b )
     205    return -1;
     206  if(a > b )
     207    return 1;
     208  return 0;
     209}
     210NOM_Scope void NOMLINK impl_NOMClassMgr_nomInit(NOMClassMgr* nomSelf, CORBA_Environment *ev)
     211{
     212  NOMClassMgrData* nomThis=NOMClassMgrGetData(nomSelf);
     213
     214  NOMClassMgr_nomInit_parent((NOMObject*)nomSelf,  ev);
     215
     216  g_datalist_init(&_gdataMethodList);
     217  g_datalist_init(&_gdataClassList);
     218
     219  /* This balanced binary tree holds the objects in this folder. We create a tree
     220     which may be searched using the name of the file/directory */
     221
     222  _pClassListTree=g_tree_new((GCompareFunc)nomClassMgrCompareFunc);
     223
     224}
     225
     226
     227
     228
     229
     230
     231
     232
     233
     234
     235
     236
Note: See TracChangeset for help on using the changeset viewer.