Browse Source

kdb: kdb_init(), kdb_fini()

Serj Kalichev 2 years ago
parent
commit
04a48341ef
2 changed files with 28 additions and 4 deletions
  1. 3 3
      klish/kdb.h
  2. 25 1
      klish/kscheme/kdb.c

+ 3 - 3
klish/kdb.h

@@ -58,9 +58,9 @@ uint8_t kdb_minor(const kdb_t *db);
 // static bool_t kdb_set_minor(kdb_t *db, uint8_t minor);
 void *kdb_udata(const kdb_t *db);
 bool_t kdb_set_udata(kdb_t *db, void *udata);
-bool_t kdb_load(kdb_t *db);
-int kdb_init(kdb_t *db);
-int kdb_fini(kdb_t *db);
+bool_t kdb_load_plugin(kdb_t *db);
+bool_t kdb_init(kdb_t *db);
+bool_t kdb_fini(kdb_t *db);
 kscheme_t *kdb_load_scheme(kdb_t *db);
 bool_t kdb_deploy_scheme(kdb_t *db, const kscheme_t *scheme);
 

+ 25 - 1
klish/kscheme/kdb.c

@@ -97,7 +97,7 @@ void kdb_free(kdb_t *db)
 }
 
 
-bool_t kdb_load(kdb_t *db)
+bool_t kdb_load_plugin(kdb_t *db)
 {
 	const char *name = NULL;
 	char *file_name = NULL;
@@ -174,3 +174,27 @@ err:
 
 	return retcode;
 }
+
+
+bool_t kdb_init(kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+	if (!db->init_fn)
+		return BOOL_TRUE; // Init fn absence is not error
+
+	return db->init_fn(db);
+}
+
+
+bool_t kdb_fini(kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+	if (!db->fini_fn)
+		return BOOL_TRUE; // Fini fn absence is not error
+
+	return db->fini_fn(db);
+}