Compare commits
114 Commits
release-d2
...
master
Author | SHA1 | Date | |
---|---|---|---|
ff666eda9b | |||
0d8b82ba49 | |||
5598dfdd87 | |||
6ef462adcc | |||
9511cb5719 | |||
1cc1d561e2 | |||
d15a0df7da | |||
e1282b6bae | |||
5fe7c14ccb | |||
42165ba2d6 | |||
1af4da43ad | |||
4fa879a09e | |||
fd8f1a29c6 | |||
9fda2763ba | |||
cda23ac4af | |||
c36b244dd3 | |||
335d278f5e | |||
f987b02c65 | |||
3c056276c1 | |||
87e2fdefcf | |||
672b92b363 | |||
762a6517b2 | |||
d141154a45 | |||
6170647c0c | |||
48e45c7dd6 | |||
5d3d9229b7 | |||
d54e93d836 | |||
830f8fe3e4 | |||
7b638538aa | |||
2016f6e605 | |||
240effd305 | |||
6bc629e02c | |||
f6f2acd67b | |||
0146d38405 | |||
75d8e7bb89 | |||
6b53eaf6b1 | |||
16c32273ac | |||
1567a6e29d | |||
89d543bcbc | |||
d68e64931b | |||
1cbc576286 | |||
500b93562c | |||
800ca85176 | |||
cc466a9f1d | |||
9d1155843e | |||
a2139c09b2 | |||
a3e5f27ab8 | |||
643f95ec80 | |||
6924147686 | |||
6e2b4fa7b4 | |||
4e5c749918 | |||
66229de77f | |||
7eb37c5318 | |||
7a21b20711 | |||
894be237f2 | |||
92e9d9cbfc | |||
b29b9a9b3a | |||
721f844214 | |||
a3d6a58cc8 | |||
e598e7fe27 | |||
ba9e720f9f | |||
8e816a261f | |||
5b9929ab3d | |||
ceb54b3f1b | |||
8764444758 | |||
ce9a0b1fdb | |||
f7a468ea1e | |||
861d177a27 | |||
3936756b36 | |||
3e78ec3fe5 | |||
3c3d53b40c | |||
151d7c5736 | |||
4e4d8d2c3f | |||
03d1fd2857 | |||
6701decc91 | |||
6cff526647 | |||
dd50bd0249 | |||
55a1660242 | |||
ed365dfef5 | |||
23a09e4a13 | |||
b69e7ebb98 | |||
418d6e3f22 | |||
c44d8678cb | |||
eb4cd7106d | |||
d259770f32 | |||
80bad608f7 | |||
2bce9a2baf | |||
791b7746f3 | |||
842e3587fd | |||
318e79004b | |||
9f338a7429 | |||
645e48af7b | |||
ef92c8df13 | |||
849d50be8e | |||
845092f114 | |||
75819a1797 | |||
d66da85753 | |||
98ddb08abd | |||
8d1701b0bb | |||
1048e522fd | |||
ee59da4aa3 | |||
1ba64cb5d8 | |||
462bebf6dd | |||
e3f84c4e75 | |||
6837a0556d | |||
ede2c8ca37 | |||
f50367f7d5 | |||
e758e03d2b | |||
835e3270ce | |||
480dd5ece4 | |||
dba6bb5800 | |||
40a456e54a | |||
bf5be00c12 | |||
dc7c2559d6 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -6,7 +6,7 @@
|
|||||||
.mypy_cache
|
.mypy_cache
|
||||||
.stfolder
|
.stfolder
|
||||||
.stignore
|
.stignore
|
||||||
scripts/__pycache__
|
util/scripts/__pycache__
|
||||||
pyenv
|
pyenv
|
||||||
CMakeLists.txt.user
|
CMakeLists.txt.user
|
||||||
ROM.oxfs
|
ROM.oxfs
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
source:
|
source:
|
||||||
- src
|
- src
|
||||||
copyright_notice: |-
|
copyright_notice: |-
|
||||||
Copyright 2016 - 2024 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
||||||
|
19
Makefile
19
Makefile
@ -1,26 +1,31 @@
|
|||||||
BC_VAR_PROJECT_NAME=nostalgia
|
BC_VAR_PROJECT_NAME=nostalgia
|
||||||
BC_VAR_PROJECT_NAME_CAP=Nostalgia
|
BC_VAR_PROJECT_NAME_CAP=Nostalgia
|
||||||
|
BC_VAR_DEVENV_ROOT=util
|
||||||
BUILDCORE_PATH=deps/buildcore
|
BUILDCORE_PATH=deps/buildcore
|
||||||
include ${BUILDCORE_PATH}/base.mk
|
include ${BUILDCORE_PATH}/base.mk
|
||||||
|
|
||||||
ifeq ($(BC_VAR_OS),darwin)
|
ifeq ($(BC_VAR_OS),darwin)
|
||||||
NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
|
PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
|
||||||
MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
|
MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
|
||||||
else
|
else
|
||||||
NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
|
PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
|
||||||
MGBA=mgba-qt
|
MGBA=mgba-qt
|
||||||
endif
|
endif
|
||||||
|
PROJECT_PLAYER=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}
|
||||||
|
|
||||||
.PHONY: pkg-gba
|
.PHONY: pkg-gba
|
||||||
pkg-gba: build
|
pkg-gba: build
|
||||||
${BC_CMD_ENVRUN} ${BC_PY3} ./scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME}
|
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME}
|
||||||
|
|
||||||
|
.PHONY: build-player
|
||||||
|
build-player:
|
||||||
|
${BC_CMD_CMAKE_BUILD} ${BC_VAR_BUILD_PATH} ${BC_VAR_PROJECT_NAME_CAP}
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: build
|
run: build-player
|
||||||
./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
|
${PROJECT_PLAYER} sample_project
|
||||||
.PHONY: run-studio
|
.PHONY: run-studio
|
||||||
run-studio: build
|
run-studio: build
|
||||||
${NOSTALGIA_STUDIO}
|
${PROJECT_STUDIO}
|
||||||
.PHONY: gba-run
|
.PHONY: gba-run
|
||||||
gba-run: pkg-gba
|
gba-run: pkg-gba
|
||||||
${MGBA} ${BC_VAR_PROJECT_NAME}.gba
|
${MGBA} ${BC_VAR_PROJECT_NAME}.gba
|
||||||
@ -29,7 +34,7 @@ debug: build
|
|||||||
${BC_CMD_HOST_DEBUGGER} ./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
|
${BC_CMD_HOST_DEBUGGER} ./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
|
||||||
.PHONY: debug-studio
|
.PHONY: debug-studio
|
||||||
debug-studio: build
|
debug-studio: build
|
||||||
${BC_CMD_HOST_DEBUGGER} ${NOSTALGIA_STUDIO}
|
${BC_CMD_HOST_DEBUGGER} ${PROJECT_STUDIO}
|
||||||
|
|
||||||
.PHONY: configure-gba
|
.PHONY: configure-gba
|
||||||
configure-gba:
|
configure-gba:
|
||||||
|
4
deps/gbabuildcore/base.cmake
vendored
4
deps/gbabuildcore/base.cmake
vendored
@ -1,8 +1,8 @@
|
|||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb-interwork")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb-interwork")
|
||||||
|
11
deps/glad/CMakeLists.txt
vendored
11
deps/glad/CMakeLists.txt
vendored
@ -1,2 +1,11 @@
|
|||||||
add_library(glad OBJECT src/glad.c)
|
add_library(glad src/glad.c)
|
||||||
|
|
||||||
target_include_directories(glad PUBLIC include)
|
target_include_directories(glad PUBLIC include)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS
|
||||||
|
glad
|
||||||
|
DESTINATION
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
)
|
||||||
|
10
deps/imgui/CMakeLists.txt
vendored
10
deps/imgui/CMakeLists.txt
vendored
@ -6,7 +6,7 @@ endif()
|
|||||||
# DrinkingTea: end
|
# DrinkingTea: end
|
||||||
|
|
||||||
add_library(
|
add_library(
|
||||||
imgui OBJECT
|
imgui
|
||||||
imgui.cpp
|
imgui.cpp
|
||||||
imgui_demo.cpp
|
imgui_demo.cpp
|
||||||
imgui_draw.cpp
|
imgui_draw.cpp
|
||||||
@ -20,3 +20,11 @@ target_include_directories(
|
|||||||
imgui SYSTEM PUBLIC
|
imgui SYSTEM PUBLIC
|
||||||
.
|
.
|
||||||
)
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS
|
||||||
|
imgui
|
||||||
|
DESTINATION
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
)
|
||||||
|
2
deps/ox/.liccor.yml
vendored
2
deps/ox/.liccor.yml
vendored
@ -2,7 +2,7 @@
|
|||||||
source:
|
source:
|
||||||
- src
|
- src
|
||||||
copyright_notice: |-
|
copyright_notice: |-
|
||||||
Copyright 2015 - 2024 gary@drinkingtea.net
|
Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
|
|
||||||
This Source Code Form is subject to the terms of the Mozilla Public
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/clargs/clargs.cpp
vendored
2
deps/ox/src/ox/clargs/clargs.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/clargs/clargs.hpp
vendored
2
deps/ox/src/ox/clargs/clargs.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/claw.hpp
vendored
2
deps/ox/src/ox/claw/claw.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/format.hpp
vendored
2
deps/ox/src/ox/claw/format.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/read.cpp
vendored
2
deps/ox/src/ox/claw/read.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/read.hpp
vendored
2
deps/ox/src/ox/claw/read.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/readclaw.cpp
vendored
2
deps/ox/src/ox/claw/readclaw.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/test/tests.cpp
vendored
2
deps/ox/src/ox/claw/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/write.cpp
vendored
2
deps/ox/src/ox/claw/write.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/claw/write.hpp
vendored
2
deps/ox/src/ox/claw/write.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/event/event.hpp
vendored
2
deps/ox/src/ox/event/event.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/event/signal.cpp
vendored
2
deps/ox/src/ox/event/signal.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
4
deps/ox/src/ox/event/signal.hpp
vendored
4
deps/ox/src/ox/event/signal.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -215,7 +215,7 @@ Error Signal<Args...>::emitCheckError(Args... args) const noexcept {
|
|||||||
}
|
}
|
||||||
return ox::Error(0);
|
return ox::Error(0);
|
||||||
} catch (const ox::Exception &ex) {
|
} catch (const ox::Exception &ex) {
|
||||||
return ox::Error(ex.file, ex.line, ex.errCode, ex.msg);
|
return ox::Error(ex.errCode, ex.msg, ex.src);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
deps/ox/src/ox/event/test/tests.cpp
vendored
2
deps/ox/src/ox/event/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/filesystem/directory.cpp
vendored
2
deps/ox/src/ox/fs/filesystem/directory.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
14
deps/ox/src/ox/fs/filesystem/filesystem.cpp
vendored
14
deps/ox/src/ox/fs/filesystem/filesystem.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -63,18 +63,6 @@ Error FileSystem::read(const FileAddress &addr, std::size_t readStart, std::size
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Error FileSystem::remove(const FileAddress &addr, bool recursive) noexcept {
|
|
||||||
switch (addr.type()) {
|
|
||||||
case FileAddressType::Inode:
|
|
||||||
return remove(addr.getInode().value, recursive);
|
|
||||||
case FileAddressType::ConstPath:
|
|
||||||
case FileAddressType::Path:
|
|
||||||
return remove(StringView(addr.getPath().value), recursive);
|
|
||||||
default:
|
|
||||||
return ox::Error(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Error FileSystem::write(const FileAddress &addr, const void *buffer, uint64_t size, FileType fileType) noexcept {
|
Error FileSystem::write(const FileAddress &addr, const void *buffer, uint64_t size, FileType fileType) noexcept {
|
||||||
switch (addr.type()) {
|
switch (addr.type()) {
|
||||||
case FileAddressType::Inode:
|
case FileAddressType::Inode:
|
||||||
|
52
deps/ox/src/ox/fs/filesystem/filesystem.hpp
vendored
52
deps/ox/src/ox/fs/filesystem/filesystem.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -57,9 +57,9 @@ class FileSystem {
|
|||||||
|
|
||||||
virtual Result<Vector<String>> ls(StringViewCR dir) const noexcept = 0;
|
virtual Result<Vector<String>> ls(StringViewCR dir) const noexcept = 0;
|
||||||
|
|
||||||
virtual Error remove(StringViewCR path, bool recursive) noexcept = 0;
|
Error remove(StringViewCR path, bool recursive = false) noexcept {
|
||||||
|
return removePath(path, recursive);
|
||||||
Error remove(const FileAddress &addr, bool recursive = false) noexcept;
|
}
|
||||||
|
|
||||||
virtual Error resize(uint64_t size, void *buffer) noexcept = 0;
|
virtual Error resize(uint64_t size, void *buffer) noexcept = 0;
|
||||||
|
|
||||||
@ -142,6 +142,8 @@ class FileSystem {
|
|||||||
|
|
||||||
virtual Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept = 0;
|
virtual Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept = 0;
|
||||||
|
|
||||||
|
virtual Error removePath(StringViewCR path, bool recursive) noexcept = 0;
|
||||||
|
|
||||||
virtual Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
|
virtual Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
|
||||||
|
|
||||||
virtual Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
|
virtual Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
|
||||||
@ -209,6 +211,8 @@ class FileSystemTemplate: public MemFS {
|
|||||||
|
|
||||||
Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
|
Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
|
||||||
|
|
||||||
|
Error removePath(StringViewCR path, bool recursive) noexcept override;
|
||||||
|
|
||||||
Result<const char*> directAccessInode(uint64_t) const noexcept override;
|
Result<const char*> directAccessInode(uint64_t) const noexcept override;
|
||||||
|
|
||||||
Result<Vector<String>> ls(StringViewCR dir) const noexcept override;
|
Result<Vector<String>> ls(StringViewCR dir) const noexcept override;
|
||||||
@ -216,8 +220,6 @@ class FileSystemTemplate: public MemFS {
|
|||||||
template<typename F>
|
template<typename F>
|
||||||
Error ls(StringViewCR path, F cb) const;
|
Error ls(StringViewCR path, F cb) const;
|
||||||
|
|
||||||
Error remove(StringViewCR path, bool recursive) noexcept override;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resizes FileSystem to minimum possible size.
|
* Resizes FileSystem to minimum possible size.
|
||||||
*/
|
*/
|
||||||
@ -356,6 +358,25 @@ Error FileSystemTemplate<FileStore, Directory>::readFileInodeRange(uint64_t inod
|
|||||||
return m_fs.read(inode, readStart, readSize, reinterpret_cast<uint8_t*>(buffer), size);
|
return m_fs.read(inode, readStart, readSize, reinterpret_cast<uint8_t*>(buffer), size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename FileStore, typename Directory>
|
||||||
|
Error FileSystemTemplate<FileStore, Directory>::removePath(StringViewCR path, bool recursive) noexcept {
|
||||||
|
OX_REQUIRE(fd, fileSystemData());
|
||||||
|
Directory rootDir(m_fs, fd.rootDirInode);
|
||||||
|
OX_REQUIRE(inode, rootDir.find(path));
|
||||||
|
OX_REQUIRE(st, statInode(inode));
|
||||||
|
if (st.fileType == FileType::NormalFile || recursive) {
|
||||||
|
if (auto err = rootDir.remove(path)) {
|
||||||
|
// removal failed, try putting the index back
|
||||||
|
oxLogError(rootDir.write(path, inode));
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
oxTrace("FileSystemTemplate.remove.fail", "Tried to remove directory without recursive setting.");
|
||||||
|
return ox::Error(1);
|
||||||
|
}
|
||||||
|
return ox::Error(0);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename FileStore, typename Directory>
|
template<typename FileStore, typename Directory>
|
||||||
Result<const char*> FileSystemTemplate<FileStore, Directory>::directAccessInode(uint64_t inode) const noexcept {
|
Result<const char*> FileSystemTemplate<FileStore, Directory>::directAccessInode(uint64_t inode) const noexcept {
|
||||||
auto data = m_fs.read(inode);
|
auto data = m_fs.read(inode);
|
||||||
@ -384,25 +405,6 @@ Error FileSystemTemplate<FileStore, Directory>::ls(StringViewCR path, F cb) cons
|
|||||||
return dir.ls(cb);
|
return dir.ls(cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename FileStore, typename Directory>
|
|
||||||
Error FileSystemTemplate<FileStore, Directory>::remove(StringViewCR path, bool recursive) noexcept {
|
|
||||||
OX_REQUIRE(fd, fileSystemData());
|
|
||||||
Directory rootDir(m_fs, fd.rootDirInode);
|
|
||||||
OX_REQUIRE(inode, rootDir.find(path));
|
|
||||||
OX_REQUIRE(st, statInode(inode));
|
|
||||||
if (st.fileType == FileType::NormalFile || recursive) {
|
|
||||||
if (auto err = rootDir.remove(path)) {
|
|
||||||
// removal failed, try putting the index back
|
|
||||||
oxLogError(rootDir.write(path, inode));
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
oxTrace("FileSystemTemplate.remove.fail", "Tried to remove directory without recursive setting.");
|
|
||||||
return ox::Error(1);
|
|
||||||
}
|
|
||||||
return ox::Error(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename FileStore, typename Directory>
|
template<typename FileStore, typename Directory>
|
||||||
Error FileSystemTemplate<FileStore, Directory>::resize() noexcept {
|
Error FileSystemTemplate<FileStore, Directory>::resize() noexcept {
|
||||||
return m_fs.resize();
|
return m_fs.resize();
|
||||||
|
18
deps/ox/src/ox/fs/filesystem/passthroughfs.cpp
vendored
18
deps/ox/src/ox/fs/filesystem/passthroughfs.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -75,14 +75,6 @@ Result<Vector<String>> PassThroughFS::ls(StringViewCR dir) const noexcept {
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Error PassThroughFS::remove(StringViewCR path, bool recursive) noexcept {
|
|
||||||
if (recursive) {
|
|
||||||
return ox::Error(std::filesystem::remove_all(m_path / stripSlash(path)) != 0);
|
|
||||||
} else {
|
|
||||||
return ox::Error(std::filesystem::remove(m_path / stripSlash(path)) != 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Error PassThroughFS::resize(uint64_t, void*) noexcept {
|
Error PassThroughFS::resize(uint64_t, void*) noexcept {
|
||||||
// unsupported
|
// unsupported
|
||||||
return ox::Error(1, "resize is not supported by PassThroughFS");
|
return ox::Error(1, "resize is not supported by PassThroughFS");
|
||||||
@ -167,6 +159,14 @@ Error PassThroughFS::readFileInodeRange(uint64_t, std::size_t, std::size_t, void
|
|||||||
return ox::Error(1, "read(uint64_t, std::size_t, std::size_t, void*, std::size_t*) is not supported by PassThroughFS");
|
return ox::Error(1, "read(uint64_t, std::size_t, std::size_t, void*, std::size_t*) is not supported by PassThroughFS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Error PassThroughFS::removePath(StringViewCR path, bool const recursive) noexcept {
|
||||||
|
if (recursive) {
|
||||||
|
return ox::Error{std::filesystem::remove_all(m_path / stripSlash(path)) == 0};
|
||||||
|
} else {
|
||||||
|
return ox::Error{!std::filesystem::remove(m_path / stripSlash(path))};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Error PassThroughFS::writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType) noexcept {
|
Error PassThroughFS::writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType) noexcept {
|
||||||
const auto p = (m_path / stripSlash(path));
|
const auto p = (m_path / stripSlash(path));
|
||||||
try {
|
try {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -45,8 +45,6 @@ class PassThroughFS: public FileSystem {
|
|||||||
template<typename F>
|
template<typename F>
|
||||||
Error ls(StringViewCR dir, F cb) const noexcept;
|
Error ls(StringViewCR dir, F cb) const noexcept;
|
||||||
|
|
||||||
Error remove(StringViewCR path, bool recursive) noexcept override;
|
|
||||||
|
|
||||||
Error resize(uint64_t size, void *buffer) noexcept override;
|
Error resize(uint64_t size, void *buffer) noexcept override;
|
||||||
|
|
||||||
Result<FileStat> statInode(uint64_t inode) const noexcept override;
|
Result<FileStat> statInode(uint64_t inode) const noexcept override;
|
||||||
@ -75,6 +73,8 @@ class PassThroughFS: public FileSystem {
|
|||||||
|
|
||||||
Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
|
Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
|
||||||
|
|
||||||
|
Error removePath(StringViewCR path, bool recursive) noexcept override;
|
||||||
|
|
||||||
Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept override;
|
Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept override;
|
||||||
|
|
||||||
Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept override;
|
Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept override;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/filesystem/types.hpp
vendored
2
deps/ox/src/ox/fs/filesystem/types.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/fs.hpp
vendored
2
deps/ox/src/ox/fs/fs.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/ptrarith/nodebuffer.hpp
vendored
2
deps/ox/src/ox/fs/ptrarith/nodebuffer.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/ptrarith/ptr.hpp
vendored
2
deps/ox/src/ox/fs/ptrarith/ptr.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/test/tests.cpp
vendored
2
deps/ox/src/ox/fs/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/fs/tool.cpp
vendored
2
deps/ox/src/ox/fs/tool.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/logconn/circularbuff.hpp
vendored
2
deps/ox/src/ox/logconn/circularbuff.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
4
deps/ox/src/ox/logconn/def.hpp
vendored
4
deps/ox/src/ox/logconn/def.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -14,7 +14,7 @@
|
|||||||
{ \
|
{ \
|
||||||
const auto loggerErr = (loggerName).initConn(appName); \
|
const auto loggerErr = (loggerName).initConn(appName); \
|
||||||
if (loggerErr) { \
|
if (loggerErr) { \
|
||||||
oxErrf("Could not connect to logger: {} ({}:{})\n", toStr(loggerErr), loggerErr.file, loggerErr.line); \
|
oxErrf("Could not connect to logger: {} ({}:{})\n", toStr(loggerErr), loggerErr.src.file_name(), loggerErr.src.line()); \
|
||||||
} else { \
|
} else { \
|
||||||
ox::trace::setLogger(&(loggerName)); \
|
ox::trace::setLogger(&(loggerName)); \
|
||||||
} \
|
} \
|
||||||
|
2
deps/ox/src/ox/logconn/logconn.cpp
vendored
2
deps/ox/src/ox/logconn/logconn.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/logconn/logconn.hpp
vendored
2
deps/ox/src/ox/logconn/logconn.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/err.hpp
vendored
2
deps/ox/src/ox/mc/err.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/intops.hpp
vendored
2
deps/ox/src/ox/mc/intops.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/mc.hpp
vendored
2
deps/ox/src/ox/mc/mc.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/presenceindicator.cpp
vendored
2
deps/ox/src/ox/mc/presenceindicator.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/presenceindicator.hpp
vendored
2
deps/ox/src/ox/mc/presenceindicator.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/read.cpp
vendored
2
deps/ox/src/ox/mc/read.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/read.hpp
vendored
2
deps/ox/src/ox/mc/read.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/test/tests.cpp
vendored
2
deps/ox/src/ox/mc/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/types.hpp
vendored
2
deps/ox/src/ox/mc/types.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/write.cpp
vendored
2
deps/ox/src/ox/mc/write.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/mc/write.hpp
vendored
2
deps/ox/src/ox/mc/write.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/def.hpp
vendored
2
deps/ox/src/ox/model/def.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/descread.hpp
vendored
2
deps/ox/src/ox/model/descread.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/desctypes.cpp
vendored
2
deps/ox/src/ox/model/desctypes.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/desctypes.hpp
vendored
2
deps/ox/src/ox/model/desctypes.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/descwrite.cpp
vendored
2
deps/ox/src/ox/model/descwrite.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/descwrite.hpp
vendored
2
deps/ox/src/ox/model/descwrite.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/fieldcounter.hpp
vendored
2
deps/ox/src/ox/model/fieldcounter.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/metadata.hpp
vendored
2
deps/ox/src/ox/model/metadata.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/model.hpp
vendored
2
deps/ox/src/ox/model/model.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/modelhandleradaptor.hpp
vendored
2
deps/ox/src/ox/model/modelhandleradaptor.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/modelops.hpp
vendored
2
deps/ox/src/ox/model/modelops.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/modelvalue.cpp
vendored
2
deps/ox/src/ox/model/modelvalue.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/modelvalue.hpp
vendored
2
deps/ox/src/ox/model/modelvalue.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/optype.hpp
vendored
2
deps/ox/src/ox/model/optype.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/test/tests.cpp
vendored
2
deps/ox/src/ox/model/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
8
deps/ox/src/ox/model/typenamecatcher.hpp
vendored
8
deps/ox/src/ox/model/typenamecatcher.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -140,16 +140,16 @@ constexpr Str getModelTypeName() noexcept {
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T, typename Str = const char*>
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
consteval auto requireModelTypeName() noexcept {
|
consteval auto requireModelTypeName() noexcept {
|
||||||
constexpr auto name = getModelTypeName<T>();
|
constexpr auto name = getModelTypeName<T, Str>();
|
||||||
static_assert(ox::StringView{name}.len(), "Type lacks required TypeName");
|
static_assert(ox::StringView{name}.len(), "Type lacks required TypeName");
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename Str = const char*>
|
template<typename T, typename Str = const char*>
|
||||||
constexpr auto ModelTypeName_v = getModelTypeName<T, Str>();
|
constexpr auto ModelTypeName_v = requireModelTypeName<T, Str>();
|
||||||
|
|
||||||
template<typename T, typename Str = const char*>
|
template<typename T, typename Str = const char*>
|
||||||
constexpr auto ModelTypeVersion_v = requireModelTypeVersion<T>();
|
constexpr auto ModelTypeVersion_v = requireModelTypeVersion<T>();
|
||||||
|
2
deps/ox/src/ox/model/types.hpp
vendored
2
deps/ox/src/ox/model/types.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/typestore.hpp
vendored
2
deps/ox/src/ox/model/typestore.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/model/walk.hpp
vendored
2
deps/ox/src/ox/model/walk.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/oc/oc.hpp
vendored
2
deps/ox/src/ox/oc/oc.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/oc/read.cpp
vendored
2
deps/ox/src/ox/oc/read.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
11
deps/ox/src/ox/oc/read.hpp
vendored
11
deps/ox/src/ox/oc/read.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -144,7 +144,11 @@ Error OrganicClawReader::field(const char *key, T *val) noexcept {
|
|||||||
if (jv.empty()) {
|
if (jv.empty()) {
|
||||||
*val = 0;
|
*val = 0;
|
||||||
} else if (rightType) {
|
} else if (rightType) {
|
||||||
*val = static_cast<T>(jv.asUInt());
|
if constexpr(ox::is_signed_v<T>) {
|
||||||
|
*val = static_cast<T>(jv.asInt64());
|
||||||
|
} else {
|
||||||
|
*val = static_cast<T>(jv.asUInt64());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
err = ox::Error(1, "Type mismatch");
|
err = ox::Error(1, "Type mismatch");
|
||||||
}
|
}
|
||||||
@ -172,7 +176,8 @@ Error OrganicClawReader::field(const char *key, T *val) noexcept {
|
|||||||
err = ox::Error(1, "Type mismatch");
|
err = ox::Error(1, "Type mismatch");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Json::LogicError const&) {
|
} catch (Json::LogicError const&e) {
|
||||||
|
oxDebugf("JSON error: {}", e.what());
|
||||||
err = ox::Error(1, "error reading JSON data");
|
err = ox::Error(1, "error reading JSON data");
|
||||||
}
|
}
|
||||||
++m_fieldIt;
|
++m_fieldIt;
|
||||||
|
2
deps/ox/src/ox/oc/test/tests.cpp
vendored
2
deps/ox/src/ox/oc/test/tests.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/oc/write.cpp
vendored
2
deps/ox/src/ox/oc/write.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/oc/write.hpp
vendored
2
deps/ox/src/ox/oc/write.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/preloader/platspecs.hpp
vendored
2
deps/ox/src/ox/preloader/platspecs.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/preloader/preloader.cpp
vendored
2
deps/ox/src/ox/preloader/preloader.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/preloader/preloader.hpp
vendored
2
deps/ox/src/ox/preloader/preloader.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/preloader/sizecatcher.hpp
vendored
2
deps/ox/src/ox/preloader/sizecatcher.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
1
deps/ox/src/ox/std/CMakeLists.txt
vendored
1
deps/ox/src/ox/std/CMakeLists.txt
vendored
@ -109,6 +109,7 @@ install(
|
|||||||
error.hpp
|
error.hpp
|
||||||
fmt.hpp
|
fmt.hpp
|
||||||
hardware.hpp
|
hardware.hpp
|
||||||
|
hash.hpp
|
||||||
hashmap.hpp
|
hashmap.hpp
|
||||||
heapmgr.hpp
|
heapmgr.hpp
|
||||||
ignore.hpp
|
ignore.hpp
|
||||||
|
16
deps/ox/src/ox/std/algorithm.hpp
vendored
16
deps/ox/src/ox/std/algorithm.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -9,13 +9,25 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "def.hpp"
|
#include "def.hpp"
|
||||||
|
#include "error.hpp"
|
||||||
|
|
||||||
OX_CLANG_NOWARN_BEGIN(-Wunsafe-buffer-usage)
|
OX_CLANG_NOWARN_BEGIN(-Wunsafe-buffer-usage)
|
||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
|
||||||
template<typename It, typename T>
|
template<typename It, typename T>
|
||||||
constexpr It find(It begin, It end, const T &value) {
|
constexpr ox::Result<size_t> findIdx(It begin, It end, T const&value) {
|
||||||
|
auto it = begin;
|
||||||
|
for (; it != end; ++it) {
|
||||||
|
if (*it == value) {
|
||||||
|
return it.offset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ox::Error{1, "item not found"};
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename It, typename T>
|
||||||
|
constexpr It find(It begin, It end, T const&value) {
|
||||||
for (; begin != end; ++begin) {
|
for (; begin != end; ++begin) {
|
||||||
if (*begin == value) {
|
if (*begin == value) {
|
||||||
return begin;
|
return begin;
|
||||||
|
91
deps/ox/src/ox/std/anyptr.hpp
vendored
91
deps/ox/src/ox/std/anyptr.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -15,18 +15,22 @@
|
|||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
|
||||||
class AnyPtr {
|
namespace detail {
|
||||||
|
|
||||||
|
template<bool unique>
|
||||||
|
class AnyPtrT {
|
||||||
private:
|
private:
|
||||||
struct WrapBase {
|
struct WrapBase {
|
||||||
virtual constexpr ~WrapBase() = default;
|
virtual constexpr ~WrapBase() = default;
|
||||||
virtual constexpr WrapBase *copyTo(ox::Span<char> s) noexcept = 0;
|
virtual constexpr WrapBase *copyTo(ox::Span<char> s) noexcept = 0;
|
||||||
virtual constexpr operator bool() const noexcept = 0;
|
virtual constexpr operator bool() const noexcept = 0;
|
||||||
|
virtual void free() noexcept = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct Wrap: public WrapBase {
|
struct Wrap final: WrapBase {
|
||||||
T *data{};
|
T *data{};
|
||||||
constexpr Wrap(T *pData) noexcept: data(pData) {
|
explicit constexpr Wrap(T *pData) noexcept: data(pData) {
|
||||||
}
|
}
|
||||||
constexpr WrapBase *copyTo(ox::Span<char> s) noexcept override {
|
constexpr WrapBase *copyTo(ox::Span<char> s) noexcept override {
|
||||||
oxAssert(s.size() >= sizeof(Wrap), "too small buffer");
|
oxAssert(s.size() >= sizeof(Wrap), "too small buffer");
|
||||||
@ -39,39 +43,60 @@ class AnyPtr {
|
|||||||
constexpr operator bool() const noexcept override {
|
constexpr operator bool() const noexcept override {
|
||||||
return data != nullptr;
|
return data != nullptr;
|
||||||
}
|
}
|
||||||
|
constexpr void free() noexcept override {
|
||||||
|
safeDelete(data);
|
||||||
|
data = {};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
WrapBase *m_wrapPtr{};
|
WrapBase *m_wrapPtr{};
|
||||||
ox::Array<char, sizeof(Wrap<void*>)> m_wrapData;
|
ox::Array<char, sizeof(Wrap<void*>)> m_wrapData;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
constexpr AnyPtr() noexcept = default;
|
constexpr AnyPtrT() noexcept = default;
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr AnyPtr(T *ptr) noexcept {
|
constexpr AnyPtrT(T *ptr) noexcept {
|
||||||
if (std::is_constant_evaluated()) {
|
if (std::is_constant_evaluated()) {
|
||||||
m_wrapPtr = new Wrap(ptr);
|
m_wrapPtr = new Wrap<T>(ptr);
|
||||||
} else {
|
} else {
|
||||||
m_wrapPtr = new(m_wrapData.data()) Wrap(ptr);
|
m_wrapPtr = new(m_wrapData.data()) Wrap<T>(ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr AnyPtr(AnyPtr const&other) noexcept {
|
constexpr AnyPtrT(AnyPtrT const&other) noexcept requires(!unique) {
|
||||||
if (other) {
|
if (other) {
|
||||||
m_wrapPtr = other.m_wrapPtr->copyTo(m_wrapData);
|
m_wrapPtr = other.m_wrapPtr->copyTo(m_wrapData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr ~AnyPtr() noexcept {
|
constexpr AnyPtrT(AnyPtrT &&other) noexcept {
|
||||||
|
if (other) {
|
||||||
|
m_wrapPtr = other.m_wrapPtr->copyTo(m_wrapData);
|
||||||
|
if (std::is_constant_evaluated()) {
|
||||||
|
ox::safeDelete(m_wrapPtr);
|
||||||
|
}
|
||||||
|
other.m_wrapPtr = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr ~AnyPtrT() noexcept {
|
||||||
|
if constexpr(unique) {
|
||||||
|
free();
|
||||||
|
}
|
||||||
if (std::is_constant_evaluated()) {
|
if (std::is_constant_evaluated()) {
|
||||||
ox::safeDelete(m_wrapPtr);
|
ox::safeDelete(m_wrapPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr AnyPtr &operator=(T *ptr) noexcept {
|
constexpr AnyPtrT &operator=(T *ptr) noexcept {
|
||||||
if (std::is_constant_evaluated()) {
|
if constexpr(unique) {
|
||||||
|
free();
|
||||||
|
} else if (std::is_constant_evaluated()) {
|
||||||
ox::safeDelete(m_wrapPtr);
|
ox::safeDelete(m_wrapPtr);
|
||||||
|
}
|
||||||
|
if (std::is_constant_evaluated()) {
|
||||||
m_wrapPtr = new Wrap(ptr);
|
m_wrapPtr = new Wrap(ptr);
|
||||||
} else {
|
} else {
|
||||||
m_wrapPtr = new(m_wrapData.data()) Wrap(ptr);
|
m_wrapPtr = new(m_wrapData.data()) Wrap(ptr);
|
||||||
@ -79,10 +104,12 @@ class AnyPtr {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr AnyPtr &operator=(AnyPtr const&ptr) noexcept {
|
constexpr AnyPtrT &operator=(AnyPtrT const&ptr) noexcept requires(!unique) {
|
||||||
if (this != &ptr) {
|
if (this != &ptr) {
|
||||||
if (ptr) {
|
if (std::is_constant_evaluated()) {
|
||||||
ox::safeDelete(m_wrapPtr);
|
ox::safeDelete(m_wrapPtr);
|
||||||
|
}
|
||||||
|
if (ptr) {
|
||||||
m_wrapPtr = ptr.m_wrapPtr->copyTo(m_wrapData);
|
m_wrapPtr = ptr.m_wrapPtr->copyTo(m_wrapData);
|
||||||
} else {
|
} else {
|
||||||
m_wrapPtr = nullptr;
|
m_wrapPtr = nullptr;
|
||||||
@ -91,10 +118,40 @@ class AnyPtr {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr AnyPtrT &operator=(AnyPtrT &&ptr) noexcept {
|
||||||
|
if (this != &ptr) {
|
||||||
|
if constexpr(unique) {
|
||||||
|
free();
|
||||||
|
} else if (std::is_constant_evaluated()) {
|
||||||
|
ox::safeDelete(m_wrapPtr);
|
||||||
|
}
|
||||||
|
if (ptr) {
|
||||||
|
m_wrapPtr = ptr.m_wrapPtr->copyTo(m_wrapData);
|
||||||
|
if (std::is_constant_evaluated()) {
|
||||||
|
ox::safeDelete(ptr.m_wrapPtr);
|
||||||
|
ptr.m_wrapPtr = nullptr;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
m_wrapPtr = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
constexpr operator bool() const noexcept {
|
constexpr operator bool() const noexcept {
|
||||||
return m_wrapPtr && *m_wrapPtr;
|
return m_wrapPtr && *m_wrapPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr void free() noexcept {
|
||||||
|
if (m_wrapPtr) {
|
||||||
|
m_wrapPtr->free();
|
||||||
|
}
|
||||||
|
if (std::is_constant_evaluated()) {
|
||||||
|
ox::safeDelete(m_wrapPtr);
|
||||||
|
}
|
||||||
|
m_wrapPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr T *get() const noexcept {
|
constexpr T *get() const noexcept {
|
||||||
@ -104,6 +161,12 @@ class AnyPtr {
|
|||||||
return dynamic_cast<Wrap<T>*>(m_wrapPtr)->data;
|
return dynamic_cast<Wrap<T>*>(m_wrapPtr)->data;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using AnyPtr = detail::AnyPtrT<false>;
|
||||||
|
using UAnyPtr = detail::AnyPtrT<true>;
|
||||||
|
|
||||||
|
}
|
2
deps/ox/src/ox/std/array.hpp
vendored
2
deps/ox/src/ox/std/array.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
37
deps/ox/src/ox/std/assert.cpp
vendored
37
deps/ox/src/ox/std/assert.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -7,6 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fmt.hpp"
|
#include "fmt.hpp"
|
||||||
|
#include "realstd.hpp"
|
||||||
#include "stacktrace.hpp"
|
#include "stacktrace.hpp"
|
||||||
#include "trace.hpp"
|
#include "trace.hpp"
|
||||||
|
|
||||||
@ -14,14 +15,14 @@
|
|||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
|
||||||
void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err) noexcept {
|
void panic(StringViewCR file, int const line, StringViewCR panicMsg, Error const&err) noexcept {
|
||||||
oxErrf("\033[31;1;1mPANIC:\033[0m [{}:{}]: {}\n", file, line, panicMsg);
|
oxErrf("\033[31;1;1mPANIC:\033[0m [{}:{}]: {}\n", file, line, panicMsg);
|
||||||
if (err.msg) {
|
if (err.msg) {
|
||||||
oxErrf("\tError Message:\t{}\n", err.msg);
|
oxErrf("\tError Message:\t{}\n", err.msg);
|
||||||
}
|
}
|
||||||
oxErrf("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
|
oxErrf("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
|
||||||
if (err.file != nullptr) {
|
if (err.src.file_name() != nullptr) {
|
||||||
oxErrf("\tError Location:\t{}:{}\n", err.file, err.line);
|
oxErrf("\tError Location:\t{}:{}\n", err.src.file_name(), err.src.line());
|
||||||
}
|
}
|
||||||
#ifdef OX_USE_STDLIB
|
#ifdef OX_USE_STDLIB
|
||||||
printStackTrace(2);
|
printStackTrace(2);
|
||||||
@ -32,16 +33,19 @@ void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void panic(const char *file, int line, const char *panicMsg, const Error &err) noexcept {
|
void panic(const char *file, int const line, char const*panicMsg, Error const&err) noexcept {
|
||||||
panic(StringView{file}, line, StringView{panicMsg}, err);
|
panic(StringView{file}, line, StringView{panicMsg}, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt, StringViewCR msg) noexcept {
|
void assertFailFuncRuntime(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
StringViewCR assertTxt,
|
||||||
|
StringViewCR msg) noexcept {
|
||||||
#ifdef OX_USE_STDLIB
|
#ifdef OX_USE_STDLIB
|
||||||
auto output = sfmt("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, msg);
|
auto const st = genStackTrace(2);
|
||||||
output += genStackTrace(2);
|
oxTracef("assert", "Failed assert: {} ({}) [{}:{}]:\n{}", msg, assertTxt, file, line, st);
|
||||||
oxTracef("assert", "Failed assert: {} ({}) [{}:{}]", msg, assertTxt, file, line);
|
abort();
|
||||||
std::abort();
|
|
||||||
#else
|
#else
|
||||||
oxErrf("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, msg);
|
oxErrf("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, msg);
|
||||||
oxTracef("assert", "Failed assert: {} ({}) [{}:{}]", msg, assertTxt, file, line);
|
oxTracef("assert", "Failed assert: {} ({}) [{}:{}]", msg, assertTxt, file, line);
|
||||||
@ -49,20 +53,25 @@ void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertFailFuncRuntime(StringViewCR file, int line, [[maybe_unused]] const Error &err, StringViewCR, StringViewCR assertMsg) noexcept {
|
void assertFailFuncRuntime(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
[[maybe_unused]] Error const&err,
|
||||||
|
StringViewCR,
|
||||||
|
StringViewCR assertMsg) noexcept {
|
||||||
#if defined(OX_USE_STDLIB)
|
#if defined(OX_USE_STDLIB)
|
||||||
auto msg = sfmt("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, assertMsg);
|
auto msg = sfmt("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, assertMsg);
|
||||||
if (err.msg) {
|
if (err.msg) {
|
||||||
msg += sfmt("\tError Message:\t{}\n", err.msg);
|
msg += sfmt("\tError Message:\t{}\n", err.msg);
|
||||||
}
|
}
|
||||||
msg += sfmt("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
|
msg += sfmt("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
|
||||||
if (err.file != nullptr) {
|
if (err.src.file_name() != nullptr) {
|
||||||
msg += sfmt("\tError Location:\t{}:{}\n", err.file, err.line);
|
msg += sfmt("\tError Location:\t{}:{}\n", err.src.file_name(), err.src.line());
|
||||||
}
|
}
|
||||||
msg += genStackTrace(2);
|
msg += genStackTrace(2);
|
||||||
oxErr(msg);
|
oxErr(msg);
|
||||||
oxTracef("assert", "Failed assert: {} [{}:{}]", assertMsg, file, line);
|
oxTracef("assert", "Failed assert: {} [{}:{}]", assertMsg, file, line);
|
||||||
std::abort();
|
abort();
|
||||||
#else
|
#else
|
||||||
constexprPanic(file, line, assertMsg);
|
constexprPanic(file, line, assertMsg);
|
||||||
#endif
|
#endif
|
||||||
|
45
deps/ox/src/ox/std/assert.hpp
vendored
45
deps/ox/src/ox/std/assert.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -22,9 +22,15 @@
|
|||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
|
||||||
void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err = ox::Error(0)) noexcept;
|
[[noreturn]]
|
||||||
|
void panic(StringViewCR file, int line, StringViewCR panicMsg, Error const&err = {}) noexcept;
|
||||||
|
|
||||||
constexpr void constexprPanic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err = ox::Error(0)) noexcept {
|
[[noreturn]]
|
||||||
|
constexpr void constexprPanic(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
StringViewCR panicMsg,
|
||||||
|
Error const&err = {}) noexcept {
|
||||||
if (!std::is_constant_evaluated()) {
|
if (!std::is_constant_evaluated()) {
|
||||||
panic(file, line, panicMsg, err);
|
panic(file, line, panicMsg, err);
|
||||||
} else {
|
} else {
|
||||||
@ -32,10 +38,24 @@ constexpr void constexprPanic(StringViewCR file, int line, StringViewCR panicMsg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt, StringViewCR msg) noexcept;
|
void assertFailFuncRuntime(
|
||||||
void assertFailFuncRuntime(StringViewCR file, int line, const Error &err, StringViewCR, StringViewCR assertMsg) noexcept;
|
StringViewCR file,
|
||||||
|
int line,
|
||||||
|
StringViewCR assertTxt,
|
||||||
|
StringViewCR msg) noexcept;
|
||||||
|
void assertFailFuncRuntime(
|
||||||
|
StringViewCR file,
|
||||||
|
int line,
|
||||||
|
Error const&err,
|
||||||
|
StringViewCR,
|
||||||
|
StringViewCR assertMsg) noexcept;
|
||||||
|
|
||||||
constexpr void assertFunc(StringViewCR file, int line, bool pass, [[maybe_unused]]StringViewCR assertTxt, [[maybe_unused]]StringViewCR msg) noexcept {
|
constexpr void assertFunc(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
bool const pass,
|
||||||
|
[[maybe_unused]]StringViewCR assertTxt,
|
||||||
|
[[maybe_unused]]StringViewCR msg) noexcept {
|
||||||
if (!pass) {
|
if (!pass) {
|
||||||
if (!std::is_constant_evaluated()) {
|
if (!std::is_constant_evaluated()) {
|
||||||
assertFailFuncRuntime(file, line, assertTxt, msg);
|
assertFailFuncRuntime(file, line, assertTxt, msg);
|
||||||
@ -45,7 +65,12 @@ constexpr void assertFunc(StringViewCR file, int line, bool pass, [[maybe_unused
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr void assertFunc(StringViewCR file, int line, const Error &err, StringViewCR, StringViewCR assertMsg) noexcept {
|
constexpr void assertFunc(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
Error const&err,
|
||||||
|
StringViewCR,
|
||||||
|
StringViewCR assertMsg) noexcept {
|
||||||
if (err) {
|
if (err) {
|
||||||
if (!std::is_constant_evaluated()) {
|
if (!std::is_constant_evaluated()) {
|
||||||
assertFailFuncRuntime(file, line, err, {}, assertMsg);
|
assertFailFuncRuntime(file, line, err, {}, assertMsg);
|
||||||
@ -55,7 +80,11 @@ constexpr void assertFunc(StringViewCR file, int line, const Error &err, StringV
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr void expect(StringViewCR file, int line, const auto &actual, const auto &expected) noexcept {
|
constexpr void expect(
|
||||||
|
StringViewCR file,
|
||||||
|
int const line,
|
||||||
|
auto const&actual,
|
||||||
|
auto const&expected) noexcept {
|
||||||
if (actual != expected) {
|
if (actual != expected) {
|
||||||
if (!std::is_constant_evaluated()) {
|
if (!std::is_constant_evaluated()) {
|
||||||
#if defined(OX_USE_STDLIB)
|
#if defined(OX_USE_STDLIB)
|
||||||
|
2
deps/ox/src/ox/std/basestringview.hpp
vendored
2
deps/ox/src/ox/std/basestringview.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/bit.cpp
vendored
2
deps/ox/src/ox/std/bit.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/bit.hpp
vendored
2
deps/ox/src/ox/std/bit.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/bounds.hpp
vendored
2
deps/ox/src/ox/std/bounds.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/buffer.cpp
vendored
2
deps/ox/src/ox/std/buffer.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/buffer.hpp
vendored
2
deps/ox/src/ox/std/buffer.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/buildinfo.cpp
vendored
2
deps/ox/src/ox/std/buildinfo.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/buildinfo.hpp
vendored
2
deps/ox/src/ox/std/buildinfo.hpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
2
deps/ox/src/ox/std/byteswap.cpp
vendored
2
deps/ox/src/ox/std/byteswap.cpp
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015 - 2024 gary@drinkingtea.net
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user