50 lines
706 B
C++
50 lines
706 B
C++
//
|
|
// Created by dongl on 23-5-17.
|
|
//
|
|
|
|
#ifndef IM2_TIMELINE_H
|
|
#define IM2_TIMELINE_H
|
|
|
|
#include <string>
|
|
#include <queue>
|
|
#include "proto/mp.mp.pb.h"
|
|
|
|
|
|
struct SynMsg {
|
|
uint64_t message_id;
|
|
time_t msg_time;
|
|
};
|
|
|
|
struct StorageMsg {
|
|
mp::MP_SUB_TYPE msg_type;
|
|
mp::MP_SUB_TYPE session_type;
|
|
uint64_t message_id;
|
|
time_t msg_time;
|
|
uint64_t account;
|
|
std::string msg_data;
|
|
};
|
|
|
|
template<class T>
|
|
class TimeLine {
|
|
|
|
void push(T ele) {
|
|
queue.push(ele);
|
|
}
|
|
|
|
T* pull() {
|
|
auto ele = queue.front();
|
|
queue.back();
|
|
return ele;
|
|
}
|
|
|
|
private:
|
|
std::mutex mutex;
|
|
std::queue<T> queue;
|
|
mongocxx::pool* pool;
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif //IM2_TIMELINE_H
|