remove development files

Summary: related to T13118

Reviewers: ivica

Reviewed By: ivica

Subscribers: miljen, iljazovic

Differential Revision: https://repo.mireo.local/D26619
This commit is contained in:
Korina Šimičević
2023-11-20 10:21:52 +01:00
parent 73620e5653
commit cda3bc8ee1
11 changed files with 0 additions and 1395 deletions

View File

@ -1,79 +0,0 @@
import glob
Import('ctx')
ctx.Project('#/3rdParty/openssl')
sources = [
'example/tcp.cpp',
# commented out to speed up compiling
# 'example/openssl-tls.cpp',
# 'example/websocket-tcp.cpp',
# 'example/websocket-tls.cpp',
'example/src/run_examples.cpp',
]
test_sources = [
# 'test/experimental/cancellation.cpp',
# 'test/experimental/message_assembling.cpp',
# 'test/experimental/memory.cpp',
# 'test/experimental/mutex.cpp',
# 'test/experimental/uri_parse.cpp',
'test/unit/test/serialization.cpp',
'test/unit/test/publish_send_op.cpp',
'test/unit/test/client_broker.cpp',
'test/unit/test/coroutine.cpp',
'test/unit/test/cancellation.cpp',
'test/unit/src/run_tests.cpp'
]
includes = [
'include',
'#/3rdParty/openssl/include'
]
test_includes = [
'include',
'test/unit/include',
'#/3rdParty/openssl/include'
]
libs = {
'all': Split('openssl'),
}
defines = {
'all' : ['BOOST_ALL_NO_LIB', 'BOOST_NO_TYPEID', '_REENTRANT'],
'toolchain:llvm' : ['BOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF'],
}
test_defines = {
'all' : ['BOOST_ALL_NO_LIB', 'BOOST_NO_TYPEID', 'BOOST_TEST_NO_MAIN=1','_REENTRANT'],
'toolchain:llvm' : ['BOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF'],
}
# add ' -ftemplate-backtrace-limit=1' to cxxflags when necessary
cxxflags = {
'all': Split('-fexceptions -frtti -Wall -Wno-unused-local-typedefs -ftemplate-backtrace-limit=1'),
}
frameworks = {
'os:macos': Split('Security'),
}
ctx.Program(name='mqtt-examples',
source=sources,
includes=includes,
defines=defines,
CXXFLAGs=cxxflags,
libraries=libs,
frameworks=frameworks,
)
ctx.Program(name='mqtt-tests',
source=test_sources,
includes=test_includes,
defines=test_defines,
CXXFLAGs=cxxflags,
frameworks=frameworks,
)

View File

