diff --git a/CMakeLists.txt b/CMakeLists.txt index 576a396..d206d10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ add_subdirectory("third_party/gflags") set(GFLAGS_USE_TARGET_NAMESPACE ON) set(gflags_DIR "${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags") add_subdirectory("third_party/glog") -add_subdirectory("third_party/context") +# add_subdirectory("third_party/context") set(CURL_DISABLE_TESTS ON) set(CURL_CA_PATH @@ -189,7 +189,7 @@ set(TILE_SRCS "tile/base/thread/scoped_lock.cc" "tile/base/thread/spinlock.cc" "tile/base/memory_barrier.cc" - "tile/fiber/detail/fiber.cc" + # "tile/fiber/detail/fiber.cc" "tile/io/detail/eintr_safe.cc" "tile/io/native/acceptor.cc" "tile/io/descriptor.cc" @@ -238,7 +238,8 @@ target_include_directories( target_link_libraries( tile PUBLIC # -Wl,--start-group - nova_context zlib gflags::gflags glog::glog + # nova_context + zlib gflags::gflags glog::glog jsoncpp_static # -Wl,--end-group libcurl fmt) @@ -291,7 +292,7 @@ if(TILE_BUILD_TESTS) endmacro() tile_add_test(base_exposed_var_test "tile/base/exposed_var_test.cc") - tile_add_test(fiber_detail_scheduler_test "tile/fiber/detail/scheduler_test.cc") + # tile_add_test(fiber_detail_scheduler_test "tile/fiber/detail/scheduler_test.cc") tile_add_test(base_internal_meta_test "tile/base/internal/meta_test.cc") # tile_add_test(net_internal_http_engine_test # "tile/net/internal/http_engine_test.cc") @@ -380,7 +381,7 @@ if(TILE_BUILD_BENCHMARKS) target_sources(tile_bm_all PRIVATE ${benchmark_file}) endmacro() -tile_add_bm(fiber_detail_fiber_benchmark "tile/fiber/detail/fiber_benchmark.cc") + # tile_add_bm(fiber_detail_fiber_benchmark "tile/fiber/detail/fiber_benchmark.cc") tile_add_bm(base_casting_benchmark "tile/base/casting_benchmark.cc") tile_add_bm(base_thread_mutex_benchmark "tile/base/thread/mutex_benchmark.cc") tile_add_bm(base_encoding_benchmark "tile/base/encoding_benchmark.cc") diff --git a/tile/net/internal/http_engine.cc b/tile/net/internal/http_engine.cc index 2b12a2c..4296278 100644 --- a/tile/net/internal/http_engine.cc +++ b/tile/net/internal/http_engine.cc @@ -374,7 +374,7 @@ void HttpEngine::Join() { HttpEngine::HttpEngine() { auto ret = curl_global_init(CURL_GLOBAL_DEFAULT); TILE_CHECK(!ret, "Curl Init failed {}", ret); - for (auto i = 0; i < 1; ++i) { + for (auto i = 0; i < 5; ++i) { curl_client_groups.push_back(make_unique( FLAGS_tile_http_engine_workers_per_scheduling_group, i)); } diff --git a/tile/util/config.h b/tile/util/config.h new file mode 100644 index 0000000..2c4a545 --- /dev/null +++ b/tile/util/config.h @@ -0,0 +1,65 @@ +#ifndef TILE_UTIL_CONFIG_H +#define TILE_UTIL_CONFIG_H + +#pragma once + +#include "tile/base/ref_ptr.h" +#include "tile/base/slice.h" +#include + +namespace tile { +namespace util { +class Config : public RefCounted { +public: + using Keys = std::vector; + using Ptr = RefPtr; + + bool Has(const Slice &key) const; + +#define TILE_DECLARE_CONFIG_GETTER(type, name) \ + type Get##name(const Slice &key) const; \ + type Get##name(const Slice &key, type default_value) const; + +#define TILE_DECLARE_CONFIG_SETTER(type, name) \ + virtual void Set##name(const Slice &key, type value); + + std::string GetRawString(const Slice &key, const Slice &default_value) const; + + // getters + TILE_DECLARE_CONFIG_GETTER(std::string, String) + TILE_DECLARE_CONFIG_GETTER(int, Int) + TILE_DECLARE_CONFIG_GETTER(unsigned int, UInt) + TILE_DECLARE_CONFIG_GETTER(int16_t, Int16) + TILE_DECLARE_CONFIG_GETTER(int32_t, Int32) + TILE_DECLARE_CONFIG_GETTER(int64_t, Int64) + TILE_DECLARE_CONFIG_GETTER(uint16_t, UInt16) + TILE_DECLARE_CONFIG_GETTER(uint32_t, UInt32) + TILE_DECLARE_CONFIG_GETTER(uint64_t, UInt64) + TILE_DECLARE_CONFIG_GETTER(double, Double) + TILE_DECLARE_CONFIG_GETTER(bool, Bool) + +protected: + // setters + TILE_DECLARE_CONFIG_SETTER(const std::string &, String) + TILE_DECLARE_CONFIG_SETTER(int, Int) + TILE_DECLARE_CONFIG_SETTER(unsigned int, UInt) + TILE_DECLARE_CONFIG_SETTER(int16_t, Int16) + TILE_DECLARE_CONFIG_SETTER(int32_t, Int32) + TILE_DECLARE_CONFIG_SETTER(int64_t, Int64) + TILE_DECLARE_CONFIG_SETTER(uint16_t, UInt16) + TILE_DECLARE_CONFIG_SETTER(uint32_t, UInt32) + TILE_DECLARE_CONFIG_SETTER(uint64_t, UInt64) + TILE_DECLARE_CONFIG_SETTER(double, Double) + TILE_DECLARE_CONFIG_SETTER(bool, Bool) + +#undef TILE_DECLARE_CONFIG_GETTER +#undef TILE_DECLARE_CONFIG_SETTER + + void Remove(const Slice &key); + + Keys keys(const Slice &key_root = "") const; +}; +} // namespace util +} // namespace tile + +#endif // TILE_UTIL_CONFIG_H diff --git a/tile/util/layerd_config.h b/tile/util/layerd_config.h new file mode 100644 index 0000000..731f394 --- /dev/null +++ b/tile/util/layerd_config.h @@ -0,0 +1,25 @@ +#ifndef TILE_UTIL_LAYERD_CONFIG_H +#define TILE_UTIL_LAYERD_CONFIG_H + +#pragma once + +#include "tile/util/config.h" + +namespace tile { +namespace util { +class LayerdConfig : public Config { +public: +protected: + struct ConfigItem { + Config::Ptr cfg; + // 1 < 2 < 3 < 4 ... + int priority; + // can remove or set new? + bool writeable; + std::string label; + }; +}; +} // namespace util +} // namespace tile + +#endif // TILE_UTIL_LAYERD_CONFIG_H