diff --git a/.gitignore b/.gitignore index ab718fe0..567609b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1 @@ -build/ -cmake-build-debug/ -observer.log.* -deps/googletest/ -deps/jsoncpp/ -deps/libevent/ -.idea/ -.vscode/ -.vscode-server/ \ No newline at end of file +build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a4dbf94..e38e9fe9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,112 +1,130 @@ -# include 另外一个cmake 配置 -#INCLUDE(file1 [OPTIONAL]) - -cmake_minimum_required(VERSION 3.10) -set(CMAKE_CXX_STANDARD 14) -#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - -project(minidb) - -MESSAGE(STATUS "This is SOURCE dir " ${test_SOURCE_DIR}) -MESSAGE(STATUS "This is BINARY dir " ${test_BINARY_DIR}) -MESSAGE(STATUS "This is Project source dir " ${PROJECT_SOURCE_DIR}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) - - -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) -#SET(LIBRARY_OUTPUT_PATH <路径>) - -MESSAGE(STATUS "HOME dir: $ENV{HOME}") -#SET(ENV{变量名} 值) -IF(WIN32) - MESSAGE(STATUS "This is windows.") - ADD_DEFINITIONS(-DWIN32) -ELSEIF(WIN64) - MESSAGE(STATUS "This is windows.") - ADD_DEFINITIONS(-DWIN64) -ELSEIF(APPLE) - MESSAGE(STATUS "This is apple") - # normally __MACH__ has already been defined - ADD_DEFINITIONS(-D__MACH__ ) -ELSEIF(UNIX) - MESSAGE(STATUS "This is UNIX") - ADD_DEFINITIONS(-DUNIX -DLINUX) -ELSE() - MESSAGE(STATUS "This is UNKNOW OS") -ENDIF(WIN32) - -# This is for clangd plugin for vscode -#SET(CMAKE_COMMON_FLAGS ${CMAKE_COMMON_FLAGS} " -Wstring-plus-int -Wsizeof-array-argument -Wunused-variable -Wmissing-braces") -SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -Wall -DCMAKE_EXPORT_COMPILE_COMMANDS=1") -IF(DEBUG) - MESSAGE("DEBUG has been set as TRUE ${DEBUG}") - #"${CMAKE_COMMON_FLAGS} -O0 -g " ${CMAKE_COMMON_FLAGS}最好在""以内,防止被cmake 增加了; - SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG ") - ADD_DEFINITIONS(-DENABLE_DEBUG) -ELSEIF(NOT DEFINED ENV{DEBUG}) - MESSAGE("Disable debug") - SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2 -g ") -ELSE() - MESSAGE("Enable debug") - SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG") - ADD_DEFINITIONS(-DENABLE_DEBUG) -ENDIF() -SET(CMAKE_CXX_FLAGS ${CMAKE_COMMON_FLAGS}) -SET(CMAKE_C_FLAGS ${CMAKE_COMMON_FLAGS}) -MESSAGE("CMAKE_CXX_FLAGS is " ${CMAKE_CXX_FLAGS}) - - -IF (CMAKE_INSTALL_PREFIX) - MESSAGE("CMAKE_INSTALL_PREFIX has been set as " ${CMAKE_INSTALL_PREFIX} ) -ELSEIF(DEFINED ENV{CMAKE_INSTALL_PREFIX}) - SET(CMAKE_INSTALL_PREFIX $ENV{CMAKE_INSTALL_PREFIX}) -ELSE() - SET(CMAKE_INSTALL_PREFIX /tmp/${PROJECT_NAME}) -ENDIF() -MESSAGE("Install target dir is " ${CMAKE_INSTALL_PREFIX}) - - -# ADD_SUBDIRECTORY(src bin) bin 为目标目录, 可以省略 -ADD_SUBDIRECTORY(deps) -ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(unitest) -ADD_SUBDIRECTORY(test) - - -# install 准备安装的目录是cmakefile 的当前目录, 不是build 后生成的目录 -# Files 默认权限OWNER_WRITE, OWNER_READ, GROUP_READ,和WORLD_READ,即644权限 -# INSTALL(FILES docs/README DESTINATION ./ ) -# INSTALL(DIRECTORY docs DESTINATION ./ -# PATTERN "README" EXCLUDE) -# PERMISSIONS 可以直接替换 -#INSTALL(DIRECTORY bin DESTINATION ./ -# FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ -# DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) - -INSTALL(DIRECTORY etc DESTINATION . - FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) - -#INSTALL([[SCRIPT ] [CODE ]] [...]) -# script 表示安装时,调用cmake 脚步 -# code 表示安装时,执行cmake 命令, 例如 -INSTALL(CODE "MESSAGE(\"Sample install message.\")") -# EXEC_PROGRAM make时执行命令 -#EXEC_PROGRAM(Executable [directory in which to run] -# [ARGS ] -# [OUTPUT_VARIABLE ] - - - - -# ADD_TEST与ENABLE_TESTING 参考书籍 - -#EXEC_PROGRAM(Executable [directory in which to run] -# [ARGS ] -# [OUTPUT_VARIABLE ] -# [RETURN_VALUE ]) -# 生产make时,执行 -#EXEC_PROGRAM(ls ARGS "*.c" OUTPUT_VARIABLE LS_OUTPUT RETURN_VALUE -# LS_RVALUE) -#IF(not LS_RVALUE) -# MESSAGE(STATUS "ls result: " ${LS_OUTPUT}) -#ENDIF(not LS_RVALUE) +cmake_minimum_required(VERSION 3.25) + +# -- configure external project download -- # + +include(FetchContent) + +set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) +set(EVENT__DISABLE_OPENSSL ON) # pass these options \ +set(JSONCPP_WITH_TESTS OFF) # to external projects +set(JSONCPP_WITH_POST_BUILD_UNITTEST OFF) + +FetchContent_Declare( + event + GIT_REPOSITORY "https://github.com/libevent/libevent.git" + GIT_TAG "release-2.1.12-stable" + EXCLUDE_FROM_ALL + QUIET +) + +FetchContent_Declare( + jsoncpp + GIT_REPOSITORY "https://github.com/open-source-parsers/jsoncpp.git" + GIT_TAG "1.9.5" + EXCLUDE_FROM_ALL + QUIET +) + +FetchContent_Declare( + gtest + GIT_REPOSITORY "https://github.com/google/googletest" + GIT_TAG "v1.14.0" + EXCLUDE_FROM_ALL + QUIET +) + +FetchContent_MakeAvailable(event jsoncpp gtest) + +project(miniob LANGUAGES C CXX) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS true) + +# -- find threads library -- # + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) + +# -- when debug is enabled -- # +if(DEBUG OR ENV{DEBUG}) + message(STATUS "**DEBUG**") + add_compile_options(-Og -g -DDEBUG) +else() + message(STATUS "**NOT DEBUG**") + add_compile_options(-O2 -g) +endif() + +# -- specify platform -- # +if(APPLE) + message(STATUS "Platform: APPLE") + add_definitions(-D__MACH__ ) +elseif(UNIX) + message(STATUS "Platform: UNIX") + add_definitions(-DUNIX -DLINUX) +else() + message(WARNING "Platform: Unsupported OS") +endif() + +# -- configure common lib build command -- # +file(GLOB_RECURSE SRC common/*.cpp) +file(GLOB_RECURSE INC common/*.h) + +foreach(F ${INC}) + file(RELATIVE_PATH REL ${CMAKE_CURRENT_SOURCE_DIR}/miniob-client ${F}) + configure_file(miniob-client/${REL} include/common/${REL} COPYONLY) + unset(REL) +endforeach() + +add_library(common STATIC ${SRC}) +target_include_directories(common PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/include) + +# -- configure server build command -- # + +file(GLOB_RECURSE SRC miniob-server/*.cpp miniob-server/*.c) +file(GLOB_RECURSE INC miniob-server/*.h) + +foreach(F ${INC}) + file(RELATIVE_PATH REL ${CMAKE_CURRENT_SOURCE_DIR}/miniob-server ${F}) + configure_file(miniob-server/${REL} miniob-server-headers/${REL} COPYONLY) + unset(REL) +endforeach() + +add_executable(miniob-server ${SRC}) +target_link_libraries(miniob-server PUBLIC event jsoncpp_static dl Threads::Threads common) +target_include_directories(miniob-server PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/miniob-server-headers) + +add_library(miniob-server-lib STATIC ${SRC}) # this library is created for unittests +target_link_libraries(miniob-server-lib PUBLIC event jsoncpp_static dl Threads::Threads common) +target_include_directories(miniob-server-lib PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/miniob-server-headers) + +# -- configure client build command -- # + +file(GLOB_RECURSE SRC miniob-client/*.cpp) + +add_executable(miniob-client ${SRC}) +target_link_libraries(miniob-client common Threads::Threads dl) + + +# -- configure test build command -- # +file(GLOB_RECURSE SRC tests/*.cpp) +foreach(F ${SRC}) + get_filename_component(X ${F} NAME_WE) + message(STATUS "executable ${X}") + add_executable(${X} ${F}) + target_link_libraries(${X} miniob-server-lib) +endforeach() + +# -- configure unit-test build command -- # +enable_testing() +file(GLOB_RECURSE SRC unit-tests/*.cpp) +include(GoogleTest) +foreach(F ${SRC}) + get_filename_component(X ${F} NAME_WE) + message(STATUS "executable ${X}") + add_executable(${X} ${F}) + target_link_libraries(${X} Threads::Threads dl gtest gtest_main miniob-server-lib) + add_test(SystemInformationNew ${X}) +endforeach() diff --git a/HOW_TO_BUILD.md b/HOW_TO_BUILD.md new file mode 100644 index 00000000..23bf0e78 --- /dev/null +++ b/HOW_TO_BUILD.md @@ -0,0 +1,27 @@ +# How to build + +Step 1: generate configuration file + +```shell +cmake -S . -B build +``` + +Step 2: build + +```shell +cmake --build build +``` + +# Advanced Options + +If you want to debug into it: + +```shell +cmake --build build -DDEBUG=1 +``` + +If you want to build faster + +```shell +cmake --build build -j +``` diff --git a/deps/common/conf/ini.cpp b/common/conf/ini.cpp similarity index 100% rename from deps/common/conf/ini.cpp rename to common/conf/ini.cpp diff --git a/deps/common/conf/ini.h b/common/conf/ini.h similarity index 100% rename from deps/common/conf/ini.h rename to common/conf/ini.h diff --git a/deps/common/defs.h b/common/defs.h similarity index 100% rename from deps/common/defs.h rename to common/defs.h diff --git a/deps/common/io/io.cpp b/common/io/io.cpp similarity index 100% rename from deps/common/io/io.cpp rename to common/io/io.cpp diff --git a/deps/common/io/io.h b/common/io/io.h similarity index 100% rename from deps/common/io/io.h rename to common/io/io.h diff --git a/deps/common/io/roll_select_dir.cpp b/common/io/roll_select_dir.cpp similarity index 100% rename from deps/common/io/roll_select_dir.cpp rename to common/io/roll_select_dir.cpp diff --git a/deps/common/io/roll_select_dir.h b/common/io/roll_select_dir.h similarity index 100% rename from deps/common/io/roll_select_dir.h rename to common/io/roll_select_dir.h diff --git a/deps/common/io/select_dir.h b/common/io/select_dir.h similarity index 100% rename from deps/common/io/select_dir.h rename to common/io/select_dir.h diff --git a/deps/common/lang/bitmap.cpp b/common/lang/bitmap.cpp similarity index 100% rename from deps/common/lang/bitmap.cpp rename to common/lang/bitmap.cpp diff --git a/deps/common/lang/bitmap.h b/common/lang/bitmap.h similarity index 100% rename from deps/common/lang/bitmap.h rename to common/lang/bitmap.h diff --git a/deps/common/lang/mutex.cpp b/common/lang/mutex.cpp similarity index 100% rename from deps/common/lang/mutex.cpp rename to common/lang/mutex.cpp diff --git a/deps/common/lang/mutex.h b/common/lang/mutex.h similarity index 100% rename from deps/common/lang/mutex.h rename to common/lang/mutex.h diff --git a/deps/common/lang/serializable.h b/common/lang/serializable.h similarity index 100% rename from deps/common/lang/serializable.h rename to common/lang/serializable.h diff --git a/deps/common/lang/string.cpp b/common/lang/string.cpp similarity index 100% rename from deps/common/lang/string.cpp rename to common/lang/string.cpp diff --git a/deps/common/lang/string.h b/common/lang/string.h similarity index 100% rename from deps/common/lang/string.h rename to common/lang/string.h diff --git a/deps/common/log/log.cpp b/common/log/log.cpp similarity index 100% rename from deps/common/log/log.cpp rename to common/log/log.cpp diff --git a/deps/common/log/log.h b/common/log/log.h similarity index 100% rename from deps/common/log/log.h rename to common/log/log.h diff --git a/deps/common/math/md5.cpp b/common/math/md5.cpp similarity index 100% rename from deps/common/math/md5.cpp rename to common/math/md5.cpp diff --git a/deps/common/math/md5.h b/common/math/md5.h similarity index 100% rename from deps/common/math/md5.h rename to common/math/md5.h diff --git a/deps/common/math/random_generator.cpp b/common/math/random_generator.cpp similarity index 100% rename from deps/common/math/random_generator.cpp rename to common/math/random_generator.cpp diff --git a/deps/common/math/random_generator.h b/common/math/random_generator.h similarity index 100% rename from deps/common/math/random_generator.h rename to common/math/random_generator.h diff --git a/deps/common/math/regex.cpp b/common/math/regex.cpp similarity index 100% rename from deps/common/math/regex.cpp rename to common/math/regex.cpp diff --git a/deps/common/math/regex.h b/common/math/regex.h similarity index 100% rename from deps/common/math/regex.h rename to common/math/regex.h diff --git a/deps/common/metrics/console_reporter.cpp b/common/metrics/console_reporter.cpp similarity index 100% rename from deps/common/metrics/console_reporter.cpp rename to common/metrics/console_reporter.cpp diff --git a/deps/common/metrics/console_reporter.h b/common/metrics/console_reporter.h similarity index 100% rename from deps/common/metrics/console_reporter.h rename to common/metrics/console_reporter.h diff --git a/deps/common/metrics/histogram_snapshot.cpp b/common/metrics/histogram_snapshot.cpp similarity index 100% rename from deps/common/metrics/histogram_snapshot.cpp rename to common/metrics/histogram_snapshot.cpp diff --git a/deps/common/metrics/histogram_snapshot.h b/common/metrics/histogram_snapshot.h similarity index 100% rename from deps/common/metrics/histogram_snapshot.h rename to common/metrics/histogram_snapshot.h diff --git a/deps/common/metrics/log_reporter.cpp b/common/metrics/log_reporter.cpp similarity index 100% rename from deps/common/metrics/log_reporter.cpp rename to common/metrics/log_reporter.cpp diff --git a/deps/common/metrics/log_reporter.h b/common/metrics/log_reporter.h similarity index 100% rename from deps/common/metrics/log_reporter.h rename to common/metrics/log_reporter.h diff --git a/deps/common/metrics/metric.h b/common/metrics/metric.h similarity index 100% rename from deps/common/metrics/metric.h rename to common/metrics/metric.h diff --git a/deps/common/metrics/metrics.cpp b/common/metrics/metrics.cpp similarity index 100% rename from deps/common/metrics/metrics.cpp rename to common/metrics/metrics.cpp diff --git a/deps/common/metrics/metrics.h b/common/metrics/metrics.h similarity index 100% rename from deps/common/metrics/metrics.h rename to common/metrics/metrics.h diff --git a/deps/common/metrics/metrics_registry.cpp b/common/metrics/metrics_registry.cpp similarity index 100% rename from deps/common/metrics/metrics_registry.cpp rename to common/metrics/metrics_registry.cpp diff --git a/deps/common/metrics/metrics_registry.h b/common/metrics/metrics_registry.h similarity index 100% rename from deps/common/metrics/metrics_registry.h rename to common/metrics/metrics_registry.h diff --git a/deps/common/metrics/reporter.cpp b/common/metrics/reporter.cpp similarity index 100% rename from deps/common/metrics/reporter.cpp rename to common/metrics/reporter.cpp diff --git a/deps/common/metrics/reporter.h b/common/metrics/reporter.h similarity index 100% rename from deps/common/metrics/reporter.h rename to common/metrics/reporter.h diff --git a/deps/common/metrics/reservoir.cpp b/common/metrics/reservoir.cpp similarity index 100% rename from deps/common/metrics/reservoir.cpp rename to common/metrics/reservoir.cpp diff --git a/deps/common/metrics/reservoir.h b/common/metrics/reservoir.h similarity index 100% rename from deps/common/metrics/reservoir.h rename to common/metrics/reservoir.h diff --git a/deps/common/metrics/sampler.cpp b/common/metrics/sampler.cpp similarity index 100% rename from deps/common/metrics/sampler.cpp rename to common/metrics/sampler.cpp diff --git a/deps/common/metrics/sampler.h b/common/metrics/sampler.h similarity index 100% rename from deps/common/metrics/sampler.h rename to common/metrics/sampler.h diff --git a/deps/common/metrics/snapshot.h b/common/metrics/snapshot.h similarity index 100% rename from deps/common/metrics/snapshot.h rename to common/metrics/snapshot.h diff --git a/deps/common/metrics/timer_snapshot.cpp b/common/metrics/timer_snapshot.cpp similarity index 100% rename from deps/common/metrics/timer_snapshot.cpp rename to common/metrics/timer_snapshot.cpp diff --git a/deps/common/metrics/timer_snapshot.h b/common/metrics/timer_snapshot.h similarity index 100% rename from deps/common/metrics/timer_snapshot.h rename to common/metrics/timer_snapshot.h diff --git a/deps/common/metrics/uniform_reservoir.cpp b/common/metrics/uniform_reservoir.cpp similarity index 100% rename from deps/common/metrics/uniform_reservoir.cpp rename to common/metrics/uniform_reservoir.cpp diff --git a/deps/common/metrics/uniform_reservoir.h b/common/metrics/uniform_reservoir.h similarity index 100% rename from deps/common/metrics/uniform_reservoir.h rename to common/metrics/uniform_reservoir.h diff --git a/deps/common/mm/debug_new.cpp.skip b/common/mm/debug_new.cpp.skip similarity index 100% rename from deps/common/mm/debug_new.cpp.skip rename to common/mm/debug_new.cpp.skip diff --git a/deps/common/mm/debug_new.h b/common/mm/debug_new.h similarity index 100% rename from deps/common/mm/debug_new.h rename to common/mm/debug_new.h diff --git a/deps/common/mm/mem.cpp.skip b/common/mm/mem.cpp.skip similarity index 100% rename from deps/common/mm/mem.cpp.skip rename to common/mm/mem.cpp.skip diff --git a/deps/common/mm/mem.h b/common/mm/mem.h similarity index 100% rename from deps/common/mm/mem.h rename to common/mm/mem.h diff --git a/deps/common/mm/mem_pool.cpp b/common/mm/mem_pool.cpp similarity index 100% rename from deps/common/mm/mem_pool.cpp rename to common/mm/mem_pool.cpp diff --git a/deps/common/mm/mem_pool.h b/common/mm/mem_pool.h similarity index 100% rename from deps/common/mm/mem_pool.h rename to common/mm/mem_pool.h diff --git a/deps/common/os/os.cpp b/common/os/os.cpp similarity index 100% rename from deps/common/os/os.cpp rename to common/os/os.cpp diff --git a/deps/common/os/os.h b/common/os/os.h similarity index 100% rename from deps/common/os/os.h rename to common/os/os.h diff --git a/deps/common/os/path.cpp b/common/os/path.cpp similarity index 100% rename from deps/common/os/path.cpp rename to common/os/path.cpp diff --git a/deps/common/os/path.h b/common/os/path.h similarity index 100% rename from deps/common/os/path.h rename to common/os/path.h diff --git a/deps/common/os/pidfile.cpp b/common/os/pidfile.cpp similarity index 100% rename from deps/common/os/pidfile.cpp rename to common/os/pidfile.cpp diff --git a/deps/common/os/pidfile.h b/common/os/pidfile.h similarity index 100% rename from deps/common/os/pidfile.h rename to common/os/pidfile.h diff --git a/deps/common/os/process.cpp b/common/os/process.cpp similarity index 100% rename from deps/common/os/process.cpp rename to common/os/process.cpp diff --git a/deps/common/os/process.h b/common/os/process.h similarity index 100% rename from deps/common/os/process.h rename to common/os/process.h diff --git a/deps/common/os/process_param.cpp b/common/os/process_param.cpp similarity index 100% rename from deps/common/os/process_param.cpp rename to common/os/process_param.cpp diff --git a/deps/common/os/process_param.h b/common/os/process_param.h similarity index 100% rename from deps/common/os/process_param.h rename to common/os/process_param.h diff --git a/deps/common/os/signal.cpp b/common/os/signal.cpp similarity index 100% rename from deps/common/os/signal.cpp rename to common/os/signal.cpp diff --git a/deps/common/os/signal.h b/common/os/signal.h similarity index 100% rename from deps/common/os/signal.h rename to common/os/signal.h diff --git a/deps/common/seda/callback.cpp b/common/seda/callback.cpp similarity index 100% rename from deps/common/seda/callback.cpp rename to common/seda/callback.cpp diff --git a/deps/common/seda/callback.h b/common/seda/callback.h similarity index 100% rename from deps/common/seda/callback.h rename to common/seda/callback.h diff --git a/deps/common/seda/class_factory.h b/common/seda/class_factory.h similarity index 100% rename from deps/common/seda/class_factory.h rename to common/seda/class_factory.h diff --git a/deps/common/seda/event_dispatcher.cpp b/common/seda/event_dispatcher.cpp similarity index 100% rename from deps/common/seda/event_dispatcher.cpp rename to common/seda/event_dispatcher.cpp diff --git a/deps/common/seda/event_dispatcher.h b/common/seda/event_dispatcher.h similarity index 100% rename from deps/common/seda/event_dispatcher.h rename to common/seda/event_dispatcher.h diff --git a/deps/common/seda/example_stage.cpp b/common/seda/example_stage.cpp similarity index 100% rename from deps/common/seda/example_stage.cpp rename to common/seda/example_stage.cpp diff --git a/deps/common/seda/example_stage.h b/common/seda/example_stage.h similarity index 100% rename from deps/common/seda/example_stage.h rename to common/seda/example_stage.h diff --git a/deps/common/seda/init.cpp b/common/seda/init.cpp similarity index 100% rename from deps/common/seda/init.cpp rename to common/seda/init.cpp diff --git a/deps/common/seda/init.h b/common/seda/init.h similarity index 100% rename from deps/common/seda/init.h rename to common/seda/init.h diff --git a/deps/common/seda/kill_thread.cpp b/common/seda/kill_thread.cpp similarity index 100% rename from deps/common/seda/kill_thread.cpp rename to common/seda/kill_thread.cpp diff --git a/deps/common/seda/kill_thread.h b/common/seda/kill_thread.h similarity index 100% rename from deps/common/seda/kill_thread.h rename to common/seda/kill_thread.h diff --git a/deps/common/seda/metrics_report_event.cpp b/common/seda/metrics_report_event.cpp similarity index 100% rename from deps/common/seda/metrics_report_event.cpp rename to common/seda/metrics_report_event.cpp diff --git a/deps/common/seda/metrics_report_event.h b/common/seda/metrics_report_event.h similarity index 100% rename from deps/common/seda/metrics_report_event.h rename to common/seda/metrics_report_event.h diff --git a/deps/common/seda/metrics_stage.cpp b/common/seda/metrics_stage.cpp similarity index 100% rename from deps/common/seda/metrics_stage.cpp rename to common/seda/metrics_stage.cpp diff --git a/deps/common/seda/metrics_stage.h b/common/seda/metrics_stage.h similarity index 100% rename from deps/common/seda/metrics_stage.h rename to common/seda/metrics_stage.h diff --git a/deps/common/seda/seda_config.cpp b/common/seda/seda_config.cpp similarity index 100% rename from deps/common/seda/seda_config.cpp rename to common/seda/seda_config.cpp diff --git a/deps/common/seda/seda_config.h b/common/seda/seda_config.h similarity index 100% rename from deps/common/seda/seda_config.h rename to common/seda/seda_config.h diff --git a/deps/common/seda/seda_defs.h b/common/seda/seda_defs.h similarity index 100% rename from deps/common/seda/seda_defs.h rename to common/seda/seda_defs.h diff --git a/deps/common/seda/stage.cpp b/common/seda/stage.cpp similarity index 100% rename from deps/common/seda/stage.cpp rename to common/seda/stage.cpp diff --git a/deps/common/seda/stage.h b/common/seda/stage.h similarity index 100% rename from deps/common/seda/stage.h rename to common/seda/stage.h diff --git a/deps/common/seda/stage_event.cpp b/common/seda/stage_event.cpp similarity index 100% rename from deps/common/seda/stage_event.cpp rename to common/seda/stage_event.cpp diff --git a/deps/common/seda/stage_event.h b/common/seda/stage_event.h similarity index 100% rename from deps/common/seda/stage_event.h rename to common/seda/stage_event.h diff --git a/deps/common/seda/stage_factory.h b/common/seda/stage_factory.h similarity index 100% rename from deps/common/seda/stage_factory.h rename to common/seda/stage_factory.h diff --git a/deps/common/seda/thread_pool.cpp b/common/seda/thread_pool.cpp similarity index 100% rename from deps/common/seda/thread_pool.cpp rename to common/seda/thread_pool.cpp diff --git a/deps/common/seda/thread_pool.h b/common/seda/thread_pool.h similarity index 100% rename from deps/common/seda/thread_pool.h rename to common/seda/thread_pool.h diff --git a/deps/common/seda/timer_stage.cpp b/common/seda/timer_stage.cpp similarity index 100% rename from deps/common/seda/timer_stage.cpp rename to common/seda/timer_stage.cpp diff --git a/deps/common/seda/timer_stage.h b/common/seda/timer_stage.h similarity index 100% rename from deps/common/seda/timer_stage.h rename to common/seda/timer_stage.h diff --git a/deps/common/time/datetime.cpp b/common/time/datetime.cpp similarity index 100% rename from deps/common/time/datetime.cpp rename to common/time/datetime.cpp diff --git a/deps/common/time/datetime.h b/common/time/datetime.h similarity index 100% rename from deps/common/time/datetime.h rename to common/time/datetime.h diff --git a/deps/common/time/timeout_info.cpp b/common/time/timeout_info.cpp similarity index 100% rename from deps/common/time/timeout_info.cpp rename to common/time/timeout_info.cpp diff --git a/deps/common/time/timeout_info.h b/common/time/timeout_info.h similarity index 100% rename from deps/common/time/timeout_info.h rename to common/time/timeout_info.h diff --git a/deps/common/version.h b/common/version.h similarity index 100% rename from deps/common/version.h rename to common/version.h diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt deleted file mode 100644 index 35379735..00000000 --- a/deps/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ - - -ADD_SUBDIRECTORY(common) diff --git a/deps/common/CMakeLists.txt b/deps/common/CMakeLists.txt deleted file mode 100644 index 72d6a229..00000000 --- a/deps/common/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ - -PROJECT(common) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/..) -#find_file() 只会找一个文件 -#AUX_SOURCE_DIRECTORY(. SRC_LIST) -#FOREACH(F ${SRC_LIST}) -# MESSAGE(${F}) -#ENDFOREACH(F) - -FILE(GLOB_RECURSE ALL_SRC *.cpp) -FOREACH(F ${ALL_SRC}) - SET(SRC_LIST ${SRC_LIST} ${F}) - MESSAGE("Use " ${F}) -ENDFOREACH(F) - - -#SHARED,动态库 -#STATIC,静态库 -ADD_LIBRARY(common SHARED ${ALL_SRC} ) -ADD_LIBRARY(common_static STATIC ${ALL_SRC}) - -# 没有SET_TARGET_PROPERTIES, 是不能同时build 静态库和动态库, 如果只build 一种库, 就不需要这个功能 -SET_TARGET_PROPERTIES(common_static PROPERTIES OUTPUT_NAME "common") -GET_TARGET_PROPERTY(OUTPUT_VALUE common_static OUTPUT_NAME) -MESSAGE(STATUS "This is the func_static OUTPUT_NAME:" ${OUTPUT_VALUE}) - -# 编译静态库时,自动会把同名的动态库给删除, 因此需要临时设置一下 -SET_TARGET_PROPERTIES(common PROPERTIES CLEAN_DIRECT_OUTPUT 1) -SET_TARGET_PROPERTIES(common_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - -# 设置版本号 VERSION指代动态库版本,SOVERSION指代API版本 - - -SET(MAIJOR_VER 1) -SET(MINOR_VER 0) -SET(PATCH_VER 0) -SET(OTHER_VER 1) -ADD_DEFINITIONS(-DMAIJOR_VER=${MAIJOR_VER} -DMINOR_VER=${MINOR_VER} -DPATCH_VER=${PATCH_VER} -DOTHER_VER=${OTHER_VER}) - -SET_TARGET_PROPERTIES(common PROPERTIES VERSION ${MAIJOR_VER}.${MINOR_VER}.${PATCH_VER} SOVERSION ${MAIJOR_VER}) - -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../lib) -# Target 必须在定义 ADD_EXECUTABLE 之后, programs 不受这个限制 -# TARGETS和PROGRAMS 的默认权限是OWNER_EXECUTE, GROUP_EXECUTE, 和WORLD_EXECUTE,即755权限, programs 都是处理脚步类 -# 类型分为RUNTIME/LIBRARY/ARCHIVE, prog -INSTALL(TARGETS common common_static - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - -# 小心 安装的时候,不要变成include/func.h, 如果这样,第二次安装的时候会变成include/func.h/func.h -# INSTALL(FILES func.h DESTINATION include/) - -FILE(GLOB_RECURSE ALL_HEADER *.h) -FOREACH(F ${ALL_HEADER}) - file(RELATIVE_PATH RELAPATH_HEADER ${PROJECT_SOURCE_DIR} ${F}) # 获取相对路径 - get_filename_component(headDir ${RELAPATH_HEADER} DIRECTORY) - MESSAGE("Install " ${RELAPATH_HEADER} " to " ${CMAKE_INSTALL_PREFIX} "/" ${PROJECT_NAME} "/include/" ${headDir}) - INSTALL(FILES ${RELAPATH_HEADER} DESTINATION include/${headDir}) -ENDFOREACH(F) \ No newline at end of file diff --git a/docs/how_to_build.md b/docs/how_to_build.md deleted file mode 100644 index feae84b8..00000000 --- a/docs/how_to_build.md +++ /dev/null @@ -1,54 +0,0 @@ -# How to build -1. install cmake - - - -2. build libevent - -``` -git submodule add https://github.com/libevent/libevent deps/libevent -cd deps -cd libevent -git checkout release-2.1.12-stable -mkdir build -cd build -cmake .. -DEVENT__DISABLE_OPENSSL=ON -make -sudo make install -``` - -3. build google test -``` - -git submodule add https://github.com/google/googletest deps/googletest -cd deps -cd googletest -mkdir build -cd build -cmake .. -make -sudo make install -``` - -4. build jsoncpp -```shell - -git submodule add https://github.com/open-source-parsers/jsoncpp.git deps/jsoncpp -cd deps -cd jsoncpp -mkdir build -cd build -cmake -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF .. -make -sudo make install -``` - -5. build miniob - -```shell -cd `project home` -mkdir build -cd build -cmake .. -make -``` diff --git a/etc/observer.ini b/etc/miniob-server.ini similarity index 100% rename from etc/observer.ini rename to etc/miniob-server.ini diff --git a/main.cpp b/main.cpp deleted file mode 100644 index bc8f460d..00000000 --- a/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main() { - std::cout << "Hello, World!" << std::endl; - return 0; -} diff --git a/src/obclient/client.cpp b/miniob-client/client.cpp similarity index 100% rename from src/obclient/client.cpp rename to miniob-client/client.cpp diff --git a/miniob-server/CMakeLists.txt b/miniob-server/CMakeLists.txt new file mode 100644 index 00000000..477f37f4 --- /dev/null +++ b/miniob-server/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.22) + +include(FetchContent) + +FetchContent_Declare( + event + GIT_REPOSITORY "https://github.com/libevent/libevent.git" + GIT_TAG "release-2.1.12-stable" +) + +FetchContent_Declare( + jsoncpp + GIT_REPOSITORY "https://github.com/open-source-parsers/jsoncpp.git" + GIT_TAG "1.9.5" +) + +FetchContent_Declare( + common + GIT_REPOSITORY "https://github.com/Y-jiji/mini-ob-common.git" + GIT_TAG "main" +) + +FetchContent_MakeAvailable(common event jsoncpp) + +project(miniob-server LANGUAGES C CXX) + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) + +include_directories(.) + +file(GLOB_RECURSE SRC src/*.cpp src/*.c) +file(GLOB_RECURSE INC src/*.h) + +# -- copy src/*.h to ${CMAKE_BINARY_DIR}/include +foreach(F ${INC}) + file(RELATIVE_PATH REL ${CMAKE_CURRENT_SOURCE_DIR}/src ${F}) + configure_file(src/${REL} include/${REL} COPYONLY) + unset(REL) +endforeach() + +add_executable(miniob-server ${SRC}) +target_link_libraries(miniob-server PUBLIC event jsoncpp_static dl Threads::Threads common) +target_include_directories(miniob-server PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/include) diff --git a/src/observer/event/execution_plan_event.cpp b/miniob-server/event/execution_plan_event.cpp similarity index 100% rename from src/observer/event/execution_plan_event.cpp rename to miniob-server/event/execution_plan_event.cpp diff --git a/src/observer/event/execution_plan_event.h b/miniob-server/event/execution_plan_event.h similarity index 92% rename from src/observer/event/execution_plan_event.h rename to miniob-server/event/execution_plan_event.h index 67b33d7d..fad6865a 100644 --- a/src/observer/event/execution_plan_event.h +++ b/miniob-server/event/execution_plan_event.h @@ -15,7 +15,7 @@ See the Mulan PSL v2 for more details. */ #ifndef __OBSERVER_EVENT_EXECUTION_PLAN_EVENT_H__ #define __OBSERVER_EVENT_EXECUTION_PLAN_EVENT_H__ -#include "common/seda/stage_event.h" +#include #include "sql/parser/parse.h" class SQLStageEvent; @@ -40,4 +40,4 @@ class ExecutionPlanEvent : public common::StageEvent { Query *sqls_; }; -#endif // __OBSERVER_EVENT_EXECUTION_PLAN_EVENT_H__ \ No newline at end of file +#endif // __OBSERVER_EVENT_EXECUTION_PLAN_EVENT_H__ diff --git a/src/observer/event/session_event.cpp b/miniob-server/event/session_event.cpp similarity index 100% rename from src/observer/event/session_event.cpp rename to miniob-server/event/session_event.cpp diff --git a/src/observer/event/session_event.h b/miniob-server/event/session_event.h similarity index 100% rename from src/observer/event/session_event.h rename to miniob-server/event/session_event.h diff --git a/src/observer/event/sql_event.cpp b/miniob-server/event/sql_event.cpp similarity index 100% rename from src/observer/event/sql_event.cpp rename to miniob-server/event/sql_event.cpp diff --git a/src/observer/event/sql_event.h b/miniob-server/event/sql_event.h similarity index 100% rename from src/observer/event/sql_event.h rename to miniob-server/event/sql_event.h diff --git a/src/observer/event/storage_event.cpp b/miniob-server/event/storage_event.cpp similarity index 100% rename from src/observer/event/storage_event.cpp rename to miniob-server/event/storage_event.cpp diff --git a/src/observer/event/storage_event.h b/miniob-server/event/storage_event.h similarity index 100% rename from src/observer/event/storage_event.h rename to miniob-server/event/storage_event.h diff --git a/src/observer/handler/handler.h b/miniob-server/handler/handler.h similarity index 100% rename from src/observer/handler/handler.h rename to miniob-server/handler/handler.h diff --git a/src/observer/ini_setting.h b/miniob-server/ini_setting.h similarity index 100% rename from src/observer/ini_setting.h rename to miniob-server/ini_setting.h diff --git a/src/observer/init.cpp b/miniob-server/init.cpp similarity index 100% rename from src/observer/init.cpp rename to miniob-server/init.cpp diff --git a/src/observer/init.h b/miniob-server/init.h similarity index 100% rename from src/observer/init.h rename to miniob-server/init.h diff --git a/src/observer/main.cpp b/miniob-server/main.cpp similarity index 100% rename from src/observer/main.cpp rename to miniob-server/main.cpp diff --git a/src/observer/net/connection_context.h b/miniob-server/net/connection_context.h similarity index 100% rename from src/observer/net/connection_context.h rename to miniob-server/net/connection_context.h diff --git a/src/observer/net/server.cpp b/miniob-server/net/server.cpp similarity index 100% rename from src/observer/net/server.cpp rename to miniob-server/net/server.cpp diff --git a/src/observer/net/server.h b/miniob-server/net/server.h similarity index 100% rename from src/observer/net/server.h rename to miniob-server/net/server.h diff --git a/src/observer/net/server_param.h b/miniob-server/net/server_param.h similarity index 100% rename from src/observer/net/server_param.h rename to miniob-server/net/server_param.h diff --git a/src/observer/rc.cpp b/miniob-server/rc.cpp similarity index 100% rename from src/observer/rc.cpp rename to miniob-server/rc.cpp diff --git a/src/observer/rc.h b/miniob-server/rc.h similarity index 100% rename from src/observer/rc.h rename to miniob-server/rc.h diff --git a/src/observer/session/session.cpp b/miniob-server/session/session.cpp similarity index 100% rename from src/observer/session/session.cpp rename to miniob-server/session/session.cpp diff --git a/src/observer/session/session.h b/miniob-server/session/session.h similarity index 100% rename from src/observer/session/session.h rename to miniob-server/session/session.h diff --git a/src/observer/session/session_stage.cpp b/miniob-server/session/session_stage.cpp similarity index 100% rename from src/observer/session/session_stage.cpp rename to miniob-server/session/session_stage.cpp diff --git a/src/observer/session/session_stage.h b/miniob-server/session/session_stage.h similarity index 100% rename from src/observer/session/session_stage.h rename to miniob-server/session/session_stage.h diff --git a/src/observer/sql/executor/execute_stage.cpp b/miniob-server/sql/executor/execute_stage.cpp similarity index 100% rename from src/observer/sql/executor/execute_stage.cpp rename to miniob-server/sql/executor/execute_stage.cpp diff --git a/src/observer/sql/executor/execute_stage.h b/miniob-server/sql/executor/execute_stage.h similarity index 100% rename from src/observer/sql/executor/execute_stage.h rename to miniob-server/sql/executor/execute_stage.h diff --git a/src/observer/sql/executor/execution_node.cpp b/miniob-server/sql/executor/execution_node.cpp similarity index 100% rename from src/observer/sql/executor/execution_node.cpp rename to miniob-server/sql/executor/execution_node.cpp diff --git a/src/observer/sql/executor/execution_node.h b/miniob-server/sql/executor/execution_node.h similarity index 100% rename from src/observer/sql/executor/execution_node.h rename to miniob-server/sql/executor/execution_node.h diff --git a/src/observer/sql/executor/tuple.cpp b/miniob-server/sql/executor/tuple.cpp similarity index 100% rename from src/observer/sql/executor/tuple.cpp rename to miniob-server/sql/executor/tuple.cpp diff --git a/src/observer/sql/executor/tuple.h b/miniob-server/sql/executor/tuple.h similarity index 100% rename from src/observer/sql/executor/tuple.h rename to miniob-server/sql/executor/tuple.h diff --git a/src/observer/sql/executor/value.cpp b/miniob-server/sql/executor/value.cpp similarity index 100% rename from src/observer/sql/executor/value.cpp rename to miniob-server/sql/executor/value.cpp diff --git a/src/observer/sql/executor/value.h b/miniob-server/sql/executor/value.h similarity index 100% rename from src/observer/sql/executor/value.h rename to miniob-server/sql/executor/value.h diff --git a/src/observer/sql/optimizer/optimize_stage.cpp b/miniob-server/sql/optimizer/optimize_stage.cpp similarity index 100% rename from src/observer/sql/optimizer/optimize_stage.cpp rename to miniob-server/sql/optimizer/optimize_stage.cpp diff --git a/src/observer/sql/optimizer/optimize_stage.h b/miniob-server/sql/optimizer/optimize_stage.h similarity index 100% rename from src/observer/sql/optimizer/optimize_stage.h rename to miniob-server/sql/optimizer/optimize_stage.h diff --git a/src/observer/sql/parser/lex.yy.c b/miniob-server/sql/parser/lex.yy.c similarity index 100% rename from src/observer/sql/parser/lex.yy.c rename to miniob-server/sql/parser/lex.yy.c diff --git a/src/observer/sql/parser/lex.yy.h b/miniob-server/sql/parser/lex.yy.h similarity index 100% rename from src/observer/sql/parser/lex.yy.h rename to miniob-server/sql/parser/lex.yy.h diff --git a/src/observer/sql/parser/lex_sql.l b/miniob-server/sql/parser/lex_sql.l similarity index 100% rename from src/observer/sql/parser/lex_sql.l rename to miniob-server/sql/parser/lex_sql.l diff --git a/src/observer/sql/parser/parse.cpp b/miniob-server/sql/parser/parse.cpp similarity index 100% rename from src/observer/sql/parser/parse.cpp rename to miniob-server/sql/parser/parse.cpp diff --git a/src/observer/sql/parser/parse.h b/miniob-server/sql/parser/parse.h similarity index 100% rename from src/observer/sql/parser/parse.h rename to miniob-server/sql/parser/parse.h diff --git a/src/observer/sql/parser/parse_defs.h b/miniob-server/sql/parser/parse_defs.h similarity index 100% rename from src/observer/sql/parser/parse_defs.h rename to miniob-server/sql/parser/parse_defs.h diff --git a/src/observer/sql/parser/parse_stage.cpp b/miniob-server/sql/parser/parse_stage.cpp similarity index 100% rename from src/observer/sql/parser/parse_stage.cpp rename to miniob-server/sql/parser/parse_stage.cpp diff --git a/src/observer/sql/parser/parse_stage.h b/miniob-server/sql/parser/parse_stage.h similarity index 100% rename from src/observer/sql/parser/parse_stage.h rename to miniob-server/sql/parser/parse_stage.h diff --git a/src/observer/sql/parser/resolve_stage.cpp b/miniob-server/sql/parser/resolve_stage.cpp similarity index 100% rename from src/observer/sql/parser/resolve_stage.cpp rename to miniob-server/sql/parser/resolve_stage.cpp diff --git a/src/observer/sql/parser/resolve_stage.h b/miniob-server/sql/parser/resolve_stage.h similarity index 100% rename from src/observer/sql/parser/resolve_stage.h rename to miniob-server/sql/parser/resolve_stage.h diff --git a/src/observer/sql/parser/yacc_sql.tab.c b/miniob-server/sql/parser/yacc_sql.tab.c similarity index 100% rename from src/observer/sql/parser/yacc_sql.tab.c rename to miniob-server/sql/parser/yacc_sql.tab.c diff --git a/src/observer/sql/parser/yacc_sql.tab.h b/miniob-server/sql/parser/yacc_sql.tab.h similarity index 100% rename from src/observer/sql/parser/yacc_sql.tab.h rename to miniob-server/sql/parser/yacc_sql.tab.h diff --git a/src/observer/sql/parser/yacc_sql.y b/miniob-server/sql/parser/yacc_sql.y similarity index 100% rename from src/observer/sql/parser/yacc_sql.y rename to miniob-server/sql/parser/yacc_sql.y diff --git a/src/observer/sql/plan_cache/plan_cache_stage.cpp b/miniob-server/sql/plan_cache/plan_cache_stage.cpp similarity index 100% rename from src/observer/sql/plan_cache/plan_cache_stage.cpp rename to miniob-server/sql/plan_cache/plan_cache_stage.cpp diff --git a/src/observer/sql/plan_cache/plan_cache_stage.h b/miniob-server/sql/plan_cache/plan_cache_stage.h similarity index 100% rename from src/observer/sql/plan_cache/plan_cache_stage.h rename to miniob-server/sql/plan_cache/plan_cache_stage.h diff --git a/src/observer/sql/query_cache/query_cache_stage.cpp b/miniob-server/sql/query_cache/query_cache_stage.cpp similarity index 100% rename from src/observer/sql/query_cache/query_cache_stage.cpp rename to miniob-server/sql/query_cache/query_cache_stage.cpp diff --git a/src/observer/sql/query_cache/query_cache_stage.h b/miniob-server/sql/query_cache/query_cache_stage.h similarity index 100% rename from src/observer/sql/query_cache/query_cache_stage.h rename to miniob-server/sql/query_cache/query_cache_stage.h diff --git a/src/observer/storage/common/bplus_tree.cpp b/miniob-server/storage/common/bplus_tree.cpp similarity index 100% rename from src/observer/storage/common/bplus_tree.cpp rename to miniob-server/storage/common/bplus_tree.cpp diff --git a/src/observer/storage/common/bplus_tree.h b/miniob-server/storage/common/bplus_tree.h similarity index 100% rename from src/observer/storage/common/bplus_tree.h rename to miniob-server/storage/common/bplus_tree.h diff --git a/src/observer/storage/common/bplus_tree_index.cpp b/miniob-server/storage/common/bplus_tree_index.cpp similarity index 100% rename from src/observer/storage/common/bplus_tree_index.cpp rename to miniob-server/storage/common/bplus_tree_index.cpp diff --git a/src/observer/storage/common/bplus_tree_index.h b/miniob-server/storage/common/bplus_tree_index.h similarity index 100% rename from src/observer/storage/common/bplus_tree_index.h rename to miniob-server/storage/common/bplus_tree_index.h diff --git a/src/observer/storage/common/condition_filter.cpp b/miniob-server/storage/common/condition_filter.cpp similarity index 100% rename from src/observer/storage/common/condition_filter.cpp rename to miniob-server/storage/common/condition_filter.cpp diff --git a/src/observer/storage/common/condition_filter.h b/miniob-server/storage/common/condition_filter.h similarity index 100% rename from src/observer/storage/common/condition_filter.h rename to miniob-server/storage/common/condition_filter.h diff --git a/src/observer/storage/common/db.cpp b/miniob-server/storage/common/db.cpp similarity index 100% rename from src/observer/storage/common/db.cpp rename to miniob-server/storage/common/db.cpp diff --git a/src/observer/storage/common/db.h b/miniob-server/storage/common/db.h similarity index 100% rename from src/observer/storage/common/db.h rename to miniob-server/storage/common/db.h diff --git a/src/observer/storage/common/field_meta.cpp b/miniob-server/storage/common/field_meta.cpp similarity index 100% rename from src/observer/storage/common/field_meta.cpp rename to miniob-server/storage/common/field_meta.cpp diff --git a/src/observer/storage/common/field_meta.h b/miniob-server/storage/common/field_meta.h similarity index 100% rename from src/observer/storage/common/field_meta.h rename to miniob-server/storage/common/field_meta.h diff --git a/src/observer/storage/common/index.cpp b/miniob-server/storage/common/index.cpp similarity index 100% rename from src/observer/storage/common/index.cpp rename to miniob-server/storage/common/index.cpp diff --git a/src/observer/storage/common/index.h b/miniob-server/storage/common/index.h similarity index 100% rename from src/observer/storage/common/index.h rename to miniob-server/storage/common/index.h diff --git a/src/observer/storage/common/index_meta.cpp b/miniob-server/storage/common/index_meta.cpp similarity index 100% rename from src/observer/storage/common/index_meta.cpp rename to miniob-server/storage/common/index_meta.cpp diff --git a/src/observer/storage/common/index_meta.h b/miniob-server/storage/common/index_meta.h similarity index 100% rename from src/observer/storage/common/index_meta.h rename to miniob-server/storage/common/index_meta.h diff --git a/src/observer/storage/common/meta_util.cpp b/miniob-server/storage/common/meta_util.cpp similarity index 100% rename from src/observer/storage/common/meta_util.cpp rename to miniob-server/storage/common/meta_util.cpp diff --git a/src/observer/storage/common/meta_util.h b/miniob-server/storage/common/meta_util.h similarity index 100% rename from src/observer/storage/common/meta_util.h rename to miniob-server/storage/common/meta_util.h diff --git a/src/observer/storage/common/record_manager.cpp b/miniob-server/storage/common/record_manager.cpp similarity index 100% rename from src/observer/storage/common/record_manager.cpp rename to miniob-server/storage/common/record_manager.cpp diff --git a/src/observer/storage/common/record_manager.h b/miniob-server/storage/common/record_manager.h similarity index 100% rename from src/observer/storage/common/record_manager.h rename to miniob-server/storage/common/record_manager.h diff --git a/src/observer/storage/common/table.cpp b/miniob-server/storage/common/table.cpp similarity index 100% rename from src/observer/storage/common/table.cpp rename to miniob-server/storage/common/table.cpp diff --git a/src/observer/storage/common/table.h b/miniob-server/storage/common/table.h similarity index 100% rename from src/observer/storage/common/table.h rename to miniob-server/storage/common/table.h diff --git a/src/observer/storage/common/table_meta.cpp b/miniob-server/storage/common/table_meta.cpp similarity index 100% rename from src/observer/storage/common/table_meta.cpp rename to miniob-server/storage/common/table_meta.cpp diff --git a/src/observer/storage/common/table_meta.h b/miniob-server/storage/common/table_meta.h similarity index 100% rename from src/observer/storage/common/table_meta.h rename to miniob-server/storage/common/table_meta.h diff --git a/src/observer/storage/default/default_handler.cpp b/miniob-server/storage/default/default_handler.cpp similarity index 100% rename from src/observer/storage/default/default_handler.cpp rename to miniob-server/storage/default/default_handler.cpp diff --git a/src/observer/storage/default/default_handler.h b/miniob-server/storage/default/default_handler.h similarity index 100% rename from src/observer/storage/default/default_handler.h rename to miniob-server/storage/default/default_handler.h diff --git a/src/observer/storage/default/default_storage_stage.cpp b/miniob-server/storage/default/default_storage_stage.cpp similarity index 100% rename from src/observer/storage/default/default_storage_stage.cpp rename to miniob-server/storage/default/default_storage_stage.cpp diff --git a/src/observer/storage/default/default_storage_stage.h b/miniob-server/storage/default/default_storage_stage.h similarity index 100% rename from src/observer/storage/default/default_storage_stage.h rename to miniob-server/storage/default/default_storage_stage.h diff --git a/src/observer/storage/default/disk_buffer_pool.cpp b/miniob-server/storage/default/disk_buffer_pool.cpp similarity index 100% rename from src/observer/storage/default/disk_buffer_pool.cpp rename to miniob-server/storage/default/disk_buffer_pool.cpp diff --git a/src/observer/storage/default/disk_buffer_pool.h b/miniob-server/storage/default/disk_buffer_pool.h similarity index 99% rename from src/observer/storage/default/disk_buffer_pool.h rename to miniob-server/storage/default/disk_buffer_pool.h index 81d00889..b475716e 100644 --- a/src/observer/storage/default/disk_buffer_pool.h +++ b/miniob-server/storage/default/disk_buffer_pool.h @@ -24,7 +24,7 @@ See the Mulan PSL v2 for more details. */ #include #include "rc.h" -#include "common/mm/mem_pool.h" +#include typedef int PageNum; diff --git a/src/observer/storage/mem/mem_storage_stage.cpp b/miniob-server/storage/mem/mem_storage_stage.cpp similarity index 100% rename from src/observer/storage/mem/mem_storage_stage.cpp rename to miniob-server/storage/mem/mem_storage_stage.cpp diff --git a/src/observer/storage/mem/mem_storage_stage.h b/miniob-server/storage/mem/mem_storage_stage.h similarity index 100% rename from src/observer/storage/mem/mem_storage_stage.h rename to miniob-server/storage/mem/mem_storage_stage.h diff --git a/src/observer/storage/trx/trx.cpp b/miniob-server/storage/trx/trx.cpp similarity index 100% rename from src/observer/storage/trx/trx.cpp rename to miniob-server/storage/trx/trx.cpp diff --git a/src/observer/storage/trx/trx.h b/miniob-server/storage/trx/trx.h similarity index 100% rename from src/observer/storage/trx/trx.h rename to miniob-server/storage/trx/trx.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 0542e58b..00000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -PROJECT(miniob) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - - -ADD_SUBDIRECTORY(obclient) -ADD_SUBDIRECTORY(observer) - - - - - diff --git a/src/obclient/CMakeLists.txt b/src/obclient/CMakeLists.txt deleted file mode 100644 index 1435981d..00000000 --- a/src/obclient/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -PROJECT(obclient) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - - -#INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) -INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR}/../../deps /usr/local/include SYSTEM) -# 父cmake 设置的include_directories 和link_directories并不传导到子cmake里面 -#INCLUDE_DIRECTORIES(BEFORE ${CMAKE_INSTALL_PREFIX}/include) -LINK_DIRECTORIES(/usr/local/lib ${PROJECT_BINARY_DIR}/../../lib) - - -FILE(GLOB_RECURSE ALL_SRC *.cpp) -FOREACH (F ${ALL_SRC}) - - SET(PRJ_SRC ${PRJ_SRC} ${F}) - MESSAGE("Use " ${F}) - -ENDFOREACH (F) - - -# 指定目标文件位置 -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../bin) -MESSAGE("Binary directory:" ${EXECUTABLE_OUTPUT_PATH}) -ADD_EXECUTABLE(${PROJECT_NAME} ${PRJ_SRC}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} common pthread dl) - - -# Target 必须在定义 ADD_EXECUTABLE 之后, programs 不受这个限制 -# TARGETS和PROGRAMS 的默认权限是OWNER_EXECUTE, GROUP_EXECUTE, 和WORLD_EXECUTE,即755权限, programs 都是处理脚步类 -# 类型分为RUNTIME/LIBRARY/ARCHIVE, prog -INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/src/observer/CMakeLists.txt b/src/observer/CMakeLists.txt deleted file mode 100644 index 1e156f28..00000000 --- a/src/observer/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -PROJECT(observer) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - - -#INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) -INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../../deps /usr/local/include SYSTEM) -# 父cmake 设置的include_directories 和link_directories并不传导到子cmake里面 -#INCLUDE_DIRECTORIES(BEFORE ${CMAKE_INSTALL_PREFIX}/include) -LINK_DIRECTORIES(/usr/local/lib ${PROJECT_BINARY_DIR}/../../lib) - - -FILE(GLOB_RECURSE ALL_SRC *.cpp *.c) -FILE(GLOB MAIN_SRC main.cpp) -MESSAGE("MAIN SRC: " ${MAIN_SRC}) -FOREACH (F ${ALL_SRC}) - - IF (NOT ${F} STREQUAL ${MAIN_SRC}) - SET(LIB_SRC ${LIB_SRC} ${F}) - ENDIF() - - MESSAGE("Use " ${F}) - -ENDFOREACH (F) - -SET(LIBRARIES common pthread dl event jsoncpp) - -# 指定目标文件位置 -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../bin) -MESSAGE("Binary directory:" ${EXECUTABLE_OUTPUT_PATH}) -ADD_EXECUTABLE(${PROJECT_NAME} ${ALL_SRC}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBRARIES}) - -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../lib) -MESSAGE("Archive directory:" ${LIBRARY_OUTPUT_PATH}) -ADD_LIBRARY(${PROJECT_NAME}_static STATIC ${LIB_SRC}) -SET_TARGET_PROPERTIES(${PROJECT_NAME}_static PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME}_static ${LIBRARIES}) - - -# Target 必须在定义 ADD_EXECUTABLE 之后, programs 不受这个限制 -# TARGETS和PROGRAMS 的默认权限是OWNER_EXECUTE, GROUP_EXECUTE, 和WORLD_EXECUTE,即755权限, programs 都是处理脚本类 -# 类型分为RUNTIME/LIBRARY/ARCHIVE, prog -INSTALL(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index b69532c5..00000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -PROJECT(test) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - - -# 可以获取父cmake的变量 -MESSAGE("${CMAKE_COMMON_FLAGS}") - - -#INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) -INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR}/../deps /usr/local/include SYSTEM) -# 父cmake 设置的include_directories 和link_directories并不传导到子cmake里面 -#INCLUDE_DIRECTORIES(BEFORE ${CMAKE_INSTALL_PREFIX}/include) -LINK_DIRECTORIES(/usr/local/lib ${PROJECT_BINARY_DIR}/../lib) - - -IF (DEFINED ENV{LD_LIBRARY_PATH}) - SET(LD_LIBRARY_PATH_STR $ENV{LD_LIBRARY_PATH}) - #separate_arguments(LD_LIBRARY_PATH_STR) #只能处理空行 - string(REPLACE ":" ";" LD_LIBRARY_PATH_LIST ${LD_LIBRARY_PATH_STR}) - MESSAGE(" Add LD_LIBRARY_PATH to -L flags " ${LD_LIBRARY_PATH_LIST}) - LINK_DIRECTORIES(${LD_LIBRARY_PATH_LIST}) -ELSE () - LINK_DIRECTORIES(/usr/local/lib) -ENDIF () - - - -#get_filename_component( FileName -# PATH|ABSOLUTE|NAME|EXT|NAME_WE|REALPATH -# [CACHE]) -FILE(GLOB_RECURSE ALL_SRC *.cpp) -# AUX_SOURCE_DIRECTORY 类似功能 -FOREACH (F ${ALL_SRC}) - get_filename_component(prjName ${F} NAME_WE) - MESSAGE("Build ${prjName} according to ${F}") - ADD_EXECUTABLE(${prjName} ${F}) - TARGET_LINK_LIBRARIES(${prjName} common pthread dl observer_static) - -ENDFOREACH (F) - diff --git a/test/client_performance_test.cpp b/tests/client_performance_test.cpp similarity index 100% rename from test/client_performance_test.cpp rename to tests/client_performance_test.cpp diff --git a/unitest/bitmap_test.cpp b/unit-tests/bitmap_test.cpp similarity index 100% rename from unitest/bitmap_test.cpp rename to unit-tests/bitmap_test.cpp diff --git a/unitest/bp_manager_test.cpp b/unit-tests/bp_manager_test.cpp similarity index 100% rename from unitest/bp_manager_test.cpp rename to unit-tests/bp_manager_test.cpp diff --git a/unitest/bplus_tree_test.cpp b/unit-tests/bplus_tree_test.cpp similarity index 100% rename from unitest/bplus_tree_test.cpp rename to unit-tests/bplus_tree_test.cpp diff --git a/unitest/log_test.cpp b/unit-tests/log_test.cpp similarity index 100% rename from unitest/log_test.cpp rename to unit-tests/log_test.cpp diff --git a/unitest/log_test.h b/unit-tests/log_test.h similarity index 100% rename from unitest/log_test.h rename to unit-tests/log_test.h diff --git a/unitest/md5_test.cpp b/unit-tests/md5_test.cpp similarity index 100% rename from unitest/md5_test.cpp rename to unit-tests/md5_test.cpp diff --git a/unitest/md5_test.h b/unit-tests/md5_test.h similarity index 100% rename from unitest/md5_test.h rename to unit-tests/md5_test.h diff --git a/unitest/mem_pool_test.cpp b/unit-tests/mem_pool_test.cpp similarity index 100% rename from unitest/mem_pool_test.cpp rename to unit-tests/mem_pool_test.cpp diff --git a/unitest/path_test.cpp b/unit-tests/path_test.cpp similarity index 100% rename from unitest/path_test.cpp rename to unit-tests/path_test.cpp diff --git a/unitest/pidfile_test.cpp b/unit-tests/pidfile_test.cpp similarity index 100% rename from unitest/pidfile_test.cpp rename to unit-tests/pidfile_test.cpp diff --git a/unitest/rc_test.cpp b/unit-tests/rc_test.cpp similarity index 100% rename from unitest/rc_test.cpp rename to unit-tests/rc_test.cpp diff --git a/unitest/thread_test.h b/unit-tests/thread_test.h similarity index 100% rename from unitest/thread_test.h rename to unit-tests/thread_test.h diff --git a/unitest/CMakeLists.txt b/unitest/CMakeLists.txt deleted file mode 100644 index e0e064b5..00000000 --- a/unitest/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -PROJECT(unitest) -MESSAGE("Begin to build " ${PROJECT_NAME}) -MESSAGE(STATUS "This is PROJECT_BINARY_DIR dir " ${PROJECT_BINARY_DIR}) -MESSAGE(STATUS "This is PROJECT_SOURCE_DIR dir " ${PROJECT_SOURCE_DIR}) - - -# 可以获取父cmake的变量 -MESSAGE("${CMAKE_COMMON_FLAGS}") - - -#INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) -INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR}/../deps ${PROJECT_SOURCE_DIR}/../src/observer /usr/local/include SYSTEM) -# 父cmake 设置的include_directories 和link_directories并不传导到子cmake里面 -#INCLUDE_DIRECTORIES(BEFORE ${CMAKE_INSTALL_PREFIX}/include) -LINK_DIRECTORIES(/usr/local/lib /usr/local/lib64 ${PROJECT_BINARY_DIR}/../lib) - - -IF (DEFINED ENV{LD_LIBRARY_PATH}) - SET(LD_LIBRARY_PATH_STR $ENV{LD_LIBRARY_PATH}) - #separate_arguments(LD_LIBRARY_PATH_STR) #只能处理空行 - string(REPLACE ":" ";" LD_LIBRARY_PATH_LIST ${LD_LIBRARY_PATH_STR}) - MESSAGE(" Add LD_LIBRARY_PATH to -L flags " ${LD_LIBRARY_PATH_LIST}) - LINK_DIRECTORIES(${LD_LIBRARY_PATH_LIST}) -ELSE () - LINK_DIRECTORIES(/usr/local/lib) -ENDIF () - - -find_package(GTest CONFIG REQUIRED) - - -enable_testing() -include(GoogleTest) -#get_filename_component( FileName -# PATH|ABSOLUTE|NAME|EXT|NAME_WE|REALPATH -# [CACHE]) -FILE(GLOB_RECURSE ALL_SRC *.cpp) -# AUX_SOURCE_DIRECTORY 类似功能 -FOREACH (F ${ALL_SRC}) - get_filename_component(prjName ${F} NAME_WE) - MESSAGE("Build ${prjName} according to ${F}") - ADD_EXECUTABLE(${prjName} ${F}) - # 不是所有的单测都需要链接observer_static - TARGET_LINK_LIBRARIES(${prjName} common pthread dl gtest gtest_main observer_static) - gtest_discover_tests(${prjName}) -ENDFOREACH (F) -