Photon 1.0.0
Loading...
Searching...
No Matches
Config.hpp
Go to the documentation of this file.
1/*
2 * =====================================================================
3 *
4 * Photon
5 * Copyright Amlal EL Mahrouss, all rights reserved.
6 *
7 * =====================================================================
8 */
9
10#pragma once
11
12#ifdef _WIN32
13#define NOMINMAX
14#define WIN32_LEAN_AND_MEAN
15
16#define SPDLOG_WCHAR_TO_UTF8_SUPPORT
17#endif // ifdef _WIN32
18
19#include <cassert>
20#include <clocale>
21#include <codecvt>
22#include <cstdint>
23#include <cstdio>
24#include <cstdlib>
25#include <cstring>
26#include <ctime>
27
28#include <spdlog/spdlog.h>
29
30#include <uuid/uuid.h>
31
32typedef uint16_t uuid_string_t[37];
33
34#import <AppKit/AppKit.h>
35
36#include <arpa/inet.h>
37#include <netdb.h>
38#include <netinet/in.h>
39
40#define SD_BOTH SHUT_RDWR
41#define SD_SEND SHUT_WR
42#define SD_READ SHUT_RD
43
44#define INVALID_SOCKET ((uintptr_t)-1)
45
46#include <algorithm>
47#include <array>
48#include <concepts>
49#include <filesystem>
50#include <fstream>
51#include <iostream>
52#include <memory>
53#include <stdexcept>
54#include <string>
55#include <thread>
56#include <tuple>
57
58#ifdef __GNUC__
59#define PHOTON_GCC (0x0001)
60#define PHOTON_CXX_COMPILER "G++"
61#define PHOTON_CXX PHOTON_GCC
62#endif
63
64#define PHOTON_API
65
66#ifndef PHOTON_ENV
67#define PHOTON_ENV getenv
68#endif // PHOTON_ENV
69
70#define PHOTON_COPY_DELETE(KLASS) \
71 KLASS& operator=(const KLASS&) = delete; \
72 KLASS(const KLASS&) = delete;
73
74#define PHOTON_COPY_DEFAULT(KLASS) \
75 KLASS& operator=(const KLASS&) = default; \
76 KLASS(const KLASS&) = default;
77
78#define PHOTON_MOVE_DELETE(KLASS) \
79 KLASS& operator=(KLASS&&) = delete; \
80 KLASS(KLASS&&) = delete;
81
82#define PHOTON_MOVE_DEFAULT(KLASS) \
83 KLASS& operator=(KLASS&&) = default; \
84 KLASS(KLASS&&) = default;
85
86#ifndef PHOTON_SLEEP
87#define PHOTON_SLEEP sleep
88#endif /* PHOTON_SLEEP */
89
90namespace Photon
91{
92 typedef double Double;
93 typedef float Real;
94
95 typedef std::int32_t Int32;
96 typedef std::uint32_t UInt32;
97
98 typedef std::int64_t Int64;
99 typedef std::uint64_t UInt64;
100
101 typedef bool Bool;
102} // namespace Photon
103
104typedef unsigned short uuid_string_t[37];
105
106#define PHOTON_ASSERT(expression) assert(expression)
uint16_t uuid_string_t[37]
Definition Config.hpp:32
This file is also about defining core js concepts.
Definition BasePhotonWindow.hpp:22
float Real
Definition Config.hpp:93
std::int64_t Int64
Definition Config.hpp:98
std::uint64_t UInt64
Definition Config.hpp:99
bool Bool
Definition Config.hpp:101
std::int32_t Int32
Definition Config.hpp:95
double Double
Definition Config.hpp:92
std::uint32_t UInt32
Definition Config.hpp:96