@ -1,155 +0,0 @@
#include <fmt/format.h>
#include <boost/asio/prepend.hpp>
#include <boost/asio/steady_timer.hpp>
#include <boost/asio/associated_executor.hpp>
#include <boost/asio/bind_executor.hpp>
#include <boost/asio/cancellation_signal.hpp>
#include <boost/asio/cancellation_state.hpp>
#include <boost/asio/bind_cancellation_slot.hpp>
#include <boost/asio/dispatch.hpp>
#include <boost/asio/thread_pool.hpp>
namespace asio = boost::asio;
template <typename Handler>
decltype(auto) tracking_executor(Handler&& handler) {
return asio::prefer(
asio::get_associated_executor(std::forward<Handler>(handler)),
asio::execution::outstanding_work.tracked
);
}
template <typename Handler>
using tracking_type = std::decay_t<
decltype(tracking_executor(std::declval<Handler>()))
>;
template <typename Handler>
class async_op {
struct on_timer {};
std::decay_t<Handler> _handler;
tracking_type<Handler> _handler_ex;
asio::cancellation_state _cancel_state;
// must be unique_ptr because move(timer) cancels previous op
std::unique_ptr<asio::steady_timer> _timer;
public:
template <typename Executor>
async_op(const Executor& ex, Handler&& handler, const asio::cancellation_slot& cs) :
_handler(std::forward<Handler>(handler)),
_handler_ex(tracking_executor(_handler)),
_cancel_state(cs),
_timer(std::make_unique<asio::steady_timer>(ex))
{}
async_op(async_op&&) noexcept = default;
async_op& operator=(async_op&&) noexcept = default;
using executor_type = asio::steady_timer::executor_type;
executor_type get_executor() const noexcept {
return _timer->get_executor();
}
using allocator_type = asio::associated_allocator_t<Handler>;
allocator_type get_allocator() const noexcept {
return asio::get_associated_allocator(_handler);
}
using cancellation_slot_type = asio::cancellation_slot;
asio::cancellation_slot get_cancellation_slot() const noexcept {
return _cancel_state.slot();
}
void perform() {
_timer->expires_from_now(std::chrono::seconds(5));
_timer->async_wait(asio::prepend(std::move(*this), on_timer {}));
}
void operator()(on_timer, boost::system::error_code ec) {
if (ec == asio::error::operation_aborted) {
fmt::print(stderr, "Aborted {}\n", ec.message());
return;
}
_cancel_state.slot().clear();
fmt::print(stderr, "Dispatching with error {}\n", ec.message());
asio::dispatch(_handler_ex, [h = std::move(_handler), ec]() mutable {
std::move(h)(ec);
});
}
};
class owner {
asio::cancellation_signal _cancel_signal;
public:
void cancel() {
_cancel_signal.emit(asio::cancellation_type::terminal);
_cancel_signal.slot().clear();
}
~owner() {
cancel();
}
template <typename CompletionToken>
decltype(auto) async_perform(asio::io_context& ioc, CompletionToken&& token) {
auto initiation = [this, &ioc](auto handler) {
auto slot = asio::get_associated_cancellation_slot(handler);
async_op<decltype(handler)>(
ioc.get_executor(), std::move(handler),
slot.is_connected() ? slot : _cancel_signal.slot()
).perform();
};
return asio::async_initiate<CompletionToken, void (boost::system::error_code)>(
std::move(initiation), token
);
}
};
void cancel_test(asio::io_context& ioc) {
asio::cancellation_signal cancel_signal;
asio::thread_pool thp;
{
owner b;
b.async_perform(ioc,
asio::bind_cancellation_slot(
cancel_signal.slot(),
asio::bind_executor(thp.get_executor(),
[](boost::system::error_code ec) {
fmt::print(stderr, "Finished with error {}\n", ec.message());
}
)
)
);
}
/*
{
asio::steady_timer timer3(ioc);
timer3.expires_from_now(std::chrono::seconds(3));
timer3.async_wait(
asio::bind_cancellation_slot(
cancel_signal.slot(),
[&] (boost::system::error_code) {
// cancel_signal.emit(asio::cancellation_type::terminal);
// b.cancel();
}
)
);
}
*/
asio::steady_timer timer2(ioc);
timer2.expires_from_now(std::chrono::seconds(1));
timer2.async_wait([&] (boost::system::error_code) {
// cancel_signal.emit(asio::cancellation_type::terminal);
// b.cancel();
});
ioc.run();
thp.join();
}

View File

@ -1,50 +0,0 @@
#include <fmt/format.h>
#include <boost/asio/recycling_allocator.hpp>
#include "../../alloc/memory.h"
#include "../../alloc/string.h"
#include "../../alloc/vector.h"
namespace asio = boost::asio;
struct bx {
pma::string s1, s2;
bx(std::string v1, std::string v2, const pma::alloc<size_t>& alloc) :
s1(v1.begin(), v1.end(), alloc),
s2(v2.begin(), v2.end(), alloc)
{}
};
void test_memory() {
asio::recycling_allocator<char> base_alloc;
pma::resource_adaptor<asio::recycling_allocator<char>> mem_res { base_alloc };
auto alloc = pma::alloc<char>(&mem_res);
pma::string s1 { "abcdefgrthoasofjasfasf", alloc };
pma::string s2 { alloc };
s2 = s1;
//TODO: the commented lines do not compile on Windows
//pma::vector<char> v1 { { 'a', 'b'}, alloc };
pma::vector<char> v2 { alloc };
//v2 = std::move(v1);
//pma::vector<char> v3 = v2;
//pma::vector<char> v4 = std::move(v3);
//v1.swap(v2);
bx vbx { "ABCD", "EFGH", alloc };
fmt::print(stderr, "String = {}, is equal: {}\n", s2,
s1.get_allocator() == vbx.s2.get_allocator()
);
//fmt::print(stderr, "Vector allocators are equal: {}\n",
// v1.get_allocator() == v2.get_allocator()
//);
std::allocator_traits<decltype(alloc)>::rebind_alloc<std::string> char_alloc =
alloc;
}

View File

