NameServer涉及的代码文件目录:
block_collect.cpp
block_collect.h
block_id_factory.cpp
block_id_factory.h
block_manager.cpp
block_manager.h
client_request_server.cpp
client_request_server.h
database_helper.cpp
database_helper.h
family_collect.cpp
family_collect.h
family_manager.cpp
family_manager.h
gc.cpp
gc.h
global_factory.cpp
global_factory.h
heart_manager.cpp
heart_manager.h
layout_manager.cpp
layout_manager.h
Makefile.am
nameserver.cpp
nameserver.h
ns_define.cpp
ns_define.h
oplog.cpp
oplog.h
oplog_sync_manager.cpp
oplog_sync_manager.h
server_collect.cpp
server_collect.h
server_manager.cpp
server_manager.h
service.cpp
task.cpp
task.h
task_manager.cpp
task_manager.h
对应代码的整体框架结构,从makefile相关中获取是比较直观的情况,可以确定依赖的linux库和tb内部的代码库
如下是相对应Makefile.am文件中
#AM_CPPFLAGS=-fprofile-arcs -ftest-coverage -Wall -I$(top_srcdir)/src
AM_CPPFLAGS=-I$(top_srcdir)/src\ #本文件夹文件路径
-I$(TBLIB_ROOT)/include/tbsys\ #tbsys文件路径
-I$(TBLIB_ROOT)/include/tbnet\ #tbnet文件路径
$(MYSQL_CFLAGS) #Mysql传入参数变量
#AM_LDFLAGS=-lz -lrt -lpthread -ldl -lgcov
#AM_LDFLAGS=-lz -lrt -lpthread -ldl -rdynamic ${TCMALLOC_LDFLAGS}
AM_LDFLAGS=-lz -lrt -lpthread -ldl –rdynamic #-lz libz.so 压缩动态库
#-lrt librt.so 信号量、共享内存等动态库
#-lpthread libpthread.so 线程动态库
#-ldl libdl.so 动态加载动态库
#-rdynamic 链接器将所有符号添加到动
#态符号表中可通过dlopen 向后跟踪
AM_LDFLAGS+=$(MYSQL_LDFLAGS) #Mysql静态编译变量
LDADD=$(top_builddir)/src/message/libtfsmessage.a \ #依赖的报文消息,在代码中编译出
$(top_builddir)/src/common/libtfscommon.a\ #功能中的公共部分
$(TBLIB_ROOT)/lib/libtbnet.a \
$(TBLIB_ROOT)/lib/libtbsys.a
noinst_LIBRARIES=libnameserver.a
NAMESERVER_SOURCE_LIST_HEADER=block_collect.h block_id_factory.h block_manager.h client_request_server.h gc.h\
global_factory.h heart_manager.h layout_manager.h nameserver.h ns_define.h\
oplog.h oplog_sync_manager.h server_collect.h server_manager.h task.h task_manager.h\
database_helper.h family_collect.h family_manager.h
NAMSERVER_SOURCE_LIST=block_collect.cpp block_manager.cpp server_collect.cpp\
task.cpp task_manager.cpp server_manager.cpp layout_manager.cpp block_id_factory.cpp global_factory.cpp\
oplog.cpp oplog_sync_manager.cpp client_request_server.cpp gc.cpp\
ns_define.cpp nameserver.cpp heart_manager.cpp database_helper.cpp family_collect.cpp\
family_manager.cpp\
$(NAMESERVER_SOURCE_LIST_HEADER)
libnameserver_a_SOURCES=$(NAMSERVER_SOURCE_LIST)
libnameserver_a_LIBFLAGS=$(AM_LDFLAGS)
bin_PROGRAMS = nameserver #编译产生的bin文件
nameserver_SOURCES=$(NAMSERVER_SOURCE_LIST) service.cpp