#pragma once
#include <cstdlib>
#include <string>
#include <cstdint>
#include <vector>
#include <memory>
#include "YCKitExport.h"

#define PROPERTY(...)
 
#ifndef DLL_DECL_SDWAN
#define DLL_DECL_SDWAN DLL_DECL
#endif

typedef uint8_t byte;
#define UNUSED(x) (void)x;

extern DLL_DECL_SDWAN int64_t gDeltaOfSteadyAndWallTime;

#include <chrono>
inline uint64_t getUnixTimeStampInMS(){
	using namespace std::chrono;
	milliseconds ms = duration_cast< milliseconds >(
			steady_clock::now().time_since_epoch()
	);
	return static_cast<uint64_t>(ms.count()) - gDeltaOfSteadyAndWallTime;
}

extern DLL_DECL uint64_t gDeltaOfTimestampWithServer;


inline uint64_t getServerUnixTimeStampInMS(){
	return getUnixTimeStampInMS() - gDeltaOfTimestampWithServer;
}


#ifndef __COREFOUNDATION__
#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64))
typedef int BOOL;
#else
#define BOOL bool
#endif
#define YES true
#define NO false
#endif
struct LiveRoomDes
{
	std::string title;
	std::string details;
	int64_t starttime;
	int64_t endtime;
};