@ -1,199 +0,0 @@
#include <boost/asio/io_context.hpp>
#include <boost/asio/strand.hpp>
#include <boost/asio/any_io_executor.hpp>
#include <boost/asio/awaitable.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/use_awaitable.hpp>
#include <async/async.h>
#include <mqtt-client/detail/internal_types.hpp>
#include <mqtt-client/codecs/message_encoders.hpp>
#include <mqtt-client/codecs/message_decoders.hpp>
#include <mqtt-client/impl/assemble_op.hpp>
#include <fmt/format.h>
namespace asio = boost::asio;
namespace async_mqtt {
using byte_iter = detail::byte_iter;
class fake_stream {
asio::any_io_executor _ex;
std::string _data;
int _chunk_no = -1;
std::string _read_buff;
detail::data_span _data_span;
public:
fake_stream(asio::any_io_executor ex) : _ex(std::move(ex)) {
prepare_data();
}
using executor_type = asio::any_io_executor;
const executor_type& get_executor() const noexcept { return _ex; }
template <
typename BufferType,
typename CompletionToken
>
auto async_read_some(
const BufferType& buffer, detail::duration wait_for,
CompletionToken&& token
);
template <typename Stream, typename CompletionToken>
decltype(auto) async_assemble(
Stream& stream, detail::duration wait_for, CompletionToken&& token
);
private:
void prepare_data();
std::string_view next_frame();
};
template <
typename BufferType,
typename CompletionToken
>
auto fake_stream::async_read_some(
const BufferType& buffer, detail::duration wait_for,
CompletionToken&& token
) {
auto read_op = [this] (auto handler, const BufferType& buffer) {
auto data = next_frame();
size_t bytes_read = data.size();
std::copy(data.begin(), data.end(), static_cast<uint8_t*>(buffer.data()));
asio::post(get_executor(), [h = std::move(handler), bytes_read] () mutable {
h(error_code{}, bytes_read);
});
};
return asio::async_initiate<CompletionToken, void (error_code, size_t)>(
std::move(read_op), token, buffer
);
}
template <typename Stream, typename CompletionToken>
decltype(auto) fake_stream::async_assemble(
Stream& stream, detail::duration wait_for, CompletionToken&& token
) {
auto initiation = [this] (auto handler, Stream& stream, detail::duration wait_for) mutable {
detail::assemble_op (
stream, std::move(handler),
_read_buff, _data_span
).perform(wait_for, asio::transfer_at_least(0));
};
return asio::async_initiate<
CompletionToken, void (error_code, uint8_t, byte_iter, byte_iter)
> (
std::move(initiation), token, std::ref(stream), wait_for
);
}
void fake_stream::prepare_data() {
connack_props cap;
cap[prop::session_expiry_interval] = 60;
cap[prop::maximum_packet_size] = 16384;
cap[prop::wildcard_subscription_available] = true;
_data = encoders::encode_connack(true, 0x8A, cap);
puback_props pap;
pap[prop::user_property].emplace_back("PUBACK user property");
_data += encoders::encode_puback(42, 28, pap);
}
std::string_view fake_stream::next_frame() {
++_chunk_no;
if (_chunk_no == 0)
return { _data.begin(), _data.begin() + 2 };
if (_chunk_no == 1)
return { _data.begin() + 2, _data.begin() + 13 };
if (_chunk_no == 2)
return { _data.begin() + 13, _data.begin() + 23 };
if (_chunk_no == 3)
return { _data.begin() + 23, _data.begin() + 35 };
if (_chunk_no == 4)
return { _data.begin() + 35, _data.end() };
return { _data.end(), _data.end() };
}
template <typename Stream, typename CompletionToken>
decltype(auto) async_assemble(
Stream& stream, detail::duration wait_for,
CompletionToken&& token
) {
return stream.async_assemble(
stream, wait_for, std::forward<CompletionToken>(token)
);
}
void test_single(asio::io_context& ioc) {
using namespace std::chrono;
fake_stream s(asio::make_strand(ioc));
auto on_message = [] (
error_code ec, uint8_t control_code, byte_iter first, byte_iter last
) {
fmt::print(stderr, "Error code: {}\n", ec.message());
if (ec) return;
size_t remain_length = std::distance(first, last);
auto rv = decoders::decode_connack(control_code, remain_length, first);
const auto& [session_present, reason_code, cap] = *rv;
fmt::print(stderr, "Got CONNACK message, reason_code {}, session {}\n", reason_code, session_present);
fmt::print(stderr, "session_expiry_interval: {}\n", *cap[prop::session_expiry_interval]);
fmt::print(stderr, "maximum_packet_size: {}\n", *cap[prop::maximum_packet_size]);
fmt::print(stderr, "wildcard_subscription_available: {}\n", *cap[prop::wildcard_subscription_available]);
};
async_assemble(s, seconds(1), std::move(on_message));
ioc.run();
ioc.restart();
}
asio::awaitable<void> test_multiple_coro(asio::io_context& ioc) {
using namespace std::chrono;
fake_stream s(asio::make_strand(ioc));
auto [ec1, cc1, first1, last1] = co_await async_assemble(
s, seconds(1), asio::use_nothrow_awaitable
);
size_t remain_length1 = std::distance(first1, last1);
auto rv1 = decoders::decode_connack(cc1, remain_length1, first1);
if (rv1)
fmt::print(stderr, "CONNACK correctly decoded\n");
auto [ec2, cc2, first2, last2] = co_await async_assemble(
s, seconds(1), asio::use_nothrow_awaitable
);
size_t remain_length2 = std::distance(first2, last2);
auto rv2 = decoders::decode_puback(cc2, remain_length2, first2);
if (rv2)
fmt::print(stderr, "PUBACK correctly decoded\n");
}
void test_multiple(asio::io_context& ioc) {
co_spawn(ioc, test_multiple_coro(ioc), asio::detached);
ioc.run();
ioc.restart();
}
} // end namespace async_mqtt
void test_assembling(asio::io_context& ioc) {
using namespace std::chrono;
async_mqtt::test_single(ioc);
async_mqtt::test_multiple(ioc);
}

