fixed
This commit is contained in:
parent
7080ce0923
commit
54684f7cf0
@ -251,16 +251,11 @@ public:
|
||||
* @param len The lenght of the submitted data.
|
||||
*/
|
||||
void write(std::unique_ptr<char[]> data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
auto write = this->loop().template resource<details::WriteReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::WriteReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) {
|
||||
std::for_each(bufs, bufs+N, [](uv_buf_t &buf){ delete[] buf.base; });
|
||||
delete[] bufs;
|
||||
}
|
||||
}, N);
|
||||
new uv_buf_t[1]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs->base; delete[] bufs; }
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = this->shared_from_this()](const auto &event, details::WriteReq &) {
|
||||
ptr->publish(event);
|
||||
@ -284,13 +279,11 @@ public:
|
||||
* @param len The lenght of the submitted data.
|
||||
*/
|
||||
void write(char *data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
auto write = this->loop().template resource<details::WriteReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::WriteReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data, len) },
|
||||
new uv_buf_t[1]{ uv_buf_init(data, len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs; }
|
||||
}, N);
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = this->shared_from_this()](const auto &event, details::WriteReq &) {
|
||||
ptr->publish(event);
|
||||
@ -322,16 +315,11 @@ public:
|
||||
*/
|
||||
template<typename S>
|
||||
void write(S &send, std::unique_ptr<char[]> data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
auto write = this->loop().template resource<details::WriteReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::WriteReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) {
|
||||
std::for_each(bufs, bufs+N, [](uv_buf_t &buf){ delete[] buf.base; });
|
||||
delete[] bufs;
|
||||
}
|
||||
}, N);
|
||||
new uv_buf_t[1]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs->base; delete[] bufs; }
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = this->shared_from_this()](const auto &event, details::WriteReq &) {
|
||||
ptr->publish(event);
|
||||
@ -363,13 +351,11 @@ public:
|
||||
*/
|
||||
template<typename S>
|
||||
void write(S &send, char *data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
auto write = this->loop().template resource<details::WriteReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::WriteReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data, len) },
|
||||
new uv_buf_t[1]{ uv_buf_init(data, len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs; }
|
||||
}, N);
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = this->shared_from_this()](const auto &event, details::WriteReq &) {
|
||||
ptr->publish(event);
|
||||
|
||||
@ -297,19 +297,14 @@ public:
|
||||
*/
|
||||
template<typename I = IPv4>
|
||||
void send(std::string ip, unsigned int port, std::unique_ptr<char[]> data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
typename details::IpTraits<I>::Type addr;
|
||||
details::IpTraits<I>::addrFunc(ip.data(), port, &addr);
|
||||
|
||||
auto send = loop().resource<details::SendReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::SendReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) {
|
||||
std::for_each(bufs, bufs+N, [](uv_buf_t &buf){ delete[] buf.base; });
|
||||
delete[] bufs;
|
||||
}
|
||||
}, N);
|
||||
new uv_buf_t[1]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs->base; delete[] bufs; }
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = shared_from_this()](const auto &event, details::SendReq &) {
|
||||
ptr->publish(event);
|
||||
@ -340,16 +335,14 @@ public:
|
||||
*/
|
||||
template<typename I = IPv4>
|
||||
void send(std::string ip, unsigned int port, char *data, std::size_t len) {
|
||||
constexpr std::size_t N = 1;
|
||||
|
||||
typename details::IpTraits<I>::Type addr;
|
||||
details::IpTraits<I>::addrFunc(ip.data(), port, &addr);
|
||||
|
||||
auto send = loop().resource<details::SendReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::SendReq::Deleter>{
|
||||
new uv_buf_t[N]{ uv_buf_init(data, len) },
|
||||
new uv_buf_t[1]{ uv_buf_init(data, len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs; }
|
||||
}, N);
|
||||
}, 1);
|
||||
|
||||
auto listener = [ptr = shared_from_this()](const auto &event, details::SendReq &) {
|
||||
ptr->publish(event);
|
||||
|
||||
@ -23,4 +23,7 @@ TEST(Resource, Basics) {
|
||||
|
||||
ASSERT_NO_THROW(resource->data(data));
|
||||
ASSERT_EQ(*std::static_pointer_cast<int>(resource->data()), 42);
|
||||
|
||||
resource->close();
|
||||
loop->run();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user