Files
firesse/stream.h

36 lines
639 B
C
Raw Normal View History

2019-05-05 00:11:57 -07:00
#pragma once
#include <memory>
#include "firecgi/request.h"
namespace firesse {
class Stream {
public:
Stream(firecgi::Request* request);
2019-05-05 00:11:57 -07:00
void OnClose(const std::function<void()>& callback);
bool WriteEvent(const std::string& data, uint64_t id=0, const std::string& type="");
2019-05-05 00:11:57 -07:00
bool End();
2019-05-11 22:27:33 -07:00
std::chrono::steady_clock::time_point LastMessageTime();
void Close();
2019-05-05 00:11:57 -07:00
private:
firecgi::Request* request_;
std::function<void()> on_close_;
2019-05-11 22:27:33 -07:00
std::mutex mu_;
std::chrono::steady_clock::time_point last_message_time_;
};
class IsFresherStream {
public:
bool operator() (Stream* a, Stream* b) const;
2019-05-05 00:11:57 -07:00
};
} // namespace firesse