View File

@ -1,237 +0,0 @@
// #include <async/run_loop.h>
#include <boost/asio/io_context.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/strand.hpp>
#include <boost/asio/thread_pool.hpp>
#include <boost/asio/bind_cancellation_slot.hpp>
#include <thread>
#include <vector>
#include <mutex>
#include <mqtt-client/detail/async_mutex.hpp>
#include <async/mutex.h>
#include <fmt/format.h>
#define ANKERL_NANOBENCH_IMPLEMENT
#include <nanobench/nanobench.h>
constexpr size_t nthreads = 4;
constexpr size_t per_job_count = 10'000 / nthreads;
using namespace async_mqtt5::detail;
void with_async_mutex(async_mutex& mutex, std::size_t* count) {
for (int c = 0; c < per_job_count; ++c) {
mutex.lock([&mutex, count](error_code) {
++(*count);
mutex.unlock();
});
}
}
void test_with_async_mutex(asio::any_io_executor e, async_mutex& mutex, size_t* count) {
asio::post(e, [&mutex, count]() {
with_async_mutex(mutex, count);
});
}
void with_old_async_mutex(async::mutex& mutex, std::size_t* count) {
for (int c = 0; c < per_job_count; ++c) {
mutex.lock([&mutex, count]() {
++(*count);
mutex.unlock();
});
}
}
void test_with_old_async_mutex(asio::any_io_executor e, async::mutex& mutex, size_t* count) {
asio::post(e, [&mutex, count]() {
with_old_async_mutex(mutex, count);
});
}
struct std_mutex : public std::mutex {
std_mutex(asio::any_io_executor) : std::mutex() { }
};
void with_mutex(std_mutex& mutex, size_t* count) {
for (int c = 0; c < per_job_count; ++c) {
mutex.lock();
++(*count);
mutex.unlock();
}
}
void test_with_mutex(asio::any_io_executor e, std_mutex& mutex, size_t* count) {
asio::post(e, [&mutex, count]() {
with_mutex(mutex, count);
});
}
template <class Mutex, class Test>
void test_with(Test func) {
asio::thread_pool pool(nthreads);
auto ex = pool.get_executor();
auto count = std::make_unique<size_t>(0);
Mutex mutex { ex };
{
for (auto i = 0; i < nthreads; ++i) {
func(ex, mutex, count.get());
}
}
pool.wait();
if (*count != nthreads * per_job_count)
throw "greska!";
}
void test_cancellation() {
asio::thread_pool tp;
asio::cancellation_signal cancel_signal;
async_mutex mutex(tp.get_executor());
asio::steady_timer timer(tp);
auto op = [&](error_code ec) {
if (ec == asio::error::operation_aborted) {
mutex.unlock();
return;
}
timer.expires_from_now(std::chrono::seconds(2));
timer.async_wait([&] (boost::system::error_code) {
fmt::print(stderr, "Async-locked operation done\n");
mutex.unlock();
});
};
auto cancellable_op = [&](error_code ec) {
fmt::print(
stderr,
"Cancellable async-locked operation finished with ec: {}\n", ec.message()
);
if (ec == asio::error::operation_aborted)
return;
mutex.unlock();
};
mutex.lock(std::move(op));
mutex.lock(
asio::bind_cancellation_slot(
cancel_signal.slot(), std::move(cancellable_op)
)
);
asio::steady_timer timer2(tp);
timer2.expires_from_now(std::chrono::seconds(1));
timer2.async_wait([&] (boost::system::error_code) {
cancel_signal.emit(asio::cancellation_type::terminal);
});
tp.wait();
}
void test_destructor() {
asio::thread_pool tp;
asio::cancellation_signal cancel_signal;
{
async_mutex mutex(tp.get_executor());
asio::steady_timer timer(tp);
auto op = [&](error_code ec_mtx) {
if (ec_mtx == asio::error::operation_aborted) {
fmt::print(
stderr,
"Mutex operation cancelled error_code {}\n",
ec_mtx.message()
);
mutex.unlock();
return;
}
timer.expires_from_now(std::chrono::seconds(2));
timer.async_wait([&] (boost::system::error_code ec) {
if (ec == asio::error::operation_aborted)
return;
fmt::print(
stderr,
"Async-locked operation done with error_code {}\n",
ec.message()
);
mutex.unlock();
});
};
mutex.lock(std::move(op));
}
tp.wait();
}
void test_basics() {
asio::thread_pool tp;
// {
asio::cancellation_signal cs;
async_mutex mutex(tp.get_executor());
auto s1 = asio::make_strand(tp.get_executor());
auto s2 = asio::make_strand(tp.get_executor());
mutex.lock(asio::bind_executor(s1, [&mutex, s1](boost::system::error_code ec) mutable {
fmt::print(
stderr,
"Scoped-locked operation (1) done with error_code {} ({})\n",
ec.message(),
s1.running_in_this_thread()
);
if (ec != asio::error::operation_aborted)
mutex.unlock();
}));
mutex.lock(
asio::bind_cancellation_slot(
cs.slot(),
asio::bind_executor(s2, [s2](boost::system::error_code ec){
fmt::print(
stderr,
"Scoped-locked operation (2) done with error_code {} ({})\n",
ec.message(),
s2.running_in_this_thread()
);
})
)
);
cs.emit(asio::cancellation_type_t::terminal);
cs.slot().clear();
// }
tp.wait();
}
void test_mutex() {
// test_basics();
// return;
// test_destructor();
// test_cancellation();
// return;
auto bench = ankerl::nanobench::Bench();
bench.relative(true);
bench.run("std::mutex", [] {
test_with<std_mutex>(test_with_mutex);
});
bench.run("async_mutex", [] {
test_with<async_mutex>(test_with_async_mutex);
});
bench.run("async::mutex", [] {
test_with<async::mutex>(test_with_old_async_mutex);
});
}

