10 #ifndef NETWORK_SURVEY_H
11 #define NETWORK_SURVEY_H
13 #include <condition_variable>
23 void OnReceiveData(std::unique_ptr<
char[]> data,
size_t length)
override;
35 std::string CreatePayload(
Reason reason,
bool for_preview =
false);
37 constexpr
static bool IsSurveyPossible()
Socket handler for the survey connection.
void OnFailure() override
An error has occurred and the connection has been closed.
bool IsCancelled() const override
Check if there is a request to cancel the transfer.
@ PREVIEW
User is previewing the survey result.
@ EXIT
User is exiting the application.
@ LEAVE
User is leaving the game (but not exiting the application).
std::atomic< bool > transmitted
Whether the survey has been transmitted.
std::condition_variable transmitted_cv
Condition variable to inform changes to transmitted.
void OnReceiveData(std::unique_ptr< char[]> data, size_t length) override
We're receiving data.
std::mutex mutex
Mutex for the condition variable.
void Transmit(Reason reason, bool blocking=false)
Transmit the survey.
Basic functions to send and receive HTTP packets.
Callback for when the HTTP handler has something to tell us.