Beispiel #1
0
def gen_store_ds_include(ds_array, dt_array, file_output):
    'generate store ds c include'
    tbl_name_array = []
    print >> file_output, ""
    print >> file_output, "#include \"%s\"" % ('proto.h')
    print >> file_output, "#include \"%s\"" % ('cdb_store.h')
    for i, ds_one in enumerate(ds_array):
        ds_name = ds_one[0][0]
        parent_tbl = ds_one[3]
        tbl_name = string.lower(parent_tbl[0][0])
        tbl_name_array.append(tbl_name)

    for i, ds_one in enumerate(ds_array):
        field_array = ds_one[4]
        for j, field_one in enumerate(field_array):
            if ('REFERLIST_TBL_' == field_one[0][:14]):
                tbl_name = string.lower(field_one[0][10:])
                tbl_name_array.append(tbl_name)

    tbl_name_array = cdb_util.array_remove_duplicate_entry(tbl_name_array)
    for i, tbl_name in enumerate(tbl_name_array):
        fname_define_h = 'gen/' + string.lower(tbl_name) + '_define.h'
        fname_h = 'gen/' + string.lower(tbl_name) + '.h'
        print >> file_output, "#include \"%s\"" % (fname_define_h)
        print >> file_output, "#include \"%s\"" % (fname_h)
    print >> file_output, ""
Beispiel #2
0
def build_tbl_data_include_tbl(fobj, tbl_name, data_array):
	'build table include tbl'
	self_refer = 0
	data_name_s = string.lower(tbl_name) + '_s'
	data_name = string.lower(tbl_name) + '_t'
	fname_define_h_array = []

	for i, field in enumerate(data_array):
		field_type = field[0]
		if (field_type[:4] == "tbl_" and field_type[-5:] != "key_t" and field_type != "tbl_route_node_t"):
			fname_define_h = 'gen/' + string.lower(field_type[:-2]) + '_define.h'
			fname_define_h_array.append(fname_define_h)

	fname_define_h_array = cdb_util.array_remove_duplicate_entry(fname_define_h_array)
	for i, fname_define_h in enumerate(fname_define_h_array):
		print >> fobj, "#include \"%s\"" % (fname_define_h)
Beispiel #3
0
if (GEN_TBL_C):
    tbl_api_c.gen_tbl_c_files(tbl_array, ds_array, dt_array, cmp_func_array,
                              val2str_func_array, referlist_tbl_array)

############################################################
# gen ds_xxx.h
if (GEN_DS_H):
    ds_api_h.gen_ds_h_files(ds_array)

############################################################
# gen ds_xxx.c
if (GEN_DS_C):
    ds_api_c.gen_ds_c_files(ds_array, dt_array, cmp_func_array,
                            val2str_func_array, referlist_tbl_array)

############################################################
# print notice
cmp_func_array = cdb_util.array_remove_duplicate_entry(cmp_func_array)
val2str_func_array = cdb_util.array_remove_duplicate_entry(val2str_func_array)
referlist_tbl_array = cdb_util.array_remove_duplicate_entry(
    referlist_tbl_array)

for i, cmp_func in enumerate(cmp_func_array):
    cdb_util.print_cmp_func(cmp_func)

for i, val2str_func in enumerate(val2str_func_array):
    cdb_util.print_val2str_func(val2str_func)

for i, table_name in enumerate(referlist_tbl_array):
    cdb_util.print_referlist_val2str(table_name)
Beispiel #4
0
for i, tbl_one in enumerate(api_ds_array):
    tbl_name = tbl_one[0][0]
    data_array = tbl_one[2]
    for j, field in enumerate(data_array):
        if ('REFERLIST_' in field[0]):
            referlist_tbl_name = field[0][10:]
            need_cmp_array.append(referlist_tbl_name)

for i, tbl_one in enumerate(api_tbl_array):
    tbl_name = tbl_one[0][0]
    tbl_ds_type = tbl_one[0][2]
    if ('LIST' in tbl_ds_type):
        need_cmp_array.append(tbl_name)

need_cmp_array = cdb_util.array_remove_duplicate_entry(need_cmp_array)
for i, cmp_tbl in enumerate(need_cmp_array):
    dt_cmp_func = string.lower(cmp_tbl) + '_cmp'
    ret_data = find_cmp_in_cmp_array(dt_cmp_func, cmp_func_array)
    if (None == ret_data):
        print "%s: not found function %s in sdb_data_cmp.c" % (
            cdb_util.inred('FAIL'), cdb_util.ingreen(dt_cmp_func))
        glb_pass = 0

#########################################################
# 6. check val2str in cdb_ds.c
#########################################################
oper_val2str_array = []
for i, dt_oper in enumerate(api_dt_oper_array):
    if (len(dt_oper) >= 5):
        oper_val2str_array.append(dt_oper[4])