View File

@ -1,46 +0,0 @@
#include <boost/spirit/home/x3.hpp>
template <typename T>
static constexpr auto to_(T& arg) {
return [&](auto& ctx) { arg = boost::spirit::x3::_attr(ctx); };
}
template <typename T, typename Parser>
static constexpr auto as_(Parser&& p){
return boost::spirit::x3::rule<struct _, T>{} = std::forward<Parser>(p);
}
void test_uri_parser(){
struct authority_path { std::string host, port, path; };
std::vector<authority_path> _servers;
std::string brokers = "iot.fcluster.mireo.hr:1234, fc/nesto";
std::string default_port = "8883";
namespace x3 = boost::spirit::x3;
std::string host, port, path;
// loosely based on RFC 3986
auto unreserved_ = x3::char_("-a-zA-Z_0-9._~");
auto digit_ = x3::char_("0-9");
auto separator_ = x3::char_(',');
auto host_ = as_<std::string>(+unreserved_)[to_(host)];
auto port_ = as_<std::string>(':' >> +digit_)[to_(port)];
auto path_ = as_<std::string>('/' >> *unreserved_)[to_(path)];
auto uri_ = *x3::omit[x3::space] >> (host_ >> *port_ >> *path_) >>
(*x3::omit[x3::space] >> x3::omit[separator_ | x3::eoi]);
for (auto b = brokers.begin(); b != brokers.end(); ) {
host.clear(); port.clear(); path.clear();
if (phrase_parse(b, brokers.end(), uri_, x3::eps(false))) {
_servers.push_back({
std::move(host), port.empty() ? default_port : std::move(port),
std::move(path)
});
}
else b = brokers.end();
}
}

