From 66af6e9098dca594d35a0ea6dedf5a5324ea51f5 Mon Sep 17 00:00:00 2001 From: jiegeaiai Date: Wed, 27 Nov 2024 01:41:38 +0800 Subject: [PATCH] first --- .gitignore | 51 + 3rdparty/capo/make.hpp | 22 + 3rdparty/capo/noncopyable.hpp | 25 + 3rdparty/capo/random.hpp | 52 + 3rdparty/capo/scope_guard.hpp | 103 + 3rdparty/capo/spin_lock.hpp | 104 + 3rdparty/capo/stopwatch.hpp | 109 + 3rdparty/capo/type_name.hpp | 320 + 3rdparty/capo/unused.hpp | 23 + 3rdparty/gperftools/libtcmalloc_minimal.so.4 | 1 + .../gperftools/libtcmalloc_minimal.so.4.5.3 | 1 + 3rdparty/gperftools/tcmalloc.h | 163 + 3rdparty/gtest/CMakeLists.txt | 332 + 3rdparty/gtest/CONTRIBUTORS | 37 + 3rdparty/gtest/LICENSE | 28 + 3rdparty/gtest/README.md | 244 + 3rdparty/gtest/cmake/Config.cmake.in | 9 + 3rdparty/gtest/cmake/gtest.pc.in | 10 + 3rdparty/gtest/cmake/gtest_main.pc.in | 11 + 3rdparty/gtest/cmake/internal_utils.cmake | 358 + 3rdparty/gtest/cmake/libgtest.la.in | 21 + 3rdparty/gtest/docs/advanced.md | 2567 ++++++ 3rdparty/gtest/docs/faq.md | 753 ++ 3rdparty/gtest/docs/pkgconfig.md | 141 + 3rdparty/gtest/docs/primer.md | 567 ++ 3rdparty/gtest/docs/pump_manual.md | 190 + 3rdparty/gtest/docs/samples.md | 22 + .../gtest/include/gtest/gtest-death-test.h | 343 + 3rdparty/gtest/include/gtest/gtest-matchers.h | 750 ++ 3rdparty/gtest/include/gtest/gtest-message.h | 218 + .../gtest/include/gtest/gtest-param-test.h | 503 ++ 3rdparty/gtest/include/gtest/gtest-printers.h | 928 ++ 3rdparty/gtest/include/gtest/gtest-spi.h | 238 + .../gtest/include/gtest/gtest-test-part.h | 184 + .../gtest/include/gtest/gtest-typed-test.h | 330 + 3rdparty/gtest/include/gtest/gtest.h | 2478 ++++++ .../gtest/include/gtest/gtest_pred_impl.h | 359 + 3rdparty/gtest/include/gtest/gtest_prod.h | 61 + .../include/gtest/internal/custom/README.md | 56 + .../gtest/internal/custom/gtest-port.h | 37 + .../gtest/internal/custom/gtest-printers.h | 42 + .../include/gtest/internal/custom/gtest.h | 37 + .../internal/gtest-death-test-internal.h | 304 + .../include/gtest/internal/gtest-filepath.h | 211 + .../include/gtest/internal/gtest-internal.h | 1380 +++ .../include/gtest/internal/gtest-param-util.h | 883 ++ .../include/gtest/internal/gtest-port-arch.h | 107 + .../gtest/include/gtest/internal/gtest-port.h | 2231 +++++ .../include/gtest/internal/gtest-string.h | 171 + .../include/gtest/internal/gtest-type-util.h | 3335 ++++++++ .../gtest/internal/gtest-type-util.h.pump | 302 + 3rdparty/gtest/samples/prime_tables.h | 126 + 3rdparty/gtest/samples/sample1.cc | 66 + 3rdparty/gtest/samples/sample1.h | 41 + 3rdparty/gtest/samples/sample10_unittest.cc | 139 + 3rdparty/gtest/samples/sample1_unittest.cc | 151 + 3rdparty/gtest/samples/sample2.cc | 54 + 3rdparty/gtest/samples/sample2.h | 81 + 3rdparty/gtest/samples/sample2_unittest.cc | 107 + 3rdparty/gtest/samples/sample3-inl.h | 172 + 3rdparty/gtest/samples/sample3_unittest.cc | 149 + 3rdparty/gtest/samples/sample4.cc | 54 + 3rdparty/gtest/samples/sample4.h | 53 + 3rdparty/gtest/samples/sample4_unittest.cc | 53 + 3rdparty/gtest/samples/sample5_unittest.cc | 196 + 3rdparty/gtest/samples/sample6_unittest.cc | 224 + 3rdparty/gtest/samples/sample7_unittest.cc | 117 + 3rdparty/gtest/samples/sample8_unittest.cc | 154 + 3rdparty/gtest/samples/sample9_unittest.cc | 156 + 3rdparty/gtest/scripts/common.py | 83 + 3rdparty/gtest/scripts/fuse_gtest_files.py | 253 + 3rdparty/gtest/scripts/gen_gtest_pred_impl.py | 730 ++ 3rdparty/gtest/scripts/gtest-config.in | 274 + 3rdparty/gtest/scripts/pump.py | 855 ++ 3rdparty/gtest/scripts/release_docs.py | 158 + 3rdparty/gtest/scripts/upload.py | 1387 +++ 3rdparty/gtest/scripts/upload_gtest.py | 78 + 3rdparty/gtest/src/gtest-all.cc | 48 + 3rdparty/gtest/src/gtest-death-test.cc | 1653 ++++ 3rdparty/gtest/src/gtest-filepath.cc | 379 + 3rdparty/gtest/src/gtest-internal-inl.h | 1211 +++ 3rdparty/gtest/src/gtest-matchers.cc | 97 + 3rdparty/gtest/src/gtest-port.cc | 1399 +++ 3rdparty/gtest/src/gtest-printers.cc | 442 + 3rdparty/gtest/src/gtest-test-part.cc | 104 + 3rdparty/gtest/src/gtest-typed-test.cc | 118 + 3rdparty/gtest/src/gtest.cc | 6177 ++++++++++++++ 3rdparty/gtest/src/gtest_main.cc | 47 + 3rdparty/gtest/test/BUILD.bazel | 521 ++ .../googletest-break-on-failure-unittest.py | 208 + .../googletest-break-on-failure-unittest_.cc | 86 + .../test/googletest-catch-exceptions-test.py | 236 + .../test/googletest-catch-exceptions-test_.cc | 293 + 3rdparty/gtest/test/googletest-color-test.py | 127 + 3rdparty/gtest/test/googletest-color-test_.cc | 62 + .../gtest/test/googletest-death-test-test.cc | 1516 ++++ .../test/googletest-death-test_ex_test.cc | 92 + .../gtest/test/googletest-env-var-test.py | 117 + .../gtest/test/googletest-env-var-test_.cc | 122 + .../gtest/test/googletest-filepath-test.cc | 649 ++ .../gtest/test/googletest-filter-unittest.py | 639 ++ .../gtest/test/googletest-filter-unittest_.cc | 137 + .../test/googletest-json-outfiles-test.py | 191 + .../test/googletest-json-output-unittest.py | 778 ++ .../test/googletest-list-tests-unittest.py | 205 + .../test/googletest-list-tests-unittest_.cc | 156 + .../gtest/test/googletest-listener-test.cc | 518 ++ .../gtest/test/googletest-message-test.cc | 158 + .../gtest/test/googletest-options-test.cc | 216 + .../googletest-output-test-golden-lin.txt | 1140 +++ 3rdparty/gtest/test/googletest-output-test.py | 346 + .../gtest/test/googletest-output-test_.cc | 1157 +++ ...oogletest-param-test-invalid-name1-test.py | 63 + ...ogletest-param-test-invalid-name1-test_.cc | 50 + ...oogletest-param-test-invalid-name2-test.py | 62 + ...ogletest-param-test-invalid-name2-test_.cc | 55 + .../gtest/test/googletest-param-test-test.cc | 1055 +++ .../gtest/test/googletest-param-test-test.h | 51 + .../gtest/test/googletest-param-test2-test.cc | 61 + 3rdparty/gtest/test/googletest-port-test.cc | 1272 +++ .../gtest/test/googletest-printers-test.cc | 1620 ++++ .../gtest/test/googletest-shuffle-test.py | 323 + .../gtest/test/googletest-shuffle-test_.cc | 101 + .../gtest/test/googletest-test-part-test.cc | 230 + 3rdparty/gtest/test/googletest-test2_test.cc | 61 + .../test/googletest-throw-on-failure-test.py | 168 + .../test/googletest-throw-on-failure-test_.cc | 71 + .../test/googletest-uninitialized-test.py | 67 + .../test/googletest-uninitialized-test_.cc | 42 + 3rdparty/gtest/test/gtest-typed-test2_test.cc | 44 + 3rdparty/gtest/test/gtest-typed-test_test.cc | 462 + 3rdparty/gtest/test/gtest-typed-test_test.h | 65 + .../gtest/test/gtest-unittest-api_test.cc | 340 + 3rdparty/gtest/test/gtest_all_test.cc | 46 + .../test/gtest_assert_by_exception_test.cc | 116 + 3rdparty/gtest/test/gtest_environment_test.cc | 188 + 3rdparty/gtest/test/gtest_help_test.py | 170 + 3rdparty/gtest/test/gtest_help_test_.cc | 45 + 3rdparty/gtest/test/gtest_json_test_utils.py | 60 + .../gtest/test/gtest_list_output_unittest.py | 141 + .../gtest/test/gtest_list_output_unittest_.cc | 51 + 3rdparty/gtest/test/gtest_main_unittest.cc | 44 + 3rdparty/gtest/test/gtest_no_test_unittest.cc | 54 + .../gtest/test/gtest_pred_impl_unittest.cc | 2427 ++++++ .../gtest/test/gtest_premature_exit_test.cc | 126 + 3rdparty/gtest/test/gtest_prod_test.cc | 56 + 3rdparty/gtest/test/gtest_repeat_test.cc | 233 + ...test_skip_environment_check_output_test.py | 54 + .../gtest_skip_in_environment_setup_test.cc | 49 + 3rdparty/gtest/test/gtest_skip_test.cc | 55 + 3rdparty/gtest/test/gtest_sole_header_test.cc | 56 + 3rdparty/gtest/test/gtest_stress_test.cc | 248 + .../gtest_test_macro_stack_footprint_test.cc | 89 + 3rdparty/gtest/test/gtest_test_utils.py | 314 + 3rdparty/gtest/test/gtest_testbridge_test.py | 63 + 3rdparty/gtest/test/gtest_testbridge_test_.cc | 43 + .../test/gtest_throw_on_failure_ex_test.cc | 90 + 3rdparty/gtest/test/gtest_unittest.cc | 7488 +++++++++++++++++ .../gtest/test/gtest_xml_outfile1_test_.cc | 43 + .../gtest/test/gtest_xml_outfile2_test_.cc | 43 + .../gtest/test/gtest_xml_outfiles_test.py | 135 + .../gtest/test/gtest_xml_output_unittest.py | 389 + .../gtest/test/gtest_xml_output_unittest_.cc | 188 + 3rdparty/gtest/test/gtest_xml_test_utils.py | 196 + 3rdparty/gtest/test/production.cc | 35 + 3rdparty/gtest/test/production.h | 54 + CMakeLists.txt | 74 + LICENSE | 21 + demo/chat/CMakeLists.txt | 8 + demo/chat/main.cpp | 62 + demo/linux_service/client/CMakeLists.txt | 8 + demo/linux_service/client/main.cpp | 28 + demo/linux_service/service/CMakeLists.txt | 8 + demo/linux_service/service/main.cpp | 34 + demo/msg_que/CMakeLists.txt | 11 + demo/msg_que/main.cpp | 137 + demo/send_recv/CMakeLists.txt | 11 + demo/send_recv/main.cpp | 72 + demo/win_service/client/CMakeLists.txt | 8 + demo/win_service/client/main.cpp | 41 + demo/win_service/service/CMakeLists.txt | 8 + demo/win_service/service/main.cpp | 189 + include/libipc/buffer.h | 68 + include/libipc/condition.h | 39 + include/libipc/def.h | 73 + include/libipc/export.h | 54 + include/libipc/ipc.h | 200 + include/libipc/mutex.h | 39 + include/libipc/pool_alloc.h | 103 + include/libipc/rw_lock.h | 171 + include/libipc/semaphore.h | 37 + include/libipc/shm.h | 59 + performance.xlsx | Bin 0 -> 75641 bytes src/CMakeLists.txt | 81 + src/libipc/buffer.cpp | 87 + src/libipc/circ/elem_array.h | 141 + src/libipc/circ/elem_def.h | 109 + src/libipc/ipc.cpp | 778 ++ src/libipc/memory/alloc.h | 424 + src/libipc/memory/allocator_wrapper.h | 121 + src/libipc/memory/resource.h | 110 + src/libipc/memory/wrapper.h | 327 + src/libipc/platform/detail.h | 136 + src/libipc/platform/linux/a0/LICENSE | 24 + src/libipc/platform/linux/a0/README.md | 213 + src/libipc/platform/linux/a0/atomic.h | 36 + src/libipc/platform/linux/a0/clock.h | 60 + src/libipc/platform/linux/a0/empty.h | 13 + src/libipc/platform/linux/a0/err.c | 50 + src/libipc/platform/linux/a0/err.h | 33 + src/libipc/platform/linux/a0/err_macro.h | 52 + src/libipc/platform/linux/a0/ftx.h | 111 + src/libipc/platform/linux/a0/inline.h | 8 + src/libipc/platform/linux/a0/mtx.c | 420 + src/libipc/platform/linux/a0/mtx.h | 57 + src/libipc/platform/linux/a0/strconv.c | 64 + src/libipc/platform/linux/a0/strconv.h | 31 + src/libipc/platform/linux/a0/thread_local.h | 10 + src/libipc/platform/linux/a0/tid.c | 30 + src/libipc/platform/linux/a0/tid.h | 16 + src/libipc/platform/linux/a0/time.c | 124 + src/libipc/platform/linux/a0/time.h | 97 + src/libipc/platform/linux/a0/unused.h | 7 + src/libipc/platform/linux/condition.h | 66 + src/libipc/platform/linux/get_wait_time.h | 46 + src/libipc/platform/linux/mutex.h | 213 + src/libipc/platform/linux/sync_obj_impl.h | 69 + src/libipc/platform/platform.c | 13 + src/libipc/platform/platform.cpp | 9 + src/libipc/platform/posix/condition.h | 141 + src/libipc/platform/posix/get_wait_time.h | 39 + src/libipc/platform/posix/mutex.h | 252 + src/libipc/platform/posix/semaphore_impl.h | 99 + src/libipc/platform/posix/shm_posix.cpp | 200 + src/libipc/platform/win/condition.h | 119 + src/libipc/platform/win/get_sa.h | 35 + src/libipc/platform/win/mutex.h | 98 + src/libipc/platform/win/semaphore.h | 74 + src/libipc/platform/win/shm_win.cpp | 140 + src/libipc/platform/win/to_tchar.h | 74 + src/libipc/policy.h | 25 + src/libipc/pool_alloc.cpp | 17 + src/libipc/prod_cons.h | 433 + src/libipc/queue.h | 223 + src/libipc/shm.cpp | 113 + src/libipc/sync/condition.cpp | 77 + src/libipc/sync/mutex.cpp | 77 + src/libipc/sync/semaphore.cpp | 71 + src/libipc/sync/waiter.cpp | 22 + src/libipc/utility/concept.h | 29 + src/libipc/utility/id_pool.h | 103 + src/libipc/utility/log.h | 39 + src/libipc/utility/pimpl.h | 64 + src/libipc/utility/scope_guard.h | 64 + src/libipc/utility/utility.h | 64 + src/libipc/waiter.h | 87 + test/CMakeLists.txt | 28 + test/test.h | 86 + test/test_ipc.cpp | 189 + test/test_mem.cpp | 218 + test/test_platform.cpp | 31 + test/test_queue.cpp | 304 + test/test_shm.cpp | 102 + test/test_sync.cpp | 208 + test/test_thread_utility.cpp | 203 + test/test_waiter.cpp | 68 + test/thread_pool.h | 123 + 267 files changed, 78748 insertions(+) create mode 100644 .gitignore create mode 100644 3rdparty/capo/make.hpp create mode 100644 3rdparty/capo/noncopyable.hpp create mode 100644 3rdparty/capo/random.hpp create mode 100644 3rdparty/capo/scope_guard.hpp create mode 100644 3rdparty/capo/spin_lock.hpp create mode 100644 3rdparty/capo/stopwatch.hpp create mode 100644 3rdparty/capo/type_name.hpp create mode 100644 3rdparty/capo/unused.hpp create mode 100644 3rdparty/gperftools/libtcmalloc_minimal.so.4 create mode 100644 3rdparty/gperftools/libtcmalloc_minimal.so.4.5.3 create mode 100644 3rdparty/gperftools/tcmalloc.h create mode 100644 3rdparty/gtest/CMakeLists.txt create mode 100644 3rdparty/gtest/CONTRIBUTORS create mode 100644 3rdparty/gtest/LICENSE create mode 100644 3rdparty/gtest/README.md create mode 100644 3rdparty/gtest/cmake/Config.cmake.in create mode 100644 3rdparty/gtest/cmake/gtest.pc.in create mode 100644 3rdparty/gtest/cmake/gtest_main.pc.in create mode 100644 3rdparty/gtest/cmake/internal_utils.cmake create mode 100644 3rdparty/gtest/cmake/libgtest.la.in create mode 100644 3rdparty/gtest/docs/advanced.md create mode 100644 3rdparty/gtest/docs/faq.md create mode 100644 3rdparty/gtest/docs/pkgconfig.md create mode 100644 3rdparty/gtest/docs/primer.md create mode 100644 3rdparty/gtest/docs/pump_manual.md create mode 100644 3rdparty/gtest/docs/samples.md create mode 100644 3rdparty/gtest/include/gtest/gtest-death-test.h create mode 100644 3rdparty/gtest/include/gtest/gtest-matchers.h create mode 100644 3rdparty/gtest/include/gtest/gtest-message.h create mode 100644 3rdparty/gtest/include/gtest/gtest-param-test.h create mode 100644 3rdparty/gtest/include/gtest/gtest-printers.h create mode 100644 3rdparty/gtest/include/gtest/gtest-spi.h create mode 100644 3rdparty/gtest/include/gtest/gtest-test-part.h create mode 100644 3rdparty/gtest/include/gtest/gtest-typed-test.h create mode 100644 3rdparty/gtest/include/gtest/gtest.h create mode 100644 3rdparty/gtest/include/gtest/gtest_pred_impl.h create mode 100644 3rdparty/gtest/include/gtest/gtest_prod.h create mode 100644 3rdparty/gtest/include/gtest/internal/custom/README.md create mode 100644 3rdparty/gtest/include/gtest/internal/custom/gtest-port.h create mode 100644 3rdparty/gtest/include/gtest/internal/custom/gtest-printers.h create mode 100644 3rdparty/gtest/include/gtest/internal/custom/gtest.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-death-test-internal.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-filepath.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-internal.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-param-util.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-port-arch.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-port.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-string.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-type-util.h create mode 100644 3rdparty/gtest/include/gtest/internal/gtest-type-util.h.pump create mode 100644 3rdparty/gtest/samples/prime_tables.h create mode 100644 3rdparty/gtest/samples/sample1.cc create mode 100644 3rdparty/gtest/samples/sample1.h create mode 100644 3rdparty/gtest/samples/sample10_unittest.cc create mode 100644 3rdparty/gtest/samples/sample1_unittest.cc create mode 100644 3rdparty/gtest/samples/sample2.cc create mode 100644 3rdparty/gtest/samples/sample2.h create mode 100644 3rdparty/gtest/samples/sample2_unittest.cc create mode 100644 3rdparty/gtest/samples/sample3-inl.h create mode 100644 3rdparty/gtest/samples/sample3_unittest.cc create mode 100644 3rdparty/gtest/samples/sample4.cc create mode 100644 3rdparty/gtest/samples/sample4.h create mode 100644 3rdparty/gtest/samples/sample4_unittest.cc create mode 100644 3rdparty/gtest/samples/sample5_unittest.cc create mode 100644 3rdparty/gtest/samples/sample6_unittest.cc create mode 100644 3rdparty/gtest/samples/sample7_unittest.cc create mode 100644 3rdparty/gtest/samples/sample8_unittest.cc create mode 100644 3rdparty/gtest/samples/sample9_unittest.cc create mode 100644 3rdparty/gtest/scripts/common.py create mode 100644 3rdparty/gtest/scripts/fuse_gtest_files.py create mode 100644 3rdparty/gtest/scripts/gen_gtest_pred_impl.py create mode 100644 3rdparty/gtest/scripts/gtest-config.in create mode 100644 3rdparty/gtest/scripts/pump.py create mode 100644 3rdparty/gtest/scripts/release_docs.py create mode 100644 3rdparty/gtest/scripts/upload.py create mode 100644 3rdparty/gtest/scripts/upload_gtest.py create mode 100644 3rdparty/gtest/src/gtest-all.cc create mode 100644 3rdparty/gtest/src/gtest-death-test.cc create mode 100644 3rdparty/gtest/src/gtest-filepath.cc create mode 100644 3rdparty/gtest/src/gtest-internal-inl.h create mode 100644 3rdparty/gtest/src/gtest-matchers.cc create mode 100644 3rdparty/gtest/src/gtest-port.cc create mode 100644 3rdparty/gtest/src/gtest-printers.cc create mode 100644 3rdparty/gtest/src/gtest-test-part.cc create mode 100644 3rdparty/gtest/src/gtest-typed-test.cc create mode 100644 3rdparty/gtest/src/gtest.cc create mode 100644 3rdparty/gtest/src/gtest_main.cc create mode 100644 3rdparty/gtest/test/BUILD.bazel create mode 100644 3rdparty/gtest/test/googletest-break-on-failure-unittest.py create mode 100644 3rdparty/gtest/test/googletest-break-on-failure-unittest_.cc create mode 100644 3rdparty/gtest/test/googletest-catch-exceptions-test.py create mode 100644 3rdparty/gtest/test/googletest-catch-exceptions-test_.cc create mode 100644 3rdparty/gtest/test/googletest-color-test.py create mode 100644 3rdparty/gtest/test/googletest-color-test_.cc create mode 100644 3rdparty/gtest/test/googletest-death-test-test.cc create mode 100644 3rdparty/gtest/test/googletest-death-test_ex_test.cc create mode 100644 3rdparty/gtest/test/googletest-env-var-test.py create mode 100644 3rdparty/gtest/test/googletest-env-var-test_.cc create mode 100644 3rdparty/gtest/test/googletest-filepath-test.cc create mode 100644 3rdparty/gtest/test/googletest-filter-unittest.py create mode 100644 3rdparty/gtest/test/googletest-filter-unittest_.cc create mode 100644 3rdparty/gtest/test/googletest-json-outfiles-test.py create mode 100644 3rdparty/gtest/test/googletest-json-output-unittest.py create mode 100644 3rdparty/gtest/test/googletest-list-tests-unittest.py create mode 100644 3rdparty/gtest/test/googletest-list-tests-unittest_.cc create mode 100644 3rdparty/gtest/test/googletest-listener-test.cc create mode 100644 3rdparty/gtest/test/googletest-message-test.cc create mode 100644 3rdparty/gtest/test/googletest-options-test.cc create mode 100644 3rdparty/gtest/test/googletest-output-test-golden-lin.txt create mode 100644 3rdparty/gtest/test/googletest-output-test.py create mode 100644 3rdparty/gtest/test/googletest-output-test_.cc create mode 100644 3rdparty/gtest/test/googletest-param-test-invalid-name1-test.py create mode 100644 3rdparty/gtest/test/googletest-param-test-invalid-name1-test_.cc create mode 100644 3rdparty/gtest/test/googletest-param-test-invalid-name2-test.py create mode 100644 3rdparty/gtest/test/googletest-param-test-invalid-name2-test_.cc create mode 100644 3rdparty/gtest/test/googletest-param-test-test.cc create mode 100644 3rdparty/gtest/test/googletest-param-test-test.h create mode 100644 3rdparty/gtest/test/googletest-param-test2-test.cc create mode 100644 3rdparty/gtest/test/googletest-port-test.cc create mode 100644 3rdparty/gtest/test/googletest-printers-test.cc create mode 100644 3rdparty/gtest/test/googletest-shuffle-test.py create mode 100644 3rdparty/gtest/test/googletest-shuffle-test_.cc create mode 100644 3rdparty/gtest/test/googletest-test-part-test.cc create mode 100644 3rdparty/gtest/test/googletest-test2_test.cc create mode 100644 3rdparty/gtest/test/googletest-throw-on-failure-test.py create mode 100644 3rdparty/gtest/test/googletest-throw-on-failure-test_.cc create mode 100644 3rdparty/gtest/test/googletest-uninitialized-test.py create mode 100644 3rdparty/gtest/test/googletest-uninitialized-test_.cc create mode 100644 3rdparty/gtest/test/gtest-typed-test2_test.cc create mode 100644 3rdparty/gtest/test/gtest-typed-test_test.cc create mode 100644 3rdparty/gtest/test/gtest-typed-test_test.h create mode 100644 3rdparty/gtest/test/gtest-unittest-api_test.cc create mode 100644 3rdparty/gtest/test/gtest_all_test.cc create mode 100644 3rdparty/gtest/test/gtest_assert_by_exception_test.cc create mode 100644 3rdparty/gtest/test/gtest_environment_test.cc create mode 100644 3rdparty/gtest/test/gtest_help_test.py create mode 100644 3rdparty/gtest/test/gtest_help_test_.cc create mode 100644 3rdparty/gtest/test/gtest_json_test_utils.py create mode 100644 3rdparty/gtest/test/gtest_list_output_unittest.py create mode 100644 3rdparty/gtest/test/gtest_list_output_unittest_.cc create mode 100644 3rdparty/gtest/test/gtest_main_unittest.cc create mode 100644 3rdparty/gtest/test/gtest_no_test_unittest.cc create mode 100644 3rdparty/gtest/test/gtest_pred_impl_unittest.cc create mode 100644 3rdparty/gtest/test/gtest_premature_exit_test.cc create mode 100644 3rdparty/gtest/test/gtest_prod_test.cc create mode 100644 3rdparty/gtest/test/gtest_repeat_test.cc create mode 100644 3rdparty/gtest/test/gtest_skip_environment_check_output_test.py create mode 100644 3rdparty/gtest/test/gtest_skip_in_environment_setup_test.cc create mode 100644 3rdparty/gtest/test/gtest_skip_test.cc create mode 100644 3rdparty/gtest/test/gtest_sole_header_test.cc create mode 100644 3rdparty/gtest/test/gtest_stress_test.cc create mode 100644 3rdparty/gtest/test/gtest_test_macro_stack_footprint_test.cc create mode 100644 3rdparty/gtest/test/gtest_test_utils.py create mode 100644 3rdparty/gtest/test/gtest_testbridge_test.py create mode 100644 3rdparty/gtest/test/gtest_testbridge_test_.cc create mode 100644 3rdparty/gtest/test/gtest_throw_on_failure_ex_test.cc create mode 100644 3rdparty/gtest/test/gtest_unittest.cc create mode 100644 3rdparty/gtest/test/gtest_xml_outfile1_test_.cc create mode 100644 3rdparty/gtest/test/gtest_xml_outfile2_test_.cc create mode 100644 3rdparty/gtest/test/gtest_xml_outfiles_test.py create mode 100644 3rdparty/gtest/test/gtest_xml_output_unittest.py create mode 100644 3rdparty/gtest/test/gtest_xml_output_unittest_.cc create mode 100644 3rdparty/gtest/test/gtest_xml_test_utils.py create mode 100644 3rdparty/gtest/test/production.cc create mode 100644 3rdparty/gtest/test/production.h create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 demo/chat/CMakeLists.txt create mode 100644 demo/chat/main.cpp create mode 100644 demo/linux_service/client/CMakeLists.txt create mode 100644 demo/linux_service/client/main.cpp create mode 100644 demo/linux_service/service/CMakeLists.txt create mode 100644 demo/linux_service/service/main.cpp create mode 100644 demo/msg_que/CMakeLists.txt create mode 100644 demo/msg_que/main.cpp create mode 100644 demo/send_recv/CMakeLists.txt create mode 100644 demo/send_recv/main.cpp create mode 100644 demo/win_service/client/CMakeLists.txt create mode 100644 demo/win_service/client/main.cpp create mode 100644 demo/win_service/service/CMakeLists.txt create mode 100644 demo/win_service/service/main.cpp create mode 100644 include/libipc/buffer.h create mode 100644 include/libipc/condition.h create mode 100644 include/libipc/def.h create mode 100644 include/libipc/export.h create mode 100644 include/libipc/ipc.h create mode 100644 include/libipc/mutex.h create mode 100644 include/libipc/pool_alloc.h create mode 100644 include/libipc/rw_lock.h create mode 100644 include/libipc/semaphore.h create mode 100644 include/libipc/shm.h create mode 100644 performance.xlsx create mode 100644 src/CMakeLists.txt create mode 100644 src/libipc/buffer.cpp create mode 100644 src/libipc/circ/elem_array.h create mode 100644 src/libipc/circ/elem_def.h create mode 100644 src/libipc/ipc.cpp create mode 100644 src/libipc/memory/alloc.h create mode 100644 src/libipc/memory/allocator_wrapper.h create mode 100644 src/libipc/memory/resource.h create mode 100644 src/libipc/memory/wrapper.h create mode 100644 src/libipc/platform/detail.h create mode 100644 src/libipc/platform/linux/a0/LICENSE create mode 100644 src/libipc/platform/linux/a0/README.md create mode 100644 src/libipc/platform/linux/a0/atomic.h create mode 100644 src/libipc/platform/linux/a0/clock.h create mode 100644 src/libipc/platform/linux/a0/empty.h create mode 100644 src/libipc/platform/linux/a0/err.c create mode 100644 src/libipc/platform/linux/a0/err.h create mode 100644 src/libipc/platform/linux/a0/err_macro.h create mode 100644 src/libipc/platform/linux/a0/ftx.h create mode 100644 src/libipc/platform/linux/a0/inline.h create mode 100644 src/libipc/platform/linux/a0/mtx.c create mode 100644 src/libipc/platform/linux/a0/mtx.h create mode 100644 src/libipc/platform/linux/a0/strconv.c create mode 100644 src/libipc/platform/linux/a0/strconv.h create mode 100644 src/libipc/platform/linux/a0/thread_local.h create mode 100644 src/libipc/platform/linux/a0/tid.c create mode 100644 src/libipc/platform/linux/a0/tid.h create mode 100644 src/libipc/platform/linux/a0/time.c create mode 100644 src/libipc/platform/linux/a0/time.h create mode 100644 src/libipc/platform/linux/a0/unused.h create mode 100644 src/libipc/platform/linux/condition.h create mode 100644 src/libipc/platform/linux/get_wait_time.h create mode 100644 src/libipc/platform/linux/mutex.h create mode 100644 src/libipc/platform/linux/sync_obj_impl.h create mode 100644 src/libipc/platform/platform.c create mode 100644 src/libipc/platform/platform.cpp create mode 100644 src/libipc/platform/posix/condition.h create mode 100644 src/libipc/platform/posix/get_wait_time.h create mode 100644 src/libipc/platform/posix/mutex.h create mode 100644 src/libipc/platform/posix/semaphore_impl.h create mode 100644 src/libipc/platform/posix/shm_posix.cpp create mode 100644 src/libipc/platform/win/condition.h create mode 100644 src/libipc/platform/win/get_sa.h create mode 100644 src/libipc/platform/win/mutex.h create mode 100644 src/libipc/platform/win/semaphore.h create mode 100644 src/libipc/platform/win/shm_win.cpp create mode 100644 src/libipc/platform/win/to_tchar.h create mode 100644 src/libipc/policy.h create mode 100644 src/libipc/pool_alloc.cpp create mode 100644 src/libipc/prod_cons.h create mode 100644 src/libipc/queue.h create mode 100644 src/libipc/shm.cpp create mode 100644 src/libipc/sync/condition.cpp create mode 100644 src/libipc/sync/mutex.cpp create mode 100644 src/libipc/sync/semaphore.cpp create mode 100644 src/libipc/sync/waiter.cpp create mode 100644 src/libipc/utility/concept.h create mode 100644 src/libipc/utility/id_pool.h create mode 100644 src/libipc/utility/log.h create mode 100644 src/libipc/utility/pimpl.h create mode 100644 src/libipc/utility/scope_guard.h create mode 100644 src/libipc/utility/utility.h create mode 100644 src/libipc/waiter.h create mode 100644 test/CMakeLists.txt create mode 100644 test/test.h create mode 100644 test/test_ipc.cpp create mode 100644 test/test_mem.cpp create mode 100644 test/test_platform.cpp create mode 100644 test/test_queue.cpp create mode 100644 test/test_shm.cpp create mode 100644 test/test_sync.cpp create mode 100644 test/test_thread_utility.cpp create mode 100644 test/test_waiter.cpp create mode 100644 test/thread_pool.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b857371 --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# C++ objects and libs +*.slo +*.lo +*.o +*.a +*.la +*.lai +*.so +*.dll +*.dylib + +# Qt-es +object_script.*.Release +object_script.*.Debug +*_plugin_import.cpp +/.qmake.cache +/.qmake.stash +*.pro.user +*.pro.user.* +*.qbs.user +*.qbs.user.* +*.moc +moc_*.cpp +moc_*.h +qrc_*.cpp +ui_*.h +*.qmlc +*.jsc +Makefile* +*build-* +*build_* + +# Qt unit tests +target_wrapper.* + +# QtCreator +*.autosave + +# QtCreator Qml +*.qmlproject.user +*.qmlproject.user.* + +# QtCreator CMake +CMakeLists.txt.user* + +# My output files +build + +# vs +.vs +.vscode \ No newline at end of file diff --git a/3rdparty/capo/make.hpp b/3rdparty/capo/make.hpp new file mode 100644 index 0000000..908849c --- /dev/null +++ b/3rdparty/capo/make.hpp @@ -0,0 +1,22 @@ +/* + The Capo Library + Code covered by the MIT License + Author: mutouyun (http://orzz.org) +*/ + +#pragma once + +#include // std::decay +#include // std::forward + +namespace capo +{ + template