registry/reg_cachehook.c

ソースコードを見る。

関数

BOOL reghook_cache_init (void)
BOOL reghook_cache_add (REGISTRY_HOOK *hook)
REGISTRY_HOOKreghook_cache_find (const char *keyname)
void reghook_dump_cache (int debuglevel)

変数

static SORTED_TREEcache_tree
REGISTRY_OPS regdb_ops
static REGISTRY_HOOK default_hook = { KEY_TREE_ROOT, &regdb_ops }


関数

BOOL reghook_cache_init ( void   ) 

reg_cachehook.c37 行で定義されています。

参照先 cache_treedefault_hookpathtree_init().

参照元 init_registry().

00038 {
00039         cache_tree = pathtree_init( &default_hook, NULL );
00040 
00041         return ( cache_tree == NULL );
00042 }

BOOL reghook_cache_add ( REGISTRY_HOOK hook  ) 

reg_cachehook.c49 行で定義されています。

参照先 cache_treeREGISTRY_HOOK::keynamepathtree_add()pstring_sub().

参照元 init_registry().

00050 {
00051         pstring key;
00052         
00053         if ( !hook )
00054                 return False;
00055                 
00056         pstrcpy( key, "\\");
00057         pstrcat( key, hook->keyname );  
00058         
00059         pstring_sub( key, "\\", "/" );
00060 
00061         DEBUG(10,("reghook_cache_add: Adding key [%s]\n", key));
00062                 
00063         return pathtree_add( cache_tree, key, hook );
00064 }

REGISTRY_HOOK* reghook_cache_find ( const char *  keyname  ) 

reg_cachehook.c70 行で定義されています。

参照先 cache_treelenpathtree_find()string_sub().

参照元 reg_load_tree()reg_write_tree()regkey_open_internal().

00071 {
00072         char *key;
00073         int len;
00074         REGISTRY_HOOK *hook;
00075         
00076         if ( !keyname )
00077                 return NULL;
00078         
00079         /* prepend the string with a '\' character */
00080         
00081         len = strlen( keyname );
00082         if ( !(key = (char *)SMB_MALLOC( len + 2 )) ) {
00083                 DEBUG(0,("reghook_cache_find: malloc failed for string [%s] !?!?!\n",
00084                         keyname));
00085                 return NULL;
00086         }
00087 
00088         *key = '\\';
00089         strncpy( key+1, keyname, len+1);
00090         
00091         /* swap to a form understood by the SORTED_TREE */
00092 
00093         string_sub( key, "\\", "/", 0 );
00094                 
00095         DEBUG(10,("reghook_cache_find: Searching for keyname [%s]\n", key));
00096         
00097         hook = (REGISTRY_HOOK *)pathtree_find( cache_tree, key ) ;
00098         
00099         SAFE_FREE( key );
00100         
00101         return hook;
00102 }

void reghook_dump_cache ( int  debuglevel  ) 

reg_cachehook.c108 行で定義されています。

参照先 cache_treepathtree_print_keys().

参照元 init_registry().

00109 {
00110         DEBUG(debuglevel,("reghook_dump_cache: Starting cache dump now...\n"));
00111         
00112         pathtree_print_keys( cache_tree, debuglevel );
00113 }


変数

SORTED_TREE* cache_tree [static]

reg_cachehook.c29 行で定義されています。

参照元 reghook_cache_add()reghook_cache_find()reghook_cache_init()reghook_dump_cache().

REGISTRY_OPS regdb_ops

reg_db.c656 行で定義されています。

REGISTRY_HOOK default_hook = { KEY_TREE_ROOT, &regdb_ops } [static]

reg_cachehook.c31 行で定義されています。

参照元 reghook_cache_init().


Sambaに対してSat Aug 29 21:24:05 2009に生成されました。  doxygen 1.4.7