View File

@ -1,41 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33110.190
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt-client", "mqtt-client.vcxproj", "{303BA426-05B5-47FB-9F00-E932257FB28F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt-test", "test/mqtt-test.vcxproj", "{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x64.ActiveCfg = Debug|x64
{303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x64.Build.0 = Debug|x64
{303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x86.ActiveCfg = Debug|Win32
{303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x86.Build.0 = Debug|Win32
{303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x64.ActiveCfg = Release|x64
{303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x64.Build.0 = Release|x64
{303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x86.ActiveCfg = Release|Win32
{303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x86.Build.0 = Release|Win32
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x64.ActiveCfg = Debug|x64
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x64.Build.0 = Debug|x64
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x86.ActiveCfg = Debug|Win32
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x86.Build.0 = Debug|Win32
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x64.ActiveCfg = Release|x64
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x64.Build.0 = Release|x64
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x86.ActiveCfg = Release|Win32
{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E5126E4A-FF26-4E63-BC54-CE092A8E7966}
EndGlobalSection
EndGlobal

View File

@ -1,189 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\async_mqtt5.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\async_mutex.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\async_traits.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\cancellable_handler.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\control_packet.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\internal_types.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\ring_buffer.hpp" />
<ClInclude Include="..\include\async_mqtt5\detail\spinlock.hpp" />
<ClInclude Include="..\include\async_mqtt5\error.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\assemble_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\async_sender.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\autoconnect_stream.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\client_service.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\connect_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\disconnect_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\endpoints.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\memory.h" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\memory_resource.h" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\string.h" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\vector.h" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\base_decoders.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\base_encoders.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\message_decoders.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\message_encoders.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\traits.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\ping_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\publish_rec_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\publish_send_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\read_message_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\read_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\reconnect_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\replies.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\sentry_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\subscribe_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\unsubscribe_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\impl\write_op.hpp" />
<ClInclude Include="..\include\async_mqtt5\mqtt_client.hpp" />
<ClInclude Include="..\include\async_mqtt5\property_types.hpp" />
<ClInclude Include="..\include\async_mqtt5\types.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\example\openssl-tls.cpp" />
<ClCompile Include="..\example\src\run_examples.cpp" />
<ClCompile Include="..\example\tcp.cpp" />
<ClCompile Include="..\example\websocket-tcp.cpp" />
<ClCompile Include="..\example\websocket-tls.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{303ba426-05b5-47fb-9f00-e932257fb28f}</ProjectGuid>
<RootNamespace>mqttclient</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\include;$(DevRoot)3rdParty\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>crypt32.lib;openssl.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DevRoot)Components\Bin\libd\x64\MT</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;_CONSOLE;NDEBUG;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalIncludeDirectories>..\include;$(DevRoot)3rdParty\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>crypt32.lib;openssl.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DevRoot)Components\Bin\libd\x64\MT</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,174 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Source Files\example">
<UniqueIdentifier>{fc537c67-a947-4840-80e0-6fe3f3d5d460}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include">
<UniqueIdentifier>{b786d33e-710a-4a1c-bc48-a14f6d79399c}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include\impl">
<UniqueIdentifier>{0ce770cf-e2fa-429c-94f5-0e70835bed03}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include\impl\internal">
<UniqueIdentifier>{ec0b6550-a767-411d-9cea-1e33bcd63aab}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include\impl\internal\codecs">
<UniqueIdentifier>{e3af9391-bfab-4e35-aad7-0e5b8541ac1c}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include\impl\internal\alloc">
<UniqueIdentifier>{e83887a6-c73a-45ca-b224-45de8f660c74}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\include\detail">
<UniqueIdentifier>{ab9e608c-0bf9-4e0a-8dfe-1e0a2e040718}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\async_mqtt5\detail\async_mutex.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\async_traits.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\cancellable_handler.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\control_packet.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\internal_types.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\ring_buffer.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\detail\spinlock.hpp">
<Filter>Header Files\include\detail</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\memory.h">
<Filter>Header Files\include\impl\internal\alloc</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\memory_resource.h">
<Filter>Header Files\include\impl\internal\alloc</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\string.h">
<Filter>Header Files\include\impl\internal\alloc</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\alloc\vector.h">
<Filter>Header Files\include\impl\internal\alloc</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\base_decoders.hpp">
<Filter>Header Files\include\impl\internal\codecs</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\base_encoders.hpp">
<Filter>Header Files\include\impl\internal\codecs</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\message_decoders.hpp">
<Filter>Header Files\include\impl\internal\codecs</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\message_encoders.hpp">
<Filter>Header Files\include\impl\internal\codecs</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\internal\codecs\traits.hpp">
<Filter>Header Files\include\impl\internal\codecs</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\assemble_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\async_sender.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\autoconnect_stream.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\client_service.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\connect_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\disconnect_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\endpoints.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\ping_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\publish_rec_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\publish_send_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\read_message_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\read_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\reconnect_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\replies.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\sentry_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\subscribe_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\unsubscribe_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\impl\write_op.hpp">
<Filter>Header Files\include\impl</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\property_types.hpp">
<Filter>Header Files\include</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\types.hpp">
<Filter>Header Files\include</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\error.hpp">
<Filter>Header Files\include</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\async_mqtt5\mqtt_client.hpp">
<Filter>Header Files\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\example\openssl-tls.cpp">
<Filter>Source Files\example</Filter>
</ClCompile>
<ClCompile Include="..\example\tcp.cpp">
<Filter>Source Files\example</Filter>
</ClCompile>
<ClCompile Include="..\example\websocket-tcp.cpp">
<Filter>Source Files\example</Filter>
</ClCompile>
<ClCompile Include="..\example\websocket-tls.cpp">
<Filter>Source Files\example</Filter>
</ClCompile>
<ClCompile Include="..\example\src\run_examples.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\test\unit\include\test_common\delayed_op.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\message_exchange.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\packet_util.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\protocol_logging.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\test_broker.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\test_service.hpp" />
<ClInclude Include="..\..\test\unit\include\test_common\test_stream.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\test\unit\src\run_tests.cpp" />
<ClCompile Include="..\..\test\unit\test\cancellation.cpp" />
<ClCompile Include="..\..\test\unit\test\client_broker.cpp" />
<ClCompile Include="..\..\test\unit\test\coroutine.cpp" />
<ClCompile Include="..\..\test\unit\test\publish_send_op.cpp" />
<ClCompile Include="..\..\test\unit\test\serialization.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{48deaf83-ba87-4fde-8a4c-a539ba44a479}</ProjectGuid>
<RootNamespace>mqtttest</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;BOOST_TEST_NO_MAIN=1;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
<ExceptionHandling>Async</ExceptionHandling>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>../../include;../../test/unit/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;BOOST_TEST_NO_MAIN=1;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
<ExceptionHandling>Async</ExceptionHandling>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>../../include;../../test/unit/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Header Files\test_common">
<UniqueIdentifier>{6361a7f6-7954-4ea3-a2a7-f3b15537a3ac}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\test">
<UniqueIdentifier>{cf0bb550-9227-400c-9e0a-8b38fe2c32a3}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\test\unit\include\test_common\delayed_op.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\message_exchange.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\packet_util.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\protocol_logging.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\test_broker.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\test_service.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
<ClInclude Include="..\..\test\unit\include\test_common\test_stream.hpp">
<Filter>Header Files\test_common</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\test\unit\test\client_broker.cpp">
<Filter>Source Files\test</Filter>
</ClCompile>
<ClCompile Include="..\..\test\unit\test\coroutine.cpp">
<Filter>Source Files\test</Filter>
</ClCompile>
<ClCompile Include="..\..\test\unit\test\publish_send_op.cpp">
<Filter>Source Files\test</Filter>
</ClCompile>
<ClCompile Include="..\..\test\unit\test\serialization.cpp">
<Filter>Source Files\test</Filter>
</ClCompile>
<ClCompile Include="..\..\test\unit\src\run_tests.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\test\unit\test\cancellation.cpp">
<Filter>Source Files\test</Filter>
</ClCompile>
</ItemGroup>
</Project>