Browse Source

kdb: kdb_has_..._fn() functions

Serj Kalichev 2 years ago
parent
commit
37ee9bfe47
2 changed files with 58 additions and 2 deletions
  1. 4 0
      klish/kdb.h
  2. 54 2
      klish/kscheme/kdb.c

+ 4 - 0
klish/kdb.h

@@ -63,6 +63,10 @@ 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);
+bool_t kdb_has_init_fn(const kdb_t *db);
+bool_t kdb_has_fini_fn(const kdb_t *db);
+bool_t kdb_has_load_fn(const kdb_t *db);
+bool_t kdb_has_deploy_fn(const kdb_t *db);
 
 C_DECL_END
 

+ 54 - 2
klish/kscheme/kdb.c

@@ -182,7 +182,7 @@ bool_t kdb_init(kdb_t *db)
 	if (!db)
 		return BOOL_FALSE;
 	if (!db->init_fn)
-		return BOOL_TRUE; // Init fn absence is not error
+		return BOOL_FALSE;
 
 	return db->init_fn(db);
 }
@@ -194,7 +194,7 @@ bool_t kdb_fini(kdb_t *db)
 	if (!db)
 		return BOOL_FALSE;
 	if (!db->fini_fn)
-		return BOOL_TRUE; // Fini fn absence is not error
+		return BOOL_FALSE;
 
 	return db->fini_fn(db);
 }
@@ -222,3 +222,55 @@ bool_t kdb_deploy_scheme(kdb_t *db, const kscheme_t *scheme)
 
 	return db->deploy_fn(db, scheme);
 }
+
+
+bool_t kdb_has_init_fn(const kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+
+	if (db->init_fn)
+		return BOOL_TRUE;
+
+	return BOOL_FALSE;
+}
+
+
+bool_t kdb_has_fini_fn(const kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+
+	if (db->fini_fn)
+		return BOOL_TRUE;
+
+	return BOOL_FALSE;
+}
+
+
+bool_t kdb_has_load_fn(const kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+
+	if (db->load_fn)
+		return BOOL_TRUE;
+
+	return BOOL_FALSE;
+}
+
+
+bool_t kdb_has_deploy_fn(const kdb_t *db)
+{
+	assert(db);
+	if (!db)
+		return BOOL_FALSE;
+
+	if (db->deploy_fn)
+		return BOOL_TRUE;
+
+	return BOOL_FALSE;
+}