drogonframework/drogon

Passing binary arrays directly to a resp->setBody()

Open

#2,139 opened on Aug 24, 2024

View on GitHub
 (5 comments) (1 reaction) (0 assignees)C++ (1,014 forks)batch import
enhancementgood first issue

Repository metrics

Stars
 (10,462 stars)
PR merge metrics
 (Avg merge 5d 16h) (3 merged PRs in 30d)

Description

It's disheartening to dance on eggshells when trying to pass a large binary array to drogon's setBody method. Nothing works. No shared_ptr, no string_view, nothing. The only way to pass a binary array right now seems to be using the list constructor of std::string by calling std::string fullResponse(char* myData, size_t myDataSize); and then calling std::move to hand it over to the setBody method, which involves a wholly unnecessary copy operation. Yes, compared to the compression, serialization, its not really THAT relevant. Nonetheless, what I would like is a method overload which accepts a char* and a size_t. The same goes for the send() method of the async stream.

Contributor guide