Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +ad67409904ed249e03a9dc12dbe685f2c02fba2e326808e5d05b1ad54972c0a2946d654046cac885adbd542c707f66064af5317fa527e0192f444901d51954f0 ./x64-windows-static/include/pulsar/c/version.h
Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,44 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_DEFINES_H_ +#define PULSAR_DEFINES_H_ + +#ifdef PULSAR_STATIC + +#define PULSAR_PUBLIC + +#else + +#ifdef _WIN32 + +#ifdef BUILDING_PULSAR +#define PULSAR_PUBLIC __declspec(dllexport) +#else +#define PULSAR_PUBLIC __declspec(dllimport) +#endif /*BUILDING_PULSAR*/ + +#else + +#define PULSAR_PUBLIC __attribute__((visibility("default"))) + +#endif /*_WIN32*/ + +#endif /*PULSAR_STATIC*/ + +#endif /* PULSAR_DEFINES_H_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZoACgkQT0AbyNP5 ++1WnAA/5AXvQKsF8hepyZiX7zr4oj2bLPPj2GqawF5Tw/Z5jy75W+xo/gxsT4WHK +CC9/1wprtj5TA78QkzerOteLVH6tQHQMZsVWjtzId1m5nXLwm9YkekrGM8geHpkh +sAzoTmsZer0JMEpam59TxUDtcLaB3ghG1KZfXACl/eDjvWNuN8nm7y4PP/7H/Ap8 +g/nAJc+NAJLDHP3XCBXF43FuXKkItVh3sJPnMr0iQpuLfmPrrdL/+ozwhPkLOUp1 +104zhsQ21d+j/d+p0WKFyr5m3zKLBf7KSs0LQZxpW9Mcea58sxrF/qDpwzt20gcO +BYxxMImjpEjyPnhH/YKVxCi3lp9sImk7zGMf1VyQLd+psBzXm5g/3/uL/MY1KLeL +hWjGaVvmYNUTciLIJA7B0QxGEZ+6CS6fnQEhE57ryuVwKb/AbuAgXxPSdpY58vUk +7zlXdfTJzwTBHYP8DJ6DElBQqm4kOfJR7460PeR8e/Q46G3f56T4sVvqlwXE0q+v +3kn50I+qfMtNalHrW95eAehrjmnPdWnTMcGLTVe27tRkIlHFlkBJkatzMlDGnA9n +1410JuO66fl65aV/V0+dOcoJiQb5Rj6PKdO+uMHskPNT2JFF0LUuJ7+RtjAzdANP +FlxhGAR7HfdGaATMxWUeZ2kkvZDkA4tt2N18GU4H+aLI6BPAPu0= +=Dzhy +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/defines.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +c1abe315e1825c04c562be66a6b93f12f3a5979e09c099ae6ab4739a6b709e4c7d53152faae33eaa070bcd545e40620947915375ca268b57deacede6808a3ef8 ./x64-windows-static/include/pulsar/defines.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib ============================================================================== Binary file - no diff available. Propchange: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xaEACgkQT0AbyNP5 ++1VjmxAAremOjCNL8ZcS6/PTUDzRuYgX0cZ0xCPYE4JmOzjFHGhVQE9dRDmvjPbi +XAS/MnMy+NQsSWPldV9ziKuppkX9MnzLqgDD+xiO4leosX09oNRZBxO+o3pa4Hra +HdSwAzoG6SKTSlyzDpm5Yw3UY/Dn7oMzTNFdG0L0T9AyvQ4wXpJooeondiD9JptK +Pfs0O44o6E+vF7J32d7EdzIzWApmyyuPxMcShXNbYvjfCNnAIv7saBJjgDqxn1Bm +M3RVjQrLJSPT2fsE1GeJrZGCk6gPmqaOixYfwaiG+pspRvL8wM9L/AoEcwJGDegi +C7db039H0iT+wN5g20YJdvNHc72i/+H6HS44sRQUEDvj5c+zS+6n0XAxOSvPGird +PTg5TXRQW1QnpF7ajs2izj3QIObfmuAH4nGaUv6sicaxbsUB70egEqW8vWYiIhiB +35By6LMwRC9MU5efN3si8u/GehrCQGi+D/HuGqNNx0LkObi+sP8GlE+AsZGBZ9OA +82W0IDX1ZeANZn9dBKF24Uh/+Ey5jRc16O8fDZen6oAxHPZvu/eIteJb8Qq+MdUQ +XZsnoHuAnvv8Q/7bfRANFm3RqwVJK//uWL7SdqgJQhdQzI2qSyTZkii0diHieY5w +mBHdD/8asHvdYyBpOkH45480XaJ7E/yGLF35tqdik7denaVT094= +=TfU+ +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar-static.lib.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +b07aab9bd3e2bf7062002ee561dfbdf93af0c68a646608a1087a5dc33c7d02d0c6d491170d4673819ab1d1579bf437cb0198835e9f16385e7c2829c3dd67a6d2 ./x64-windows-static/lib/pulsar-static.lib Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib ============================================================================== Binary file - no diff available. Propchange: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xaAACgkQT0AbyNP5 ++1U5uQ//aGFZ122jhm3WNPckZMXbOGzUYyvygBJ39/fWOKk2k85Mbb4ObJkJ6L31 +KUYNiZ56OsNYjxXCLovEEhVTcfTpS+bpIR3eE/UJnSoF/8O13WiBfRQM/lyvFWsT +fP7CR1DzrvPZwQvFkJ6UyZHJhhurh0eBbIdUPONqXr0y4lBgRus2IGZCSPeuAHGq +krBv5C2GIB6XMqLm9hJCh16UjcdHZCTHbHyeVLacjmea0efGwx8+hS0SygkUdfeB +QjZ9EFqbgYFR+Kg+WHpqF1W7+dz15OONlSdFj4KjHPdQ5gBDBNq/VxhsCVpkDQu/ +D2gKth4EQdPLBbB1coFKN+G5YKVCs1m9zjgL7N3ukEjQU2vZoKNA1Hzc9tDkFJfK +2o72sDLC7pffY5C5RYtK1yYM3T227bxNbLEB1XBBOpsZxxKcop7tGss4GoEgxkfS +G4LMnuawHVE+0q+Dpq5sFDp1FTze4v2l8r3Lqi54XDTcjltN4tQx5JMGiM++RYu1 +GVi45TGRALCCpUAT7e+2o1Gx3L3WVZ21zC3WRv/UJ2ws+9DUfgG4SbLkJZY2NCqs +aUAFqMzY8DMVCj7V35E/9bxcpPTj5PfpF41vqPtvSE3oUqLJZ1Zka1SKf3QTvXbL +kzhOfODPFY95EoZxtHuVQkP2Wq0QuayTcOFh4oou3P8aMcLRQBs= +=ERLT +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsar.lib.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +618574c812f975a2481b7645e3a369e1b9a2be6cce38c8a8e50b718f879b676e8b6a07d7c9032e11b7ea700284c7f52adc31fab4776a0f3ac5490e9b7fd86d50 ./x64-windows-static/lib/pulsar.lib Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib ============================================================================== Binary file - no diff available. Propchange: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xaIACgkQT0AbyNP5 ++1X1/w/+Lzb3vWKsL6u8QpXwBg0bYstVHQ1eXsFPRqBIoC2zue7QZE2/hVlXS1Ll +ND62ImJVVTyMg7Xx0/QMiACwyhfTYafCAiVwFtowfVSJ44+Uo9Aj1LOAMuQn/sai +9fOLm/7JkCHYb0n9V2ynHpDBV1DAbY5751woQK+ZO47FXRPB0N22t5BEmdJsX1Dd +c798VyXqUe2h6H+BF1WF8Jf9LGS+MWxHx3bVR0dic1Zmf2UrMcSxnD4zUU8Jv4ZS +tGU+yezZU0LQ1U+39yI1x0ctBRMMWymNLyMr9xCOyY4q++z3J9TOouq5K1MeAgcj +d/e7LgZPG/VBf29g82VsK5SWjgMAYQ/RzI0cvwrW+UWiABMRQbq8VuMRfhDWrYi0 +nV+YigFUGF8Lk/Hg1dIjyOH8X3ukWt+KvSNgdTiZWXGVzBSWyPqqeOG3jlxbysEd +SJjO9HU9wIX7H9I8h/FmxCkA+tL0J3VSS86dvcZwXkdNfz9VQMXlfVuilun2nGXi +4eSac8Q7UQhE28va1JIwhUCIUcBP4TnIYTZLg848iwnTQwVZdNeM52E41Oxnm8Vv +tNeOBaAAIr68c5VQcoN7FIqeEazPkq9lNbUUmb9ybt16VUYER1zlmY3rmGDcOg6o +vWPsKR4kOTraGffbwbzIcKhdb19V9qP6wVrMhLcr6GzkWzwq9/k= +=eHwU +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/lib/pulsarWithDeps.lib.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +2aea6cf7a9568e0e62bdcf170054b4d9735b350a4da3440f73ff794c69e2db4e177039eb17325902e268935c6da2b8b40d5063d4263aadd239c07cf754bf754f ./x64-windows-static/lib/pulsarWithDeps.lib Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll ============================================================================== Binary file - no diff available. Propchange: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xYgACgkQT0AbyNP5 ++1WLzhAAloAoOuV+OocSYQfnpMjVrUlfcav9tjVZgy7MXcFfVDHmXJj3Ukaf7E+6 +/7eMpLp1e9BbwI2ue/gx4SSs/7yDt2ip/UmQ6BdpwcfIjbUgVMiKFcfOdgeunm/x +f76gH6dxkkRZjRYcclwUGIUMF6IrFdD5TWmV0lJJtxUrMsk48W5ejC5+z51ku/t6 +RmyFxqOIoR6KVTnpx3ygTjj+xurEyxoWe+oPRwZm73YiygFEHw0ypvL30PJNfNR3 +eKgsAAb3b3it2YuYm2av3fBY9FF+VHF80HFUbQAjwIBveaP7I9RGo9BL036CFv+A +9KxsdmynaHIMfoql4c3H9EEEiENBfG+sgwnNFUV5HPwXQ/bnUVqBKRiOHEVqYiiT +573R1QdPKgTDUVu6jXgUAMRYzYt0s9oumUCBb3SL/GTiobbX0g8HCKtiQC3B1qQz +ioH1gNu0QeG0gX/jA5iOouJctBiLfifLmnrW/oBnItrUPG3QLlxQd2hSPZdhMqPL +tIVDOnHVDGQA6PXxFta5PhZfEOkvV+TKnc6aP4RRmdFeZ6wOaqgXCInQ2JPEIyGP +Wj13nHLgn6BPhpuYHDE8sUDOjmMriNHtNuKV/Rcd10o3rBUQ7+6x6VjYkMxztx4l +uS+t4kZT/b2HsYJP2ZjMmjsLo2rrNB+359x6olarVEm+GFfcKZ8= +=VhZk +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/bin/pulsar.dll.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +c07730cf80902a862b58335ef19765d7489e3753fc948368b81472e3284a562ab9e73f16e726cab9cfe8bffd89af5a082137805ec476e00ad24939a30be88c66 ./x86-windows-static/bin/pulsar.dll Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt Wed Nov 23 09:18:55 2022 @@ -0,0 +1,55 @@ +Detecting compiler hash for triplet x86-windows-static... +Detecting compiler hash for triplet x64-windows... +All requested packages are currently installed. +Restored 0 package(s) from C:\Users\runneradmin\AppData\Local\vcpkg\archives in 619.7 us. Use --debug to see more details. +Total install time: 1.119 ms +The package boost is compatible with built-in CMake targets: + + find_package(Boost REQUIRED [COMPONENTS <libs>...]) + target_link_libraries(main PRIVATE Boost::boost Boost::<lib1> Boost::<lib2> ...) + +The package zlib is compatible with built-in CMake targets: + + find_package(ZLIB REQUIRED) + target_link_libraries(main PRIVATE ZLIB::ZLIB) + +curl provides CMake targets: + + # this is heuristically generated, and may not be correct + find_package(CURL CONFIG REQUIRED) + target_link_libraries(main PRIVATE CURL::libcurl) + +dlfcn-win32 provides CMake targets: + + # this is heuristically generated, and may not be correct + find_package(dlfcn-win32 CONFIG REQUIRED) + target_link_libraries(main PRIVATE dlfcn-win32::dl) + +log4cxx provides CMake targets: + + # this is heuristically generated, and may not be correct + find_package(log4cxx CONFIG REQUIRED) + target_link_libraries(main PRIVATE log4cxx) + +The package openssl is compatible with built-in CMake targets: + + find_package(OpenSSL REQUIRED) + target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto) + +protobuf provides CMake targets: + + # this is heuristically generated, and may not be correct + find_package(protobuf CONFIG REQUIRED) + target_link_libraries(main PRIVATE protobuf::libprotoc protobuf::libprotobuf protobuf::libprotobuf-lite) + +snappy provides CMake targets: + + # this is heuristically generated, and may not be correct + find_package(Snappy CONFIG REQUIRED) + target_link_libraries(main PRIVATE Snappy::snappy) + +The package zstd provides CMake targets: + + find_package(zstd CONFIG REQUIRED) + target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:zstd::libzstd_shared>,zstd::libzstd_shared,zstd::libzstd_static>) + Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZMACgkQT0AbyNP5 ++1UIUQ//YxVlCwfwEnwlJXOPQYV4iQQClKRa0kjM5GNQjrWLx0jg3tJwSQ+LuKZf +ahKiLZsglDmCpxLwE6IR50MfCVFt9loc07jytnY1T0FNGx+OjwKTseXk8JuJ1qEZ +BtvYqtvZZfGsOGX1fjdtjZnl5ZeVeMjE24ZudAR3D4epo+BfRkfz84PSPBVOjQ5+ +NqgjouWxfsDALPSfUHPkBQo0Qcltik5IiNJWuyRSwC0tCQOICt4D5qbmk4Ly0ycm +mCcIO5Gn1X4iBZn6Nf40uae7DieKq8scGAcWEBdzzCi3Kssj2VLbRa6DqFpY1yS4 +zgn5S3KjJrh/upR+Vq3xqTi3J+Dc+d13C+ieQcgHg/6P8x+R1UseE1ZhgQ7Ivz/H +A2PNpeoFwwGMeoU4wQcIDCIYCsP1R3CX9bgXUHV34T6hkv619IwprbKeiJqD/GVZ +v5WyYTqRaScUhloe5/R+hYohqBKzyb0hMQzoisTmo9dp3i/EInHMcrwl//Ytz8zx +Jm+byj/dIyrG6xUrVkeRcL/+jdDaIdwzgfMQB0vJaagUrWiD6LhTRUSNGEO0knfJ +HHZYH8A5pKmTpghWU+XDVXrSS3ssXosPNvOTBlBWMq1+LWS8z5VbP2nkzFlWQnE4 +Ew718Rw/rQfHzYOwvRkxUovanpkxEHlB1hHH1bdLhxV56IllxgM= +=gYV2 +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/dependencies.txt.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +8f4eb7aa446bda5f2793712c01d8ec340ee24e7220a88ae46c0d0c7412f17cb02d11fa99d84656647d9fe7423876fa49824170cee3d25a8d80164ee4716e3f28 ./x86-windows-static/dependencies.txt Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,571 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_AUTHENTICATION_H_ +#define PULSAR_AUTHENTICATION_H_ + +#include <pulsar/Result.h> +#include <pulsar/defines.h> + +#include <functional> +#include <map> +#include <memory> +#include <string> +#include <vector> + +namespace pulsar { + +class ClientConfiguration; +class Authentication; + +class PULSAR_PUBLIC AuthenticationDataProvider { + public: + virtual ~AuthenticationDataProvider(); + + /** + * @return true if the authentication data contains data for TLS + */ + virtual bool hasDataForTls(); + + /** + * @return a client certificate chain or ânoneâ if the data is not available + */ + virtual std::string getTlsCertificates(); + + /** + * @return a private key for the client certificate or ânoneâ if the data is not available + */ + virtual std::string getTlsPrivateKey(); + + /** + * @return true if this authentication data contains data for HTTP + */ + virtual bool hasDataForHttp(); + + /** + * @return an authentication scheme or ânoneâ if the request is not authenticated + */ + virtual std::string getHttpAuthType(); + + /** + * @return the string of HTTP header or ânoneâ if the request is not authenticated + */ + virtual std::string getHttpHeaders(); + + /** + * @return true if authentication data contains data from Pulsar protocol + */ + virtual bool hasDataFromCommand(); + + /** + * @return authentication data which is stored in a command + */ + virtual std::string getCommandData(); + + protected: + AuthenticationDataProvider(); +}; + +typedef std::shared_ptr<AuthenticationDataProvider> AuthenticationDataPtr; +typedef std::shared_ptr<Authentication> AuthenticationPtr; +typedef std::map<std::string, std::string> ParamMap; + +class PULSAR_PUBLIC Authentication { + public: + virtual ~Authentication(); + + /** + * @return the authentication method name supported by this provider + */ + virtual const std::string getAuthMethodName() const = 0; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataContent the shared pointer of AuthenticationData. The content of AuthenticationData + * is changed to the internal data of the current instance. + * @return ResultOk or ResultAuthenticationError if authentication failed + */ + virtual Result getAuthData(AuthenticationDataPtr& authDataContent) { + authDataContent = authData_; + return ResultOk; + } + + /** + * Parse the authentication parameter string to a map whose key and value are both strings + * + * The parameter string can have multiple lines. The format of each line is a comma-separated âkey:valueâ + * string. + * + * For example, âk1:v1,k2:v2â is parsed to two key-value pairs `(k1, v1)` and `(k2, v2)`. + * + * @param authParamsString the authentication parameter string to be parsed + * @return the parsed map whose key and value are both strings + */ + static ParamMap parseDefaultFormatAuthParams(const std::string& authParamsString); + + protected: + Authentication(); + AuthenticationDataPtr authData_; + friend class ClientConfiguration; +}; + +/** + * AuthFactory is used to create instances of Authentication class when + * configuring a Client instance. It loads the authentication from an + * external plugin. + * + * To use authentication methods that are internally supported, you should + * use `AuthTls::create("my-cert.pem", "my-private.key")` or similar. + */ +class PULSAR_PUBLIC AuthFactory { + public: + static AuthenticationPtr Disabled(); + + /** + * Create an AuthenticationPtr with an empty ParamMap + * + * @see create(const std::string&, const ParamMap&) + */ + static AuthenticationPtr create(const std::string& pluginNameOrDynamicLibPath); + + /** + * Create an AuthenticationPtr with a ParamMap that is converted from authParamsString + * + * @see Authentication::parseDefaultFormatAuthParams + * @see create(const std::string&, const ParamMap&) + */ + static AuthenticationPtr create(const std::string& pluginNameOrDynamicLibPath, + const std::string& authParamsString); + + /** + * Create an AuthenticationPtr + * + * When the first parameter represents the plugin name, the type of authentication can be one of the + * following: + * - AuthTls (if the plugin name is âtlsâ) + * - AuthToken (if the plugin name is âtokenâ or âorg.apache.pulsar.client.impl.auth.AuthenticationTokenâ) + * - AuthAthenz (if the plugin name is âathenzâ or + * âorg.apache.pulsar.client.impl.auth.AuthenticationAthenzâ) + * - AuthOauth2 (if the plugin name is âoauth2tokenâ or + * âorg.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2â) + * + * @param pluginNameOrDynamicLibPath the plugin name or the path or a dynamic library that contains the + * implementation of Authentication + * @param params the ParamMap that is passed to Authentication::create method + */ + static AuthenticationPtr create(const std::string& pluginNameOrDynamicLibPath, ParamMap& params); + + protected: + static bool isShutdownHookRegistered_; + static std::vector<void*> loadedLibrariesHandles_; + static void release_handles(); +}; + +/** + * TLS implementation of Pulsar client authentication + */ +class PULSAR_PUBLIC AuthTls : public Authentication { + public: + AuthTls(AuthenticationDataPtr&); + ~AuthTls(); + + /** + * Create an AuthTls with a ParamMap + * + * It is equal to create(params[âtlsCertFileâ], params[âtlsKeyFileâ]) + * @see create(const std::string&, const std::string&) + */ + static AuthenticationPtr create(ParamMap& params); + + /** + * Create an AuthTls with an authentication parameter string + * + * @see Authentication::parseDefaultFormatAuthParams + */ + static AuthenticationPtr create(const std::string& authParamsString); + + /** + * Create an AuthTls with the required parameters + * + * @param certificatePath the file path for a client certificate + * @param privateKeyPath the file path for a client private key + */ + static AuthenticationPtr create(const std::string& certificatePath, const std::string& privateKeyPath); + + /** + * @return âtlsâ + */ + const std::string getAuthMethodName() const; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataTls the shared pointer of AuthenticationData. The content of AuthenticationData is + * changed to the internal data of the current instance. + * @return ResultOk + */ + Result getAuthData(AuthenticationDataPtr& authDataTls); + + private: + AuthenticationDataPtr authDataTls_; +}; + +typedef std::function<std::string()> TokenSupplier; + +/** + * Token based implementation of Pulsar client authentication + */ +class PULSAR_PUBLIC AuthToken : public Authentication { + public: + AuthToken(AuthenticationDataPtr&); + ~AuthToken(); + + /** + * Create an AuthToken with a ParamMap + * + * @param parameters it must contain a key-value, where key means how to get the token and value means the + * token source + * + * If the key is âtokenâ, the value is the token + * + * If the key is âfileâ, the value is the file that contains the token + * + * If the key is âenvâ, the value is the environment variable whose value is the token + * + * Otherwise, a `std::runtime_error` error is thrown. + * @see create(const std::string& authParamsString) + */ + static AuthenticationPtr create(ParamMap& params); + + /** + * Create an AuthToken with an authentication parameter string + * + * @see Authentication::parseDefaultFormatAuthParams + */ + static AuthenticationPtr create(const std::string& authParamsString); + + /** + * Create an authentication provider for token based authentication + * + * @param token + * a string containing the auth token + */ + static AuthenticationPtr createWithToken(const std::string& token); + + /** + * Create an authentication provider for token based authentication + * + * @param tokenSupplier + * a supplier of the client auth token + */ + static AuthenticationPtr create(const TokenSupplier& tokenSupplier); + + /** + * @return âtokenâ + */ + const std::string getAuthMethodName() const; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataToken the shared pointer of AuthenticationData. The content of AuthenticationData + * is changed to the internal data of the current instance. + * @return ResultOk + */ + Result getAuthData(AuthenticationDataPtr& authDataToken); + + private: + AuthenticationDataPtr authDataToken_; +}; + +/** + * Basic based implementation of Pulsar client authentication + */ +class PULSAR_PUBLIC AuthBasic : public Authentication { + public: + explicit AuthBasic(AuthenticationDataPtr&); + ~AuthBasic() override; + + /** + * Create an AuthBasic with a ParamMap + * + * It is equal to create(params[âusernameâ], params[âpasswordâ]) + * @see create(const std::string&, const std::string&) + */ + static AuthenticationPtr create(ParamMap& params); + + /** + * Create an AuthBasic with an authentication parameter string + * + * @param authParamsString the JSON format string: {"username": "admin", "password": "123456"} + */ + static AuthenticationPtr create(const std::string& authParamsString); + + /** + * Create an AuthBasic with the required parameters + */ + static AuthenticationPtr create(const std::string& username, const std::string& password); + + /** + * Create an AuthBasic with the required parameters + */ + static AuthenticationPtr create(const std::string& username, const std::string& password, + const std::string& method); + + /** + * @return âbasicâ + */ + const std::string getAuthMethodName() const override; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataBasic the shared pointer of AuthenticationData. The content of AuthenticationData + * is changed to the internal data of the current instance. + * @return ResultOk + */ + Result getAuthData(AuthenticationDataPtr& authDataBasic) override; + + private: + AuthenticationDataPtr authDataBasic_; +}; + +/** + * Athenz implementation of Pulsar client authentication + */ +class PULSAR_PUBLIC AuthAthenz : public Authentication { + public: + AuthAthenz(AuthenticationDataPtr&); + ~AuthAthenz(); + + /** + * Create an AuthAthenz with a ParamMap + * + * The required parameter keys are âtenantDomainâ, âtenantServiceâ, âproviderDomainâ, âprivateKeyâ, and + * âztsUrlâ + * + * @param params the key-value to construct ZTS client + * @see http://pulsar.apache.org/docs/en/security-athenz/ + */ + static AuthenticationPtr create(ParamMap& params); + + /** + * Create an AuthAthenz with an authentication parameter string + * + * @see Authentication::parseDefaultFormatAuthParams + */ + static AuthenticationPtr create(const std::string& authParamsString); + + /** + * @return âathenzâ + */ + const std::string getAuthMethodName() const; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataAthenz the shared pointer of AuthenticationData. The content of AuthenticationData + * is changed to the internal data of the current instance. + * @return ResultOk + */ + Result getAuthData(AuthenticationDataPtr& authDataAthenz); + + private: + AuthenticationDataPtr authDataAthenz_; +}; + +// OAuth 2.0 token and associated information. +// currently mainly works for access token +class Oauth2TokenResult { + public: + enum + { + undefined_expiration = -1 + }; + + Oauth2TokenResult(); + ~Oauth2TokenResult(); + + /** + * Set the access token string + * + * @param accessToken the access token string + */ + Oauth2TokenResult& setAccessToken(const std::string& accessToken); + + /** + * Set the ID token + * + * @param idToken the ID token + */ + Oauth2TokenResult& setIdToken(const std::string& idToken); + + /** + * Set the refresh token which can be used to obtain new access tokens using the same authorization grant + * or null for none + * + * @param refreshToken the refresh token + */ + Oauth2TokenResult& setRefreshToken(const std::string& refreshToken); + + /** + * Set the token lifetime + * + * @param expiresIn the token lifetime + */ + Oauth2TokenResult& setExpiresIn(const int64_t expiresIn); + + /** + * @return the access token string + */ + const std::string& getAccessToken() const; + + /** + * @return the ID token + */ + const std::string& getIdToken() const; + + /** + * @return the refresh token which can be used to obtain new access tokens using the same authorization + * grant or null for none + */ + const std::string& getRefreshToken() const; + + /** + * @return the token lifetime in milliseconds + */ + int64_t getExpiresIn() const; + + private: + // map to json "access_token" + std::string accessToken_; + // map to json "id_token" + std::string idToken_; + // map to json "refresh_token" + std::string refreshToken_; + // map to json "expires_in" + int64_t expiresIn_; +}; + +typedef std::shared_ptr<Oauth2TokenResult> Oauth2TokenResultPtr; + +class Oauth2Flow { + public: + virtual ~Oauth2Flow(); + + /** + * Initializes the authorization flow. + */ + virtual void initialize() = 0; + + /** + * Acquires an access token from the OAuth 2.0 authorization server. + * @return a token result including an access token. + */ + virtual Oauth2TokenResultPtr authenticate() = 0; + + /** + * Closes the authorization flow. + */ + virtual void close() = 0; + + protected: + Oauth2Flow(); +}; + +typedef std::shared_ptr<Oauth2Flow> FlowPtr; + +class CachedToken { + public: + virtual ~CachedToken(); + + /** + * @return true if the token has expired + */ + virtual bool isExpired() = 0; + + /** + * Get AuthenticationData from the current instance + * + * @return ResultOk or ResultAuthenticationError if authentication failed + */ + virtual AuthenticationDataPtr getAuthData() = 0; + + protected: + CachedToken(); +}; + +typedef std::shared_ptr<CachedToken> CachedTokenPtr; + +/** + * Oauth2 based implementation of Pulsar client authentication. + * Passed in parameter would be like: + * ``` + * "type": "client_credentials", + * "issuer_url": "https://accounts.google.com", + * "client_id": "d9ZyX97q1ef8Cr81WHVC4hFQ64vSlDK3", + * "client_secret": "on1uJ...k6F6R", + * "audience": "https://broker.example.com" + * ``` + * If passed in as std::string, it should be in Json format. + */ +class PULSAR_PUBLIC AuthOauth2 : public Authentication { + public: + AuthOauth2(ParamMap& params); + ~AuthOauth2(); + + /** + * Create an AuthOauth2 with a ParamMap + * + * The required parameter keys are âissuer_urlâ, âprivate_keyâ, and âaudienceâ + * + * @param parameters the key-value to create OAuth 2.0 client credentials + * @see http://pulsar.apache.org/docs/en/security-oauth2/#client-credentials + */ + static AuthenticationPtr create(ParamMap& params); + + /** + * Create an AuthOauth2 with an authentication parameter string + * + * @see Authentication::parseDefaultFormatAuthParams + */ + static AuthenticationPtr create(const std::string& authParamsString); + + /** + * @return âtokenâ + */ + const std::string getAuthMethodName() const; + + /** + * Get AuthenticationData from the current instance + * + * @param[out] authDataOauth2 the shared pointer of AuthenticationData. The content of AuthenticationData + * is changed to the internal data of the current instance. + * @return ResultOk or ResultAuthenticationError if authentication failed + */ + Result getAuthData(AuthenticationDataPtr& authDataOauth2); + + private: + FlowPtr flowPtr_; + CachedTokenPtr cachedTokenPtr_; +}; + +} // namespace pulsar + +#endif /* PULSAR_AUTHENTICATION_H_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xY4ACgkQT0AbyNP5 ++1XCGA/+P8CQZ0Cce+U38igghZ+iA/sy+WVlCIr5CtobzkVxLSym/9CixGvGbAI+ +T0Ux+DZfTYp5DB7JtqDm8cj6qbgt8HB0kZlmH2iZ6yORsjy+VVpzrhEcup0h/0TP +Lx2bHE3vSBuH5hgL0yJbSG1veMKzAsdz368pW7+yIPKQCrtv6oc+MwhVcRoEBcvA +x461MnjxDJP0HyA/eOK+NyFUnRzYWo3df3zkqFiO6Qi7Sce+S/ZvY+MoPdwRy1un +qrIj5cseNO3/s7grKhjEXfEP9L/CqED9yudglT3Ei5Hb0cZTOQinVyIZ8pRi3zKF +zvR0yU8+iVucUmHnWryQ3f1UzMXESLnLXct/p8lUP0u2beD1xDQp1B59FIgM41AM +QhFWS9DBPjsmjFyWB3hCqivYIQdvBc+cLwlpIU59YSxe7bUSIikXvNwVwhthRr09 ++EB95z9Ae1G/wgelj9A69sdx5ENohWMWv6RHDL4bJhGK/z5p/BYJHbZJWrpMO0Se +S9dkiZFK5fc9Gb1G9UTez2Iw6MUSHbcd+JIU4QpbJWdzbsPpqli6FjF4TL+exmd9 +ZLMcPXL29SIbmMDbacXhsf+Xqj5Y+avalC9W/7O+asS//k9wxQ1PQilHntyYypMV +0a8ijH4k+9O+6TMUEFyIW7CYSNGx0xZo8+hHmH+9WOUruw7S+ks= +=nQaL +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Authentication.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +bcab25147d95dec8d5071739e7d0c02424056d1fa9c2431be00f575f19b3d27e234a2bb2d9c6efd9f8775284f9dc2c7c66571d2ba0db45e4ac45fb4152fbf49a ./x86-windows-static/include/pulsar/Authentication.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,91 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef BATCH_RECEIVE_POLICY_HPP_ +#define BATCH_RECEIVE_POLICY_HPP_ + +#include <pulsar/defines.h> + +#include <memory> + +namespace pulsar { + +struct BatchReceivePolicyImpl; + +/** + * Configuration for message batch receive {@link Consumer#batchReceive()} {@link + * Consumer#batchReceiveAsync()}. + * + * <p>Batch receive policy can limit the number and bytes of messages in a single batch, and can specify a + * timeout for waiting for enough messages for this batch. + * + * <p>A batch receive action is completed as long as any one of the + * conditions (the batch has enough number or size of messages, or the waiting timeout is passed) are met. + * + * <p>Examples: + * 1.If set maxNumMessages = 10, maxSizeOfMessages = 1MB and without timeout, it + * means {@link Consumer#batchReceive()} will always wait until there is enough messages. + * 2.If set maxNumberOfMessages = 0, maxNumBytes = 0 and timeout = 100ms, it + * means {@link Consumer#batchReceive()} will wait for 100ms no matter whether there are enough messages. + * + * <p>Note: + * Must specify messages limitation(maxNumMessages, maxNumBytes) or wait timeout. + * Otherwise, {@link Messages} ingest {@link Message} will never end. + * + * @since 2.4.1 + */ +class PULSAR_PUBLIC BatchReceivePolicy { + public: + /** + * Default value: {maxNumMessage: -1, maxNumBytes: 10 * 1024 * 1024, timeoutMs: 100} + */ + BatchReceivePolicy(); + + /** + * + * @param maxNumMessage Max num message, if less than 0, it means no limit. + * @param maxNumBytes Max num bytes, if less than 0, it means no limit. + * @param timeoutMs If less than 0, it means no limit. + */ + BatchReceivePolicy(int maxNumMessage, long maxNumBytes, long timeoutMs); + + /** + * Get max time out ms. + * + * @return + */ + long getTimeoutMs() const; + + /** + * Get the maximum number of messages. + * @return + */ + int getMaxNumMessages() const; + + /** + * Get max num bytes. + * @return + */ + long getMaxNumBytes() const; + + private: + std::shared_ptr<BatchReceivePolicyImpl> impl_; +}; +} // namespace pulsar + +#endif /* BATCH_RECEIVE_POLICY_HPP_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xYoACgkQT0AbyNP5 ++1XGwQ//WmseLheTIbrU4udU0itrtT8a7ynIz7yExJ13uoRfbGHuPDa4r1VYMP4E +iw0e6yWzJFBqNghnyu8WbxyNgqiKasjeQXsDiVkXP6Pb1N2VriIm3tS9W0J+2CIl +4+LUFY2QhIvNR2zrLqbqb5XlJAJd6ouahzN4yFuof+o9jmWJLA4W8AEQY3l39g4f +UcO3E4Ws4HY0ROFxApRYYEj1FH5Nt6uqhkXmhMfmBi+sCaErhlctW7gJSztw0sZn +S2k7uASv7/b2G+4jMtjVxx0A1lV8oHbqAIuOoQQVy8QPTUDXtwrdzDWtzekCyHJB +TJAt/mlm1okR5l1fLvDAEYICY89rVY+erHUeFlhRi9rA5qECTrT/X5XW4mch0bhl +WhxXxt8Nzk1vrE97/1DsreORAKr0CPqKCPNKRFjJPORApnqOCosDwuxzjbsftiMO +V7f4ysQ76OZjxj1sdMn3zVsOR95Vfnt+PcslMTkyB0SW5vxbaUu7hX4/WZ3MF6dx ++KrpUeHwOEsZPbvO7DeCbo0cJSqPaPuEKAW4Dr/FQuqjkoaB+czQoyB3YYdlyUKw +ewGngx8WgUZPG4wz9Aw8g1+80FwABaiaIXtM3r+vE9o9F2YasTYKiHfp5OcCZjc1 +PuOHHu3717lcRQUSYHrfVhqJC0Uecz/KgZE8802U02yZ4CH9mqc= +=cNnL +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BatchReceivePolicy.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +56c71d814cb3526d751964c61f5cfec211a74f243be6eed4c6345dc13b61f0bff79dad48e7a81aff65713a982508c70844fca0546b56e3816894df40025c9c48 ./x86-windows-static/include/pulsar/BatchReceivePolicy.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,94 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_CPP_BROKERCONSUMERSTATS_H +#define PULSAR_CPP_BROKERCONSUMERSTATS_H + +#include <pulsar/ConsumerType.h> +#include <pulsar/Result.h> +#include <pulsar/defines.h> + +#include <functional> +#include <iostream> +#include <memory> + +namespace pulsar { +class BrokerConsumerStatsImplBase; +class PulsarWrapper; + +/* @note: isValid() or getXXX() methods are not allowed on an invalid BrokerConsumerStats */ +class PULSAR_PUBLIC BrokerConsumerStats { + private: + std::shared_ptr<BrokerConsumerStatsImplBase> impl_; + + public: + BrokerConsumerStats() = default; + explicit BrokerConsumerStats(std::shared_ptr<BrokerConsumerStatsImplBase> impl); + + virtual ~BrokerConsumerStats() = default; + + /** Returns true if the Stats are still valid **/ + virtual bool isValid() const; + + /** Returns the rate of messages delivered to the consumer. msg/s */ + virtual double getMsgRateOut() const; + + /** Returns the throughput delivered to the consumer. bytes/s */ + virtual double getMsgThroughputOut() const; + + /** Returns the rate of messages redelivered by this consumer. msg/s */ + virtual double getMsgRateRedeliver() const; + + /** Returns the Name of the consumer */ + virtual const std::string getConsumerName() const; + + /** Returns the Number of available message permits for the consumer */ + virtual uint64_t getAvailablePermits() const; + + /** Returns the Number of unacknowledged messages for the consumer */ + virtual uint64_t getUnackedMessages() const; + + /** Returns true if the consumer is blocked due to unacked messages. */ + virtual bool isBlockedConsumerOnUnackedMsgs() const; + + /** Returns the Address of this consumer */ + virtual const std::string getAddress() const; + + /** Returns the Timestamp of connection */ + virtual const std::string getConnectedSince() const; + + /** Returns Whether this subscription is Exclusive or Shared or Failover */ + virtual const ConsumerType getType() const; + + /** Returns the rate of messages expired on this subscription. msg/s */ + virtual double getMsgRateExpired() const; + + /** Returns the Number of messages in the subscription backlog */ + virtual uint64_t getMsgBacklog() const; + + /** @deprecated */ + std::shared_ptr<BrokerConsumerStatsImplBase> getImpl() const; + + friend class PulsarWrapper; + friend PULSAR_PUBLIC std::ostream &operator<<(std::ostream &os, const BrokerConsumerStats &obj); +}; +typedef std::function<void(Result result, BrokerConsumerStats brokerConsumerStats)> + BrokerConsumerStatsCallback; +} // namespace pulsar + +#endif // PULSAR_CPP_BROKERCONSUMERSTATS_H Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xYoACgkQT0AbyNP5 ++1XiKg//QqOReJHlD6a+duj5n6DGNMzEO9qLitaKmsjt4m3YVZNAdU1NXaVXBkBX +NcqIzS2AuAzpfUbv2gMs5BReEodfK6MP+nwdktI2fs0R7zc+gO0QR51vEFv3I6ma +SnocoCa+Ou4nC38j8gJ26TE+alZmX/SMfD11N2VQibu4dM+i5T55fUCF8fBTz33/ +rcCvrPQbRXK8TGWSA/Y3IdUdU0zezJwh+LjZyehbDZ4G0us0vDIRZhCltY9E5Y8T +xkgCjrW9neShLtiL18821+QDMRSDdnnmkI+1zWYa3YQz0IDHkE9tw3PbwYTHf1+D +yibyU2du/31WbId3OuVB0vkCUe2kNy4MayhtPqQJHNYF97z1Sx3rX8gxBwFtUgk/ +Ww7koYvAH9445WnE2Ga6eu4KwYiW6dpJEfG5R7Th97Tgx/cznxSBYwgiK9OX0NR8 +/Kccts36p4zqGvc/pKkftnqHc1XQzPnnbCiwL3E4dLEhACgqMibAvvVBJrGjysUb +e/jxkVLbLgkyG6w60uJh43drdUNJ5YY12AqW8d/i1SQc5RGtWFYJcLxEvmnGkLDH +hRBfFfDQzXZfvtQPFhwJwjgGN/7362IR7smdFjBH008LZ3bDp95ytYAygzEa3QgV +Z/kQHlC3nwlWLRz5eTSqxn9RKIKRbzmMS7ZdAomzxtQWRcGQUw0= +=5eS0 +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/BrokerConsumerStats.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +5eb73f1f378c906e65908562efc7eafa7a171d5f145c225b7566c68f85cf9bb02238f8652a7e2d9464090c98c4357dd18171191818f5f0d516ef83c2617ef5a3 ./x86-windows-static/include/pulsar/BrokerConsumerStats.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,386 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_CLIENT_HPP_ +#define PULSAR_CLIENT_HPP_ + +#include <pulsar/ClientConfiguration.h> +#include <pulsar/ConsoleLoggerFactory.h> +#include <pulsar/Consumer.h> +#include <pulsar/FileLoggerFactory.h> +#include <pulsar/Message.h> +#include <pulsar/MessageBuilder.h> +#include <pulsar/Producer.h> +#include <pulsar/Reader.h> +#include <pulsar/Result.h> +#include <pulsar/Schema.h> +#include <pulsar/defines.h> + +#include <string> + +namespace pulsar { +typedef std::function<void(Result, Producer)> CreateProducerCallback; +typedef std::function<void(Result, Consumer)> SubscribeCallback; +typedef std::function<void(Result, Reader)> ReaderCallback; +typedef std::function<void(Result, const std::vector<std::string>&)> GetPartitionsCallback; +typedef std::function<void(Result)> CloseCallback; + +class ClientImpl; +class PulsarFriend; +class PulsarWrapper; + +class PULSAR_PUBLIC Client { + public: + /** + * Create a Pulsar client object connecting to the specified cluster address and using the default + * configuration. + * + * @param serviceUrl the Pulsar endpoint to use (eg: pulsar://localhost:6650) + * @throw std::invalid_argument if `serviceUrl` is invalid + */ + Client(const std::string& serviceUrl); + + /** + * Create a Pulsar client object connecting to the specified cluster address and using the specified + * configuration. + * + * @param serviceUrl the Pulsar endpoint to use (eg: + * http://brokerv2-pdev.messaging.corp.gq1.yahoo.com:4080 for Sandbox access) + * @param clientConfiguration the client configuration to use + * @throw std::invalid_argument if `serviceUrl` is invalid + */ + Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration); + + /** + * Create a producer with default configuration + * + * @see createProducer(const std::string&, const ProducerConfiguration&, Producer&) + * + * @param topic the topic where the new producer will publish + * @param producer a non-const reference where the new producer will be copied + * @return ResultOk if the producer has been successfully created + * @return ResultError if there was an error + */ + Result createProducer(const std::string& topic, Producer& producer); + + /** + * Create a producer with specified configuration + * + * @see createProducer(const std::string&, const ProducerConfiguration&, Producer&) + * + * @param topic the topic where the new producer will publish + * @param conf the producer config to use + * @param producer a non-const reference where the new producer will be copied + * @return ResultOk if the producer has been successfully created + * @return ResultError if there was an error + */ + Result createProducer(const std::string& topic, const ProducerConfiguration& conf, Producer& producer); + + /** + * Asynchronously create a producer with the default ProducerConfiguration for publishing on a specific + * topic + * + * @param topic the name of the topic where to produce + * @param callback the callback that is triggered when the producer is created successfully or not + * @param callback Callback function that is invoked when the operation is completed + */ + void createProducerAsync(const std::string& topic, CreateProducerCallback callback); + + /** + * Asynchronously create a producer with the customized ProducerConfiguration for publishing on a specific + * topic + * + * @param topic the name of the topic where to produce + * @param conf the customized ProducerConfiguration + */ + void createProducerAsync(const std::string& topic, ProducerConfiguration conf, + CreateProducerCallback callback); + + /** + * Subscribe to a given topic and subscription combination with the default ConsumerConfiguration + * + * @param topic the topic name + * @param subscriptionName the subscription name + * @param[out] consumer the consumer instance to be returned + * @return ResultOk if it subscribes to the topic successfully + */ + Result subscribe(const std::string& topic, const std::string& subscriptionName, Consumer& consumer); + + /** + * Subscribe to a given topic and subscription combination with the customized ConsumerConfiguration + * + * @param topic the topic name + * @param subscriptionName the subscription name + * @param[out] consumer the consumer instance to be returned + * @return ResultOk if it subscribes to the topic successfully + */ + Result subscribe(const std::string& topic, const std::string& subscriptionName, + const ConsumerConfiguration& conf, Consumer& consumer); + + /** + * Asynchronously subscribe to a given topic and subscription combination with the default + * ConsumerConfiguration + * + * @param topic the topic name + * @param subscriptionName the subscription name + * @param callback the callback that is triggered when a given topic and subscription combination with the + * default ConsumerConfiguration are asynchronously subscribed successfully or not + */ + void subscribeAsync(const std::string& topic, const std::string& subscriptionName, + SubscribeCallback callback); + + /** + * Asynchronously subscribe to a given topic and subscription combination with the customized + * ConsumerConfiguration + * + * @param topic the topic name + * @param subscriptionName the subscription name + * @param conf the customized ConsumerConfiguration + * @param callback the callback that is triggered when a given topic and subscription combination with the + * customized ConsumerConfiguration are asynchronously subscribed successfully or not + */ + void subscribeAsync(const std::string& topic, const std::string& subscriptionName, + const ConsumerConfiguration& conf, SubscribeCallback callback); + + /** + * Subscribe to multiple topics under the same namespace. + * + * @param topics a list of topic names to subscribe to + * @param subscriptionName the subscription name + * @param[out] consumer the consumer instance to be returned + */ + Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName, + Consumer& consumer); + + /** + * Subscribe to multiple topics with the customized ConsumerConfiguration under the same namespace + * + * @param topics a list of topic names to subscribe to + * @param subscriptionName the subscription name + * @param conf the customized ConsumerConfiguration + * @param[out] consumer the consumer instance to be returned + */ + Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName, + const ConsumerConfiguration& conf, Consumer& consumer); + + /** + * Asynchronously subscribe to a list of topics and subscription combination using the default + ConsumerConfiguration + * + * @param topics the topic list + * @param subscriptionName the subscription name + * @param callback the callback that is triggered when a list of topics and subscription combination using + the default ConsumerConfiguration are asynchronously subscribed successfully or not + + */ + void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName, + SubscribeCallback callback); + + /** + * Asynchronously subscribe to a list of topics and subscription combination using the customized + * ConsumerConfiguration + * + * @param topics the topic list + * @param subscriptionName the subscription name + * @param conf the customized ConsumerConfiguration + * @param callback the callback that is triggered when a list of topics and subscription combination using + * the customized ConsumerConfiguration are asynchronously subscribed successfully or not + */ + void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName, + const ConsumerConfiguration& conf, SubscribeCallback callback); + + /** + * Subscribe to multiple topics, which match given regexPattern, under the same namespace. + */ + Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName, + Consumer& consumer); + + /** + * Subscribe to multiple topics (which match given regexPatterns) with the customized + * ConsumerConfiguration under the same namespace + */ + Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName, + const ConsumerConfiguration& conf, Consumer& consumer); + + /** + * Asynchronously subscribe to multiple topics (which match given regexPatterns) with the default + * ConsumerConfiguration under the same namespace + * + * @see subscribeWithRegexAsync(const std::string&, const std::string&, const ConsumerConfiguration&, + * SubscribeCallback) + */ + void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName, + SubscribeCallback callback); + + /** + * Asynchronously subscribe to multiple topics (which match given regexPatterns) with the customized + * ConsumerConfiguration under the same namespace + * + * @param regexPattern the regular expression for topics pattern + * @param subscriptionName the subscription name + * @param conf the ConsumerConfiguration + * @param callback the callback that is triggered when multiple topics with the customized + * ConsumerConfiguration under the same namespace are asynchronously subscribed successfully or not + */ + void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName, + const ConsumerConfiguration& conf, SubscribeCallback callback); + + /** + * Create a topic reader with given {@code ReaderConfiguration} for reading messages from the specified + * topic. + * <p> + * The Reader provides a low-level abstraction that allows for manual positioning in the topic, without + * using a + * subscription. Reader can only work on non-partitioned topics. + * <p> + * The initial reader positioning is done by specifying a message id. The options are: + * <ul> + * <li><code>MessageId.earliest</code> : Start reading from the earliest message available in the topic + * <li><code>MessageId.latest</code> : Start reading from the end topic, only getting messages published + * after the + * reader was created + * <li><code>MessageId</code> : When passing a particular message id, the reader will position itself on + * that + * specific position. The first message to be read will be the message next to the specified messageId. + * </ul> + * + * @param topic + * The name of the topic where to read + * @param startMessageId + * The message id where the reader will position itself. The first message returned will be the + * one after + * the specified startMessageId + * @param conf + * The {@code ReaderConfiguration} object + * @return The {@code Reader} object + */ + Result createReader(const std::string& topic, const MessageId& startMessageId, + const ReaderConfiguration& conf, Reader& reader); + + /** + * Asynchronously create a topic reader with the customized ReaderConfiguration for reading messages from + * the specified topic. + * + * The Reader provides a low-level abstraction that allows for manual positioning in the topic, without + * using a + * subscription. The reader can only work on non-partitioned topics. + * + * The initial reader positioning is done by specifying a message ID. The options are as below: + * <ul> + * <li><code>MessageId.earliest</code> : start reading from the earliest message available in the topic + * <li><code>MessageId.latest</code> : start reading from the latest topic, only getting messages + * published after the reader was created <li><code>MessageId</code> : when passing a particular message + * ID, the reader positions itself on that is the message next to the specified messageId. + * </ul> + * + * @param topic + * the name of the topic where to read + * @param startMessageId + * the message ID where the reader positions itself. The first message returned is the + * one after + * the specified startMessageId + * @param conf + * the ReaderConfiguration object + * @return the Reader object + */ + void createReaderAsync(const std::string& topic, const MessageId& startMessageId, + const ReaderConfiguration& conf, ReaderCallback callback); + + /** + * Get the list of partitions for a given topic. + * + * If the topic is partitioned, this will return a list of partition names. If the topic is not + * partitioned, the returned list will contain the topic name itself. + * + * This can be used to discover the partitions and create Reader, Consumer or Producer + * instances directly on a particular partition. + * + * @param topic + * the topic name + * @since 2.3.0 + */ + Result getPartitionsForTopic(const std::string& topic, std::vector<std::string>& partitions); + + /** + * Get the list of partitions for a given topic in asynchronous mode. + * + * If the topic is partitioned, this will return a list of partition names. If the topic is not + * partitioned, the returned list will contain the topic name itself. + * + * This can be used to discover the partitions and create Reader, Consumer or Producer + * instances directly on a particular partition. + * + * @param topic + * the topic name + * @param callback + * the callback that will be invoked when the list of partitions is available + * @since 2.3.0 + */ + void getPartitionsForTopicAsync(const std::string& topic, GetPartitionsCallback callback); + + /** + * + * @return + */ + Result close(); + + /** + * Asynchronously close the Pulsar client and release all resources. + * + * All producers, consumers, and readers are orderly closed. The client waits until all pending write + * requests are persisted. + * + * @param callback the callback that is triggered when the Pulsar client is asynchronously closed + * successfully or not + */ + void closeAsync(CloseCallback callback); + + /** + * Perform immediate shutdown of Pulsar client. + * + * Release all resources and close all producer, consumer, and readers without waiting + * for ongoing operations to complete. + */ + void shutdown(); + + /** + * @brief Get the number of alive producers on the current client. + * + * @return The number of alive producers on the current client. + */ + uint64_t getNumberOfProducers(); + + /** + * @brief Get the number of alive consumers on the current client. + * + * @return The number of alive consumers on the current client. + */ + uint64_t getNumberOfConsumers(); + + private: + Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration, + bool poolConnections); + Client(const std::shared_ptr<ClientImpl>); + + friend class PulsarFriend; + friend class PulsarWrapper; + std::shared_ptr<ClientImpl> impl_; +}; +} // namespace pulsar + +#endif /* PULSAR_CLIENT_HPP_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xYkACgkQT0AbyNP5 ++1WFPA/+Jhdp9OsSU2afpVIJHoah+b8m3kez1Pv2FHfdaOBmZ1UVd736i0LuQ8q6 +mntOWM/apyUrYZnyMcanLzIjaEQw0oQtdqomOExbkhk/5fSxc5bm1mR0o6Yoe1Qp +8sgSPDr0SGl8Ui3gdgMw0BsLp40YprV1XlUUaRpSqL/x5dDwxKuCBuBHn8ivGrw1 +gnyU3vGQ8QqQOVOQ1DYdVGELGe6IEjK8ZfeWj6eI942MxphU2Mral+jwNa98FLvW +ViNwn1AEYTZ6n7OB+cK0Et8i16bwLikB9fdHA3b/wKmMc18Bt35fVKcww6IlgPKQ +Au7/UMn90MIlOGCtkIzQfqUrULIEXiUY5CTED3duHgjstNDdYRfwvgFJjxQcb+yH +oZx+3HnVhNcPdkClgCldr8F2Uc+2Jc6Nvog8Lk6aTQCXrJHg5MeYSJN/dELdFJHF +LwH6t++yRzCElFzERGhe+k/xfRWqlDa3uqzu/4cJbFh7dYh1KvHfyULJloPb3vG8 +0KbqsCtZ9IEfvzTwgtiaqCNdhN4xvHLW9AN991OMIkxE4YcU4Mj/RAiydcihWiJt +8SguMAkQzIWK8bXHOiFIzbqUlp9M3KqYmAP6+6WLbshnShrOuwEvVApC7ncE42rv +WtFI1I9Un45pkw8I86LsSCH/m+9adG3sMOwLbxvsgq081hnDlmY= +=HP0w +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/Client.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +eef220deccb81afa8832eefb9012419c36429061d91c934b082114406fc1f506f41de4d5704217158b6f71f1c73e5910c94e2aa80d9f1d399382aa0aacaffbdf ./x86-windows-static/include/pulsar/Client.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,296 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_CLIENTCONFIGURATION_H_ +#define PULSAR_CLIENTCONFIGURATION_H_ + +#include <pulsar/Authentication.h> +#include <pulsar/Logger.h> +#include <pulsar/defines.h> + +namespace pulsar { +class PulsarWrapper; +struct ClientConfigurationImpl; +class PULSAR_PUBLIC ClientConfiguration { + public: + ClientConfiguration(); + ~ClientConfiguration(); + ClientConfiguration(const ClientConfiguration&); + ClientConfiguration& operator=(const ClientConfiguration&); + + /** + * Configure a limit on the amount of memory that will be allocated by this client instance. + * Setting this to 0 will disable the limit. By default this is disabled. + * + * @param memoryLimitBytes the memory limit + */ + ClientConfiguration& setMemoryLimit(uint64_t memoryLimitBytes); + + /** + * @return the client memory limit in bytes + */ + uint64_t getMemoryLimit() const; + + /** + * Set the authentication method to be used with the broker + * + * @param authentication the authentication data to use + */ + ClientConfiguration& setAuth(const AuthenticationPtr& authentication); + + /** + * @return the authentication data + */ + Authentication& getAuth() const; + + /** + * Set timeout on client operations (subscribe, create producer, close, unsubscribe) + * Default is 30 seconds. + * + * @param timeout the timeout after which the operation will be considered as failed + */ + ClientConfiguration& setOperationTimeoutSeconds(int timeout); + + /** + * @return the client operations timeout in seconds + */ + int getOperationTimeoutSeconds() const; + + /** + * Set the number of IO threads to be used by the Pulsar client. Default is 1 + * thread. + * + * @param threads number of threads + */ + ClientConfiguration& setIOThreads(int threads); + + /** + * @return the number of IO threads to use + */ + int getIOThreads() const; + + /** + * Set the number of threads to be used by the Pulsar client when delivering messages + * through message listener. Default is 1 thread per Pulsar client. + * + * If using more than 1 thread, messages for distinct MessageListener will be + * delivered in different threads, however a single MessageListener will always + * be assigned to the same thread. + * + * @param threads number of threads + */ + ClientConfiguration& setMessageListenerThreads(int threads); + + /** + * @return the number of IO threads to use + */ + int getMessageListenerThreads() const; + + /** + * Number of concurrent lookup-requests allowed on each broker-connection to prevent overload on broker. + * <i>(default: 50000)</i> It should be configured with higher value only in case of it requires to + * produce/subscribe on + * thousands of topic using created {@link PulsarClient} + * + * @param concurrentLookupRequest + */ + ClientConfiguration& setConcurrentLookupRequest(int concurrentLookupRequest); + + /** + * @return Get configured total allowed concurrent lookup-request. + */ + int getConcurrentLookupRequest() const; + + /** + * Initialize the log configuration + * + * @param logConfFilePath path of the configuration file + * @deprecated + */ + ClientConfiguration& setLogConfFilePath(const std::string& logConfFilePath); + + /** + * Get the path of log configuration file (log4cpp) + */ + const std::string& getLogConfFilePath() const; + + /** + * Configure a custom logger backend to route of Pulsar client library + * to a different logger implementation. + * + * By default, log messages are printed on standard output. + * + * When passed in, the configuration takes ownership of the loggerFactory object. + * The logger factory can only be set once per process. Any subsequent calls to + * set the logger factory will have no effect, though the logger factory object + * will be cleaned up. + */ + ClientConfiguration& setLogger(LoggerFactory* loggerFactory); + + /** + * Configure whether to use the TLS encryption on the connections. + * + * The default value is false. + * + * @param useTls + */ + ClientConfiguration& setUseTls(bool useTls); + + /** + * @return whether the TLS encryption is used on the connections + */ + bool isUseTls() const; + + /** + * Set the path to the TLS private key file. + * + * @param tlsPrivateKeyFilePath + */ + ClientConfiguration& setTlsPrivateKeyFilePath(const std::string& tlsKeyFilePath); + + /** + * @return the path to the TLS private key file + */ + const std::string& getTlsPrivateKeyFilePath() const; + + /** + * Set the path to the TLS certificate file. + * + * @param tlsCertificateFilePath + */ + ClientConfiguration& setTlsCertificateFilePath(const std::string& tlsCertificateFilePath); + + /** + * @return the path to the TLS certificate file + */ + const std::string& getTlsCertificateFilePath() const; + + /** + * Set the path to the trusted TLS certificate file. + * + * @param tlsTrustCertsFilePath + */ + ClientConfiguration& setTlsTrustCertsFilePath(const std::string& tlsTrustCertsFilePath); + + /** + * @return the path to the trusted TLS certificate file + */ + const std::string& getTlsTrustCertsFilePath() const; + + /** + * Configure whether the Pulsar client accepts untrusted TLS certificates from brokers. + * + * The default value is false. + * + * @param tlsAllowInsecureConnection + */ + ClientConfiguration& setTlsAllowInsecureConnection(bool allowInsecure); + + /** + * @return whether the Pulsar client accepts untrusted TLS certificates from brokers + */ + bool isTlsAllowInsecureConnection() const; + + /** + * Configure whether it allows validating hostname verification when a client connects to a broker over + * TLS. + * + * It validates the incoming x509 certificate and matches the provided hostname (CN/SAN) with the + * expected broker's hostname. It follows the server identity hostname verification in RFC 2818. + * + * The default value is false. + * + * @see [RFC 2818](https://tools.ietf.org/html/rfc2818). + * + * @param validateHostName whether to enable the TLS hostname verification + */ + ClientConfiguration& setValidateHostName(bool validateHostName); + + /** + * @return true if the TLS hostname verification is enabled + */ + bool isValidateHostName() const; + + /** + * Configure the listener name that the broker returns the corresponding `advertisedListener`. + * + * @param name the listener name + */ + ClientConfiguration& setListenerName(const std::string& listenerName); + + /** + * @return the listener name for the broker + */ + const std::string& getListenerName() const; + + /** + * Initialize stats interval in seconds. Stats are printed and reset after every `statsIntervalInSeconds`. + * + * Default: 600 + * + * Set to 0 means disabling stats collection. + */ + ClientConfiguration& setStatsIntervalInSeconds(const unsigned int&); + + /** + * @return the stats interval configured for the client + */ + const unsigned int& getStatsIntervalInSeconds() const; + + /** + * Set partitions update interval in seconds. + * If a partitioned topic is produced or subscribed and `intervalInSeconds` is not 0, every + * `intervalInSeconds` seconds the partition number will be retrieved by sending lookup requests. If + * partition number has been increased, more producer/consumer of increased partitions will be created. + * Default is 60 seconds. + * + * @param intervalInSeconds the seconds between two lookup request for partitioned topic's metadata + */ + ClientConfiguration& setPartititionsUpdateInterval(unsigned int intervalInSeconds); + + /** + * Get partitions update interval in seconds. + */ + unsigned int getPartitionsUpdateInterval() const; + + /** + * Set the duration of time to wait for a connection to a broker to be established. If the duration passes + * without a response from the broker, the connection attempt is dropped. + * + * Default: 10000 + * + * @param timeoutMs the duration in milliseconds + * @return + */ + ClientConfiguration& setConnectionTimeout(int timeoutMs); + + /** + * The getter associated with setConnectionTimeout(). + */ + int getConnectionTimeout() const; + + friend class ClientImpl; + friend class PulsarWrapper; + + private: + const AuthenticationPtr& getAuthPtr() const; + std::shared_ptr<ClientConfigurationImpl> impl_; +}; +} // namespace pulsar + +#endif /* PULSAR_CLIENTCONFIGURATION_H_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZIACgkQT0AbyNP5 ++1UC4g//QunS/F+S+MY40awA0Uu59jAdyuMofDPyMZy/Y2UnkbQP9qAJ5W73YpYw +D+T38CIs/v3ldLMpzhlt/TnokQmQyOyafT6aajJtKQ2p8plTV5iMO/fvcRPi5Xxb +s8CneKFhOUJLrgm9y+JuwQf58GrzWxCPmWyWaFYzqL4r+Uv9A+nCUC62/2OZ0YsE +f1Oeow3eATxqCXr9I553c28GKuDQ505GU3HzDBiPOhM4uhQ18unEzcYYuqId1oRc +XBj39JUP7IHkoDPqKXmB8LGRfMbgdpARsWwlU+qigRbZqVe9ZwIcskJXLEfO6yqc +HNIQKpvCUEJ/42zaiIZJzlpguNKUQKffqtSc8QDVvhoLDNCAZlh7kPkUKqs/oiD7 +5PEmnK7WyAQag45P8ylzK4J1gkB7PxssZiYUvs8U4NOcxaN9EWdKw+YPiJIjOpoG +VuhH9Ol7h7te1F1KlpgrgjnmxNjLKDfigA0Ixj3dH8yHDkDL9phS7sSXGm4Wr5Qx +iG5q5wUjRK+3ujE/4OL+5QlbebK3jhiUrOcgXWJKeI76CrMM7GIy9T5FXL4WT3OF +o2ix5k06DIV++iulApTR8wvaRIymf15/pObBjpNUqS2qt4l25VHkAOH9cLZ2OZx0 +vNY2JeoKyOoTVSHbWdFwZ8wU0uGwk1Y5bimEFYUlB/d7+12FWeU= +=mp4N +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/ClientConfiguration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +8554f8a949c14bfefcc6656cd3923565dda0508b3236a517c3be553a4d05c5d494b7128315bb003c11365ffcedac1ba0b949222a6a257faf8dd64554c326c413 ./x86-windows-static/include/pulsar/ClientConfiguration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,33 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#ifndef PULSAR_COMPRESSIONTYPE_H_ +#define PULSAR_COMPRESSIONTYPE_H_ + +namespace pulsar { +enum CompressionType +{ + CompressionNone = 0, + CompressionLZ4 = 1, + CompressionZLib = 2, + CompressionZSTD = 3, + CompressionSNAPPY = 4 +}; +} + +#endif /* PULSAR_COMPRESSIONTYPE_H_ */ Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xY8ACgkQT0AbyNP5 ++1VvjxAAo3OVq5gpikL3XvmXcj449G/CLL2xiIVGd2yWTLBu/w9n3+YyQNEL5seK +Ce80sXVVHOavBG+VMOKukaCVNasVmYGaKMFi/VpVNatUDo5JNBZ+PB85AaLp278p +ouUMu+qrv46XmwKvKhSvAZhls1dtW0Z2p5kmw7LNLwUSYyOZr/ZzDg1N/C1Vq61I +KZL7mdnEoX/rFTz0Vh8FKo9kB0p3k4NAmd95T+Tt2hJk8VuWKbZayC3ZvtJFVAqW +NXoulsN/TrZ1bM2u1Ilp4BAlB8mQ2WNlIh13eTWwdMkOzTsyyodIDo1/YO7oKze9 +5coUvaNtolBDj7dhfsrc9Vc3KmNoWXSzP6cg969YMa/j0YaG+KC22eeA+iP+ekbt +9Nbc5Qp737MUZwm08V/euZv8Z0K5HRtLEXt7vdmZKdjrfZaZ/9BZ5zN9h5Orsrl2 +cl80Y0FJ4bhDrhaWfm8prOqPo9asrFQqPbDhcwPxbDzPkdkIwRoAYkrzTBl056j0 +ONC4cUy7MiB8SicSd9IJLQ6xGeMj15ePqhqejng4VmAJullyiQkOSeb2gfpJ01fR +2gbgJjLaAALu8Sn1bFGcRddaVA2I5XzR+OKl7/rEhS5K7t3mCytwEbaLptuvLuoK +Tcgueb7xiRUBmlLjYR2A+gdT0rqOEi4VUU7UUGujSE8grt2J0sM= +=8nFa +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/CompressionType.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +ae9ec44d3d6eb8834ded45d3e0ff991c831e34d68a70ae083817f44cd2ba20fcacb148408af09804fef64e39bab8ae578fc998329e6580fd197a81cb96f8ae12 ./x86-windows-static/include/pulsar/CompressionType.h
