diff --git a/.gitignore b/.gitignore index 9c43bdf6..5eb607b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,306 +1,107 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -[Bb]in/ -[Oo]bj/ -[Bb]uild/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Windows Azure Build Output -csx/ -*.build.csdef - -# Windows Azure Emulator -efc/ -rfc/ - -# Windows Store app package directory -AppPackages/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ - -# ========================= -# Operating System Files -# ========================= - -# OSX -# ========================= - -.DS_Store -.AppleDouble -.LSOverride - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows -# ========================= - -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk -Common/Common.Version/auto_version.h -Common/Common.Version/temp_auto_version.h -*.make -Makefile - -*.vcxproj -*.vcxproj.filters -*.sln -**/*.vcxproj -**/*.vcxproj.filters -**/*.sln - -CMakeCache.txt -CMakeFiles/ -cmake_install.cmake -Config/Galaxy64.dll -Config/Galaxy.dll -bin/ -Source/Version/auto_version.h -cmake-x86/ -cmake-x64/ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Visual Studio 2015 cache/options directory +.vs/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Windows shortcuts +*.lnk +Common/Common.Version/auto_version.h +Common/Common.Version/temp_auto_version.h +*.make +Makefile + +*.vcxproj +*.vcxproj.filters +*.sln +**/*.vcxproj +**/*.vcxproj.filters +**/*.sln + +# Project specific +CMakeCache.txt +CMakeFiles/ +cmake_install.cmake +Config/Galaxy64.dll +Config/Galaxy.dll +bin/ +Source/Version/auto_version.h +cmake-x86/ +cmake-x64/ cmake-linux/ \ No newline at end of file diff --git a/Source/DLLs/1.100.2/x86/UniverseLAN.def b/Source/DLLs/1.100.2/x86/UniverseLAN.def new file mode 100644 index 00000000..fdd01190 --- /dev/null +++ b/Source/DLLs/1.100.2/x86/UniverseLAN.def @@ -0,0 +1,14 @@ +LIBRARY +EXPORTS + ??0IGalaxy@api@galaxy@@QAE@ABV012@@Z @1 + ??0IGalaxy@api@galaxy@@QAE@XZ @2 + ??1IGalaxy@api@galaxy@@UAE@XZ @3 + ??4GalaxyFactory@api@galaxy@@QAEAAV012@ABV012@@Z @4 + ??4IGalaxy@api@galaxy@@QAEAAV012@ABV012@@Z @5 + ??_7IGalaxy@api@galaxy@@6B@ @6 + ?CreateInstance@GalaxyFactory@api@galaxy@@SAPAVIGalaxy@23@XZ @7 + ?GetErrorManager@GalaxyFactory@api@galaxy@@SAPAVIErrorManager@23@XZ @8 + ?GetInstance@GalaxyFactory@api@galaxy@@SAPAVIGalaxy@23@XZ @9 + ?ResetInstance@GalaxyFactory@api@galaxy@@SAXXZ @10 + ?errorManager@GalaxyFactory@api@galaxy@@0PAVIErrorManager@23@A @11 + ?instance@GalaxyFactory@api@galaxy@@0PAVIGalaxy@23@A @12 diff --git a/Source/DLLs/1.121.2/x64/UniverseLAN.def b/Source/DLLs/1.121.2/x64/UniverseLAN.def new file mode 100644 index 00000000..d8c369cf --- /dev/null +++ b/Source/DLLs/1.121.2/x64/UniverseLAN.def @@ -0,0 +1,28 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPEAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPEAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPEAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPEAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPEAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @8 + ?GameServerUser@api@galaxy@@YAPEAVIUser@12@XZ @9 + ?GetError@api@galaxy@@YAPEBVIError@12@XZ @10 + ?Init@api@galaxy@@YAXAEBUInitOptions@12@@Z @11 + ?InitGameServer@api@galaxy@@YAXAEBUInitOptions@12@@Z @12 + ?ListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @13 + ?Logger@api@galaxy@@YAPEAVILogger@12@XZ @14 + ?Matchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @15 + ?Networking@api@galaxy@@YAPEAVINetworking@12@XZ @16 + ?ProcessData@api@galaxy@@YAXXZ @17 + ?ProcessGameServerData@api@galaxy@@YAXXZ @18 + ?ServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @19 + ?Shutdown@api@galaxy@@YAXXZ @20 + ?ShutdownGameServer@api@galaxy@@YAXXZ @21 + ?Stats@api@galaxy@@YAPEAVIStats@12@XZ @22 + ?Storage@api@galaxy@@YAPEAVIStorage@12@XZ @23 + ?User@api@galaxy@@YAPEAVIUser@12@XZ @24 + ?Utils@api@galaxy@@YAPEAVIUtils@12@XZ @25 + load @26 diff --git a/Source/DLLs/1.124.0/x64/UniverseLAN.def b/Source/DLLs/1.124.0/x64/UniverseLAN.def new file mode 100644 index 00000000..d8c369cf --- /dev/null +++ b/Source/DLLs/1.124.0/x64/UniverseLAN.def @@ -0,0 +1,28 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPEAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPEAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPEAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPEAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPEAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @8 + ?GameServerUser@api@galaxy@@YAPEAVIUser@12@XZ @9 + ?GetError@api@galaxy@@YAPEBVIError@12@XZ @10 + ?Init@api@galaxy@@YAXAEBUInitOptions@12@@Z @11 + ?InitGameServer@api@galaxy@@YAXAEBUInitOptions@12@@Z @12 + ?ListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @13 + ?Logger@api@galaxy@@YAPEAVILogger@12@XZ @14 + ?Matchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @15 + ?Networking@api@galaxy@@YAPEAVINetworking@12@XZ @16 + ?ProcessData@api@galaxy@@YAXXZ @17 + ?ProcessGameServerData@api@galaxy@@YAXXZ @18 + ?ServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @19 + ?Shutdown@api@galaxy@@YAXXZ @20 + ?ShutdownGameServer@api@galaxy@@YAXXZ @21 + ?Stats@api@galaxy@@YAPEAVIStats@12@XZ @22 + ?Storage@api@galaxy@@YAPEAVIStorage@12@XZ @23 + ?User@api@galaxy@@YAPEAVIUser@12@XZ @24 + ?Utils@api@galaxy@@YAPEAVIUtils@12@XZ @25 + load @26 diff --git a/Source/DLLs/1.124.0/x86/UniverseLAN.def b/Source/DLLs/1.124.0/x86/UniverseLAN.def new file mode 100644 index 00000000..95594659 --- /dev/null +++ b/Source/DLLs/1.124.0/x86/UniverseLAN.def @@ -0,0 +1,28 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPAVINetworking@12@XZ @8 + ?GameServerUser@api@galaxy@@YAPAVIUser@12@XZ @9 + ?GetError@api@galaxy@@YAPBVIError@12@XZ @10 + ?Init@api@galaxy@@YAXABUInitOptions@12@@Z @11 + ?InitGameServer@api@galaxy@@YAXABUInitOptions@12@@Z @12 + ?ListenerRegistrar@api@galaxy@@YAPAVIListenerRegistrar@12@XZ @13 + ?Logger@api@galaxy@@YAPAVILogger@12@XZ @14 + ?Matchmaking@api@galaxy@@YAPAVIMatchmaking@12@XZ @15 + ?Networking@api@galaxy@@YAPAVINetworking@12@XZ @16 + ?ProcessData@api@galaxy@@YAXXZ @17 + ?ProcessGameServerData@api@galaxy@@YAXXZ @18 + ?ServerNetworking@api@galaxy@@YAPAVINetworking@12@XZ @19 + ?Shutdown@api@galaxy@@YAXXZ @20 + ?ShutdownGameServer@api@galaxy@@YAXXZ @21 + ?Stats@api@galaxy@@YAPAVIStats@12@XZ @22 + ?Storage@api@galaxy@@YAPAVIStorage@12@XZ @23 + ?User@api@galaxy@@YAPAVIUser@12@XZ @24 + ?Utils@api@galaxy@@YAPAVIUtils@12@XZ @25 + load @26 diff --git a/Source/DLLs/1.139.2/x64/UniverseLAN.def b/Source/DLLs/1.139.2/x64/UniverseLAN.def new file mode 100644 index 00000000..593061f8 --- /dev/null +++ b/Source/DLLs/1.139.2/x64/UniverseLAN.def @@ -0,0 +1,30 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPEAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPEAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPEAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPEAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPEAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @8 + ?GameServerTelemetry@api@galaxy@@YAPEAVITelemetry@12@XZ @9 + ?GameServerUser@api@galaxy@@YAPEAVIUser@12@XZ @10 + ?GameServerUtils@api@galaxy@@YAPEAVIUtils@12@XZ @11 + ?GetError@api@galaxy@@YAPEBVIError@12@XZ @12 + ?Init@api@galaxy@@YAXAEBUInitOptions@12@@Z @13 + ?InitGameServer@api@galaxy@@YAXAEBUInitOptions@12@@Z @14 + ?ListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @15 + ?Logger@api@galaxy@@YAPEAVILogger@12@XZ @16 + ?Matchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @17 + ?Networking@api@galaxy@@YAPEAVINetworking@12@XZ @18 + ?ProcessData@api@galaxy@@YAXXZ @19 + ?ProcessGameServerData@api@galaxy@@YAXXZ @20 + ?Shutdown@api@galaxy@@YAXXZ @21 + ?ShutdownGameServer@api@galaxy@@YAXXZ @22 + ?Stats@api@galaxy@@YAPEAVIStats@12@XZ @23 + ?Storage@api@galaxy@@YAPEAVIStorage@12@XZ @24 + ?Telemetry@api@galaxy@@YAPEAVITelemetry@12@XZ @25 + ?User@api@galaxy@@YAPEAVIUser@12@XZ @26 + ?Utils@api@galaxy@@YAPEAVIUtils@12@XZ @27 + load @28 diff --git a/Source/DLLs/1.139.2/x86/UniverseLAN.def b/Source/DLLs/1.139.2/x86/UniverseLAN.def new file mode 100644 index 00000000..f888b0d4 --- /dev/null +++ b/Source/DLLs/1.139.2/x86/UniverseLAN.def @@ -0,0 +1,30 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPAVINetworking@12@XZ @8 + ?GameServerTelemetry@api@galaxy@@YAPAVITelemetry@12@XZ @9 + ?GameServerUser@api@galaxy@@YAPAVIUser@12@XZ @10 + ?GameServerUtils@api@galaxy@@YAPAVIUtils@12@XZ @11 + ?GetError@api@galaxy@@YAPBVIError@12@XZ @12 + ?Init@api@galaxy@@YAXABUInitOptions@12@@Z @13 + ?InitGameServer@api@galaxy@@YAXABUInitOptions@12@@Z @14 + ?ListenerRegistrar@api@galaxy@@YAPAVIListenerRegistrar@12@XZ @15 + ?Logger@api@galaxy@@YAPAVILogger@12@XZ @16 + ?Matchmaking@api@galaxy@@YAPAVIMatchmaking@12@XZ @17 + ?Networking@api@galaxy@@YAPAVINetworking@12@XZ @18 + ?ProcessData@api@galaxy@@YAXXZ @19 + ?ProcessGameServerData@api@galaxy@@YAXXZ @20 + ?Shutdown@api@galaxy@@YAXXZ @21 + ?ShutdownGameServer@api@galaxy@@YAXXZ @22 + ?Stats@api@galaxy@@YAPAVIStats@12@XZ @23 + ?Storage@api@galaxy@@YAPAVIStorage@12@XZ @24 + ?Telemetry@api@galaxy@@YAPAVITelemetry@12@XZ @25 + ?User@api@galaxy@@YAPAVIUser@12@XZ @26 + ?Utils@api@galaxy@@YAPAVIUtils@12@XZ @27 + load @28 diff --git a/Source/DLLs/1.148.3/x64/UniverseLAN.def b/Source/DLLs/1.148.3/x64/UniverseLAN.def new file mode 100644 index 00000000..593061f8 --- /dev/null +++ b/Source/DLLs/1.148.3/x64/UniverseLAN.def @@ -0,0 +1,30 @@ +LIBRARY +EXPORTS + ?Apps@api@galaxy@@YAPEAVIApps@12@XZ @1 + ?Chat@api@galaxy@@YAPEAVIChat@12@XZ @2 + ?CustomNetworking@api@galaxy@@YAPEAVICustomNetworking@12@XZ @3 + ?Friends@api@galaxy@@YAPEAVIFriends@12@XZ @4 + ?GameServerListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @5 + ?GameServerLogger@api@galaxy@@YAPEAVILogger@12@XZ @6 + ?GameServerMatchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @7 + ?GameServerNetworking@api@galaxy@@YAPEAVINetworking@12@XZ @8 + ?GameServerTelemetry@api@galaxy@@YAPEAVITelemetry@12@XZ @9 + ?GameServerUser@api@galaxy@@YAPEAVIUser@12@XZ @10 + ?GameServerUtils@api@galaxy@@YAPEAVIUtils@12@XZ @11 + ?GetError@api@galaxy@@YAPEBVIError@12@XZ @12 + ?Init@api@galaxy@@YAXAEBUInitOptions@12@@Z @13 + ?InitGameServer@api@galaxy@@YAXAEBUInitOptions@12@@Z @14 + ?ListenerRegistrar@api@galaxy@@YAPEAVIListenerRegistrar@12@XZ @15 + ?Logger@api@galaxy@@YAPEAVILogger@12@XZ @16 + ?Matchmaking@api@galaxy@@YAPEAVIMatchmaking@12@XZ @17 + ?Networking@api@galaxy@@YAPEAVINetworking@12@XZ @18 + ?ProcessData@api@galaxy@@YAXXZ @19 + ?ProcessGameServerData@api@galaxy@@YAXXZ @20 + ?Shutdown@api@galaxy@@YAXXZ @21 + ?ShutdownGameServer@api@galaxy@@YAXXZ @22 + ?Stats@api@galaxy@@YAPEAVIStats@12@XZ @23 + ?Storage@api@galaxy@@YAPEAVIStorage@12@XZ @24 + ?Telemetry@api@galaxy@@YAPEAVITelemetry@12@XZ @25 + ?User@api@galaxy@@YAPEAVIUser@12@XZ @26 + ?Utils@api@galaxy@@YAPEAVIUtils@12@XZ @27 + load @28 diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2010.vcxproj.vspscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2010.vcxproj.vspscc new file mode 100644 index 00000000..794f014c --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2010.vcxproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2015.vcxproj.vspscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2015.vcxproj.vspscc new file mode 100644 index 00000000..6cb031bc --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2015.vcxproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2017.vcxproj.vspscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2017.vcxproj.vspscc new file mode 100644 index 00000000..6cb031bc --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2017.vcxproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2022.vcxproj.vspscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2022.vcxproj.vspscc new file mode 100644 index 00000000..6cb031bc --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC2022.vcxproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vcproj.vspscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vcproj.vspscc new file mode 100644 index 00000000..feffdeca --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vssscc b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vssscc new file mode 100644 index 00000000..794f014c --- /dev/null +++ b/Source/Vendor/StackWalker/Main/StackWalker/StackWalker_VC9.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Source/Vendor/boost/boost/predef/architecture/x86/32.h b/Source/Vendor/boost/boost/predef/architecture/x86/32.h new file mode 100644 index 00000000..b20fed9d --- /dev/null +++ b/Source/Vendor/boost/boost/predef/architecture/x86/32.h @@ -0,0 +1,93 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H +#define BOOST_PREDEF_ARCHITECTURE_X86_32_H + +#include +#include + +/* tag::reference[] += `BOOST_ARCH_X86_32` + +http://en.wikipedia.org/wiki/X86[Intel x86] architecture: +If available versions [3-6] are specifically detected. + +[options="header"] +|=== +| {predef_symbol} | {predef_version} + +| `i386` | {predef_detection} +| `+__i386__+` | {predef_detection} +| `+__i486__+` | {predef_detection} +| `+__i586__+` | {predef_detection} +| `+__i686__+` | {predef_detection} +| `+__i386+` | {predef_detection} +| `+_M_IX86+` | {predef_detection} +| `+_X86_+` | {predef_detection} +| `+__THW_INTEL__+` | {predef_detection} +| `+__I86__+` | {predef_detection} +| `+__INTEL__+` | {predef_detection} + +| `+__I86__+` | V.0.0 +| `+_M_IX86+` | V.0.0 +| `+__i686__+` | 6.0.0 +| `+__i586__+` | 5.0.0 +| `+__i486__+` | 4.0.0 +| `+__i386__+` | 3.0.0 +|=== +*/ // end::reference[] + +#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(i386) || defined(__i386__) || \ + defined(__i486__) || defined(__i586__) || \ + defined(__i686__) || defined(__i386) || \ + defined(_M_IX86) || defined(_X86_) || \ + defined(__THW_INTEL__) || defined(__I86__) || \ + defined(__INTEL__) +# undef BOOST_ARCH_X86_32 +# if !defined(BOOST_ARCH_X86_32) && defined(__I86__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86) +# define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i686__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i586__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i486__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i386__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_X86_32 +# define BOOST_ARCH_X86_32_AVAILABLE +#endif + +#if BOOST_ARCH_X86_32 +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#define BOOST_ARCH_X86_32_NAME "Intel x86-32" + +#include + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME) diff --git a/Source/Vendor/boost/boost/predef/architecture/x86/64.h b/Source/Vendor/boost/boost/predef/architecture/x86/64.h new file mode 100644 index 00000000..6f59722b --- /dev/null +++ b/Source/Vendor/boost/boost/predef/architecture/x86/64.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2021 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_X86_64_H +#define BOOST_PREDEF_ARCHITECTURE_X86_64_H + +#include +#include + +/* tag::reference[] += `BOOST_ARCH_X86_64` + +https://en.wikipedia.org/wiki/X86-64[X86-64] architecture. + +[options="header"] +|=== +| {predef_symbol} | {predef_version} + +| `+__x86_64+` | {predef_detection} +| `+__x86_64__+` | {predef_detection} +| `+__amd64__+` | {predef_detection} +| `+__amd64+` | {predef_detection} +| `+_M_X64+` | {predef_detection} +|=== +*/ // end::reference[] + +#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__x86_64) || defined(__x86_64__) || \ + defined(__amd64__) || defined(__amd64) || \ + defined(_M_X64) +# undef BOOST_ARCH_X86_64 +# define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_X86_64 +# define BOOST_ARCH_X86_64_AVAILABLE +#endif + +#if BOOST_ARCH_X86_64 +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#define BOOST_ARCH_X86_64_NAME "Intel x86-64" + +#include + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME) diff --git a/Source/Vendor/boost/boost/predef/hardware/simd/x86/versions.h b/Source/Vendor/boost/boost/predef/hardware/simd/x86/versions.h new file mode 100644 index 00000000..ef5b002d --- /dev/null +++ b/Source/Vendor/boost/boost/predef/hardware/simd/x86/versions.h @@ -0,0 +1,135 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H +#define BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H + +#include + +/* tag::reference[] += `BOOST_HW_SIMD_X86_*_VERSION` + +Those defines represent x86 SIMD extensions versions. + +NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_X86`. +*/ // end::reference[] + +// --------------------------------- + +/* tag::reference[] += `BOOST_HW_SIMD_X86_MMX_VERSION` + +The https://en.wikipedia.org/wiki/MMX_(instruction_set)[MMX] x86 extension +version number. + +Version number is: *0.99.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_MMX_VERSION BOOST_VERSION_NUMBER(0, 99, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSE_VERSION` + +The https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions[SSE] x86 extension +version number. + +Version number is: *1.0.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSE_VERSION BOOST_VERSION_NUMBER(1, 0, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSE2_VERSION` + +The https://en.wikipedia.org/wiki/SSE2[SSE2] x86 extension version number. + +Version number is: *2.0.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSE2_VERSION BOOST_VERSION_NUMBER(2, 0, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSE3_VERSION` + +The https://en.wikipedia.org/wiki/SSE3[SSE3] x86 extension version number. + +Version number is: *3.0.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSE3_VERSION BOOST_VERSION_NUMBER(3, 0, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSSE3_VERSION` + +The https://en.wikipedia.org/wiki/SSSE3[SSSE3] x86 extension version number. + +Version number is: *3.1.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSSE3_VERSION BOOST_VERSION_NUMBER(3, 1, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSE4_1_VERSION` + +The https://en.wikipedia.org/wiki/SSE4#SSE4.1[SSE4_1] x86 extension version +number. + +Version number is: *4.1.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSE4_1_VERSION BOOST_VERSION_NUMBER(4, 1, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_SSE4_2_VERSION` + +The https://en.wikipedia.org/wiki/SSE4##SSE4.2[SSE4_2] x86 extension version +number. + +Version number is: *4.2.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_SSE4_2_VERSION BOOST_VERSION_NUMBER(4, 2, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_AVX_VERSION` + +The https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX] x86 +extension version number. + +Version number is: *5.0.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_AVX_VERSION BOOST_VERSION_NUMBER(5, 0, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_FMA3_VERSION` + +The https://en.wikipedia.org/wiki/FMA_instruction_set[FMA3] x86 extension +version number. + +Version number is: *5.2.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_FMA3_VERSION BOOST_VERSION_NUMBER(5, 2, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_AVX2_VERSION` + +The https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2[AVX2] +x86 extension version number. + +Version number is: *5.3.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_AVX2_VERSION BOOST_VERSION_NUMBER(5, 3, 0) + +/* tag::reference[] += `BOOST_HW_SIMD_X86_MIC_VERSION` + +The https://en.wikipedia.org/wiki/Xeon_Phi[MIC] (Xeon Phi) x86 extension +version number. + +Version number is: *9.0.0*. +*/ // end::reference[] +#define BOOST_HW_SIMD_X86_MIC_VERSION BOOST_VERSION_NUMBER(9, 0, 0) + +/* tag::reference[] + +*/ // end::reference[] + +#endif diff --git a/Source/Vendor/boost/boost/preprocessor/debug/error.hpp b/Source/Vendor/boost/boost/preprocessor/debug/error.hpp new file mode 100644 index 00000000..c8ae5e75 --- /dev/null +++ b/Source/Vendor/boost/boost/preprocessor/debug/error.hpp @@ -0,0 +1,33 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP +# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP +# +# include +# include +# +# /* BOOST_PP_ERROR */ +# +# if BOOST_PP_CONFIG_ERRORS +# define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code) +# endif +# +# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS) +# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW) +# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW) +# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW) +# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW) +# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW) +# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW) +# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO) +# +# endif diff --git a/Source/Vendor/boost/libs/chrono/build/Jamfile.v2 b/Source/Vendor/boost/libs/chrono/build/Jamfile.v2 new file mode 100644 index 00000000..cda020bb --- /dev/null +++ b/Source/Vendor/boost/libs/chrono/build/Jamfile.v2 @@ -0,0 +1,110 @@ +# Boost Chrono Library Build Jamfile + +# Copyright Beman Dawes 2002, 2006, 2008 +# Copyright 2009-2012 Vicente J.Botet Escriba. + +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or www.boost.org/LICENSE_1_0.txt) + +# See library home page at http://www.boost.org/libs/chrono + +project boost/chrono + : source-location ../src + : requirements + freebsd:"-lrt" + linux:"-lrt -lpthread" + pgi:"-lrt" + #single:BOOST_CHRONO_THREAD_DISABLED + #BOOST_ERROR_CODE_HEADER_ONLY + #BOOST_COMMON_TYPE_USES_STATIC_ASSERT + #BOOST_RATIO_USES_STATIC_ASSERT + #BOOST_CHRONO_USES_STATIC_ASSERT + #BOOST_COMMON_TYPE_USES_MPL_ASSERT + #BOOST_RATIO_USES_MPL_ASSERT + #BOOST_CHRONO_USES_MPL_ASSERT + #BOOST_COMMON_TYPE_USES_ARRAY_ASSERT + #BOOST_RATIO_USES_ARRAY_ASSERT + #BOOST_CHRONO_USES_ARRAY_ASSERT + sun:__typeof__=__typeof__ + #gcc-3.4.4:--enable-auto-import + #gcc-4.3.4:--enable-auto-import + #gcc-mingw-4.4.0:--enable-auto-import + #gcc-mingw-4.5.0:--enable-auto-import + all + gcc:extra + #gcc:pedantic + gcc:-Wno-long-long + #gcc:-Wno-variadic-macros + gcc-4:-Wno-variadic-macros + gcc-5:-Wno-variadic-macros + darwin:pedantic + darwin:-Wno-long-long + #darwin:-Wno-variadic-macros + darwin-4:-Wno-variadic-macros + darwin-5:-Wno-variadic-macros + #pathscale:-Wextra + pathscale:-Wno-long-long + pathscale:-pedantic + clang:pedantic + clang:-Wno-long-long + clang:-Wno-variadic-macros + gcc-4.4.0,windows:-fdiagnostics-show-option + gcc-4.5.0,windows:-fdiagnostics-show-option + gcc-4.6.0,windows:-fdiagnostics-show-option + gcc-4.6.3,windows:-fdiagnostics-show-option + gcc-4.7.0,windows:-fdiagnostics-show-option + gcc-4.8.0,windows:-fdiagnostics-show-option + msvc:/wd4512 + +# Note: Some of the remarks from the Intel compiler are disabled +# remark #193: zero used for undefined preprocessing identifier "XXX" +# remark #304: access control not specified ("public" by default) +# remark #383: value copied to temporary, reference to temporary used +# remark #444: destructor for base class "XXX" (declared at line YYY") is not virtual +# remark #593: variable "XXX" was set but never used +# remark #981: operands are evaluated in unspecified order +# remark #1418: external function definition with no prior declaration +# remark #2415: variable "XXX" of static storage duration was declared but never referenced + + intel:-wd193,304,383,444 + intel:-wd593,981 + intel:-wd1418 + intel:-wd2415 + + + + : usage-requirements # pass these requirement to dependents (i.e. users) + single:BOOST_CHRONO_THREAD_DISABLED + #BOOST_ERROR_CODE_HEADER_ONLY + #BOOST_COMMON_TYPE_USES_STATIC_ASSERT + #BOOST_RATIO_USES_STATIC_ASSERT + #BOOST_CHRONO_USES_STATIC_ASSERT + #BOOST_COMMON_TYPE_USES_MPL_ASSERT + #BOOST_RATIO_USES_MPL_ASSERT + #BOOST_CHRONO_USES_MPL_ASSERT + #BOOST_COMMON_TYPE_USES_ARRAY_ASSERT + #BOOST_RATIO_USES_ARRAY_ASSERT + #BOOST_CHRONO_USES_ARRAY_ASSERT + #vacpp:BOOST_COMMON_TYPE_DONT_USE_TYPEOF + vacpp:BOOST_TYPEOF_EMULATION + sun:__typeof__=__typeof__ + + shared:BOOST_CHRONO_DYN_LINK=1 + static:BOOST_CHRONO_STATIC_LINK=1 + gcc-3.4.4:--enable-auto-import + gcc-4.3.4:--enable-auto-import + gcc-4.4.0,windows:--enable-auto-import + gcc-4.5.0,windows:--enable-auto-import + ; + +SOURCES = chrono thread_clock process_cpu_clocks ; + + +lib boost_chrono + : $(SOURCES).cpp + : + shared:BOOST_ALL_DYN_LINK=1 # tell source we're building dll's + static:BOOST_All_STATIC_LINK=1 # tell source we're building static lib's + ; + +boost-install boost_chrono ; diff --git a/Source/Vendor/boost/libs/random/build/Jamfile.v2 b/Source/Vendor/boost/libs/random/build/Jamfile.v2 new file mode 100644 index 00000000..34d7f249 --- /dev/null +++ b/Source/Vendor/boost/libs/random/build/Jamfile.v2 @@ -0,0 +1,18 @@ +# Jamfile.v2 +# +# Copyright (c) 2010 +# Steven Watanabe +# +# Distributed under the Boost Software License, Version 1.0. (See +# accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +project /boost/random + : source-location ../src + : requirements shared:BOOST_RANDOM_DYN_LINK + : usage-requirements shared:BOOST_RANDOM_DYN_LINK +; + +lib boost_random : [ glob *.cpp ] ; + +boost-install boost_random ; diff --git a/Source/Vendor/boost/libs/regex/build/Jamfile.v2 b/Source/Vendor/boost/libs/regex/build/Jamfile.v2 new file mode 100644 index 00000000..08f98195 --- /dev/null +++ b/Source/Vendor/boost/libs/regex/build/Jamfile.v2 @@ -0,0 +1,165 @@ +# copyright John Maddock 2003 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt. + +import modules ; +import testing ; +import errors ; + +project : requirements + # default to all warnings on: + all + ; + +local disable-icu = [ MATCH (--disable-icu) : [ modules.peek : ARGV ] ] ; + +rule path_options ( properties * ) +{ + local result ; + if 64 in $(properties) && msvc in $(properties) + { + result = $(ICU_PATH)/bin64 $(ICU_PATH)/lib64 ; + } + else + { + result = $(ICU_PATH)/bin $(ICU_PATH)/lib ; + } + return $(result) ; +} + +# +# ICU configuration: +# +if ! $(disable-icu) +{ + if [ modules.peek : ICU_LINK ] + { + errors.user-error : "The ICU_LINK option is no longer supported by the Boost.Regex build - please refer to the documentation for equivalent options" ; + } + + if [ modules.peek : ICU_PATH ] + { + ICU_PATH = [ modules.peek : ICU_PATH ] ; + } + if [ modules.peek : ICU_ICUUC_NAME ] + { + ICU_ICUUC_NAME = [ modules.peek : ICU_ICUUC_NAME ] ; + } + if [ modules.peek : ICU_ICUDT_NAME ] + { + ICU_ICUDT_NAME = [ modules.peek : ICU_ICUDT_NAME ] ; + } + if [ modules.peek : ICU_ICUIN_NAME ] + { + ICU_ICUIN_NAME = [ modules.peek : ICU_ICUIN_NAME ] ; + } + + if $(ICU_ICUUC_NAME) + { + lib icuuc : : $(ICU_ICUUC_NAME) @path_options ; + } + else + { + lib icuuc : : shared @path_options ; + lib icuuc : : msvc debug icuucd shared @path_options ; + lib icuuc : : intel windows debug icuucd shared @path_options ; + lib icuuc : : sicuuc static @path_options ; + lib icuuc : : msvc debug sicuucd static @path_options ; + lib icuuc : : intel windows debug sicuucd static @path_options ; + lib icuuc : : this_is_an_invalid_library_name ; + } + if $(ICU_ICUDT_NAME) + { + lib icudt : : $(ICU_ICUDT_NAME) @path_options ; + } + else + { + lib icudt : : icudata shared @path_options ; + lib icudt : : icudt msvc shared @path_options ; + lib icudt : : icudt intel windows shared @path_options ; + lib icudt : : sicudata static @path_options ; + lib icudt : : sicudt msvc static @path_options ; + lib icudt : : sicudt intel windows static @path_options ; + lib icudt : : this_is_an_invalid_library_name ; + } + if $(ICU_ICUIN_NAME) + { + lib icuin : : $(ICU_ICUIN_NAME) @path_options ; + } + else + { + lib icuin : : icui18n shared @path_options ; + lib icuin : : msvc debug icuind shared @path_options ; + lib icuin : : msvc icuin shared @path_options ; + lib icuin : : intel windows debug icuind shared @path_options ; + lib icuin : : intel windows icuin shared @path_options ; + lib icuin : : sicui18n static @path_options ; + lib icuin : : msvc debug sicuind static @path_options ; + lib icuin : : msvc sicuin static @path_options ; + lib icuin : : intel windows debug sicuind static @path_options ; + lib icuin : : intel windows sicuin static @path_options ; + lib icuin : : this_is_an_invalid_library_name ; + } + + ICU_OPTS = + $(ICU_PATH)/include + shared:icuuc/shared + shared:icudt/shared + shared:icuin/shared + static:icuuc + static:icudt + static:icuin + windows,clang:"advapi32.lib" + BOOST_HAS_ICU=1 + static:U_STATIC_IMPLEMENTATION=1 + ; + + if [ modules.peek : ICU_DATA_DIR ] + { + rule data-dir-options ( properties * ) + { + local result ; + local data_dir = [ modules.peek : ICU_DATA_DIR ] ; + if emscripten in $(properties) + { + result = ICU_DATA_DIR=\\\"/$(data_dir:BS)\\\" + "--embed-file $(data_dir)@/$(data_dir:BS)" + ; + } + else + { + result = ICU_DATA_DIR=\\\"$(data_dir)\\\" ; + } + return $(result) ; + } + + ICU_OPTS += @data-dir-options ; + } + +} + +exe has_icu : has_icu_test.cpp : $(ICU_OPTS) ; +explicit has_icu ; + +obj is_legacy_03 : is_legacy_03.cpp ; +explicit is_legacy_03 ; + +alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ; + +SOURCES = + posix_api.cpp + regex.cpp + regex_debug.cpp + static_mutex.cpp + wide_posix_api.cpp +; + +lib boost_regex : ../src/$(SOURCES) icu_options + : + shared:BOOST_REGEX_DYN_LINK=1 + gcc-cygwin:static + ; + +boost-install boost_regex ; + diff --git a/Source/Vendor/boost/libs/regex/build/has_icu_test.cpp b/Source/Vendor/boost/libs/regex/build/has_icu_test.cpp new file mode 100644 index 00000000..36a919b4 --- /dev/null +++ b/Source/Vendor/boost/libs/regex/build/has_icu_test.cpp @@ -0,0 +1,56 @@ +/* + * + * Copyright (c) 2010 + * John Maddock + * + * Use, modification and distribution are subject to the + * Boost Software License, Version 1.0. (See accompanying file + * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#if defined(_MSC_VER) && !defined(_DLL) +//#error "Mixing ICU with a static runtime doesn't work" +#endif + +void print_error(UErrorCode err, const char* func) +{ + std::cerr << "Error from function " << func << " with error: " << ::u_errorName(err) << std::endl; +} + +int main() +{ +#ifdef ICU_DATA_DIR + ::u_setDataDirectory(ICU_DATA_DIR); +#endif + + // To detect possible binary mismatches between the installed ICU build, and whatever + // C++ std lib's we're using, we need to: + // * Make sure we call ICU C++ API's + // * Make sure we call std lib C++ API's as well (cout). + // * Be sure this program is run, not just built. + UErrorCode err = U_ZERO_ERROR; + UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, "GREEK SMALL LETTER ALPHA", &err); + std::cout << (int)c << std::endl; + if(err > 0) + { + print_error(err, "u_charFromName"); + return err; + } + U_NAMESPACE_QUALIFIER Locale l; + boost::scoped_ptr p_col(U_NAMESPACE_QUALIFIER Collator::createInstance(l, err)); + if(err > 0) + { + print_error(err, "Collator::createInstance"); + return err; + } + return err > 0 ? err : 0; +} diff --git a/Source/Vendor/boost/libs/regex/build/is_legacy_03.cpp b/Source/Vendor/boost/libs/regex/build/is_legacy_03.cpp new file mode 100644 index 00000000..78c36e19 --- /dev/null +++ b/Source/Vendor/boost/libs/regex/build/is_legacy_03.cpp @@ -0,0 +1,16 @@ +/* + * + * Copyright (c) 2020 + * John Maddock + * + * Use, modification and distribution are subject to the + * Boost Software License, Version 1.0. (See accompanying file + * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + * + */ + +#include + +#ifdef BOOST_REGEX_CXX03 +#error "Legacy mode" +#endif diff --git a/Source/Vendor/boost/libs/system/build/Jamfile.v2 b/Source/Vendor/boost/libs/system/build/Jamfile.v2 new file mode 100644 index 00000000..dcef696f --- /dev/null +++ b/Source/Vendor/boost/libs/system/build/Jamfile.v2 @@ -0,0 +1,25 @@ +# Boost System Library Build Jamfile + +# (C) Copyright Beman Dawes 2002, 2006 + +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or www.boost.org/LICENSE_1_0.txt) + +# See library home page at https://www.boost.org/libs/system + +project boost/system + : source-location ../src + : usage-requirements # pass these requirement to dependents (i.e. users) + shared:BOOST_SYSTEM_DYN_LINK=1 + static:BOOST_SYSTEM_STATIC_LINK=1 + ; + +SOURCES = error_code ; + +lib boost_system + : $(SOURCES).cpp + : shared:BOOST_SYSTEM_DYN_LINK=1 + static:BOOST_SYSTEM_STATIC_LINK=1 + ; + +boost-install boost_system ; diff --git a/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/base.hpp b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/base.hpp new file mode 100644 index 00000000..2e477b50 --- /dev/null +++ b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/base.hpp @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2014, Peter Thorson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the WebSocket++ Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef WEBSOCKETPP_TRANSPORT_DEBUG_BASE_HPP +#define WEBSOCKETPP_TRANSPORT_DEBUG_BASE_HPP + +#include +#include + +#include + +namespace websocketpp { +namespace transport { +/// Debug transport policy that is used for various mocking and stubbing duties +/// in unit tests. +namespace debug { + +/// debug transport errors +namespace error { +enum value { + /// Catch-all error for transport policy errors that don't fit in other + /// categories + general = 1, + + /// not implemented + not_implemented, + + invalid_num_bytes, + + double_read +}; + +/// debug transport error category +class category : public lib::error_category { + public: + category() {} + + char const * name() const _WEBSOCKETPP_NOEXCEPT_TOKEN_ { + return "websocketpp.transport.debug"; + } + + std::string message(int value) const { + switch(value) { + case general: + return "Generic stub transport policy error"; + case not_implemented: + return "feature not implemented"; + case invalid_num_bytes: + return "Invalid number of bytes"; + case double_read: + return "Read while another read was outstanding"; + default: + return "Unknown"; + } + } +}; + +/// Get a reference to a static copy of the debug transport error category +inline lib::error_category const & get_category() { + static category instance; + return instance; +} + +/// Get an error code with the given value and the debug transport category +inline lib::error_code make_error_code(error::value e) { + return lib::error_code(static_cast(e), get_category()); +} + +} // namespace error +} // namespace debug +} // namespace transport +} // namespace websocketpp +_WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_ +template<> struct is_error_code_enum +{ + static bool const value = true; +}; +_WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_ + +#endif // WEBSOCKETPP_TRANSPORT_DEBUG_BASE_HPP diff --git a/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/connection.hpp b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/connection.hpp new file mode 100644 index 00000000..ce13969b --- /dev/null +++ b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/connection.hpp @@ -0,0 +1,412 @@ +/* + * Copyright (c) 2014, Peter Thorson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the WebSocket++ Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef WEBSOCKETPP_TRANSPORT_DEBUG_CON_HPP +#define WEBSOCKETPP_TRANSPORT_DEBUG_CON_HPP + +#include + +#include + +#include +#include + +#include +#include +#include + +#include +#include + +namespace websocketpp { +namespace transport { +namespace debug { + +/// Empty timer class to stub out for timer functionality that stub +/// transport doesn't support +struct timer { + void cancel() {} +}; + +template +class connection : public lib::enable_shared_from_this< connection > { +public: + /// Type of this connection transport component + typedef connection type; + /// Type of a shared pointer to this connection transport component + typedef lib::shared_ptr ptr; + + /// transport concurrency policy + typedef typename config::concurrency_type concurrency_type; + /// Type of this transport's access logging policy + typedef typename config::alog_type alog_type; + /// Type of this transport's error logging policy + typedef typename config::elog_type elog_type; + + // Concurrency policy types + typedef typename concurrency_type::scoped_lock_type scoped_lock_type; + typedef typename concurrency_type::mutex_type mutex_type; + + typedef lib::shared_ptr timer_ptr; + + explicit connection(bool is_server, const lib::shared_ptr & alog, const lib::shared_ptr & elog) + : m_reading(false), m_is_server(is_server), m_alog(alog), m_elog(elog) + { + m_alog->write(log::alevel::devel,"debug con transport constructor"); + } + + /// Get a shared pointer to this component + ptr get_shared() { + return type::shared_from_this(); + } + + /// Set whether or not this connection is secure + /** + * Todo: docs + * + * @since 0.3.0-alpha4 + * + * @param value Whether or not this connection is secure. + */ + void set_secure(bool) {} + + /// Tests whether or not the underlying transport is secure + /** + * TODO: docs + * + * @return Whether or not the underlying transport is secure + */ + bool is_secure() const { + return false; + } + + /// Set uri hook + /** + * Called by the endpoint as a connection is being established to provide + * the uri being connected to to the transport layer. + * + * Implementation is optional and can be ignored if the transport has no + * need for this information. + * + * @since 0.6.0 + * + * @param u The uri to set + */ + void set_uri(uri_ptr) {} + + /// Set human readable remote endpoint address + /** + * Sets the remote endpoint address returned by `get_remote_endpoint`. This + * value should be a human readable string that describes the remote + * endpoint. Typically an IP address or hostname, perhaps with a port. But + * may be something else depending on the nature of the underlying + * transport. + * + * If none is set a default is returned. + * + * @since 0.3.0-alpha4 + * + * @param value The remote endpoint address to set. + */ + void set_remote_endpoint(std::string) {} + + /// Get human readable remote endpoint address + /** + * TODO: docs + * + * This value is used in access and error logs and is available to the end + * application for including in user facing interfaces and messages. + * + * @return A string identifying the address of the remote endpoint + */ + std::string get_remote_endpoint() const { + return "unknown (debug transport)"; + } + + /// Get the connection handle + /** + * @return The handle for this connection. + */ + connection_hdl get_handle() const { + return connection_hdl(); + } + + /// Call back a function after a period of time. + /** + * Timers are not implemented in this transport. The timer pointer will + * always be empty. The handler will never be called. + * + * @param duration Length of time to wait in milliseconds + * @param callback The function to call back when the timer has expired + * @return A handle that can be used to cancel the timer if it is no longer + * needed. + */ + timer_ptr set_timer(long, timer_handler handler) { + m_alog->write(log::alevel::devel,"debug connection set timer"); + m_timer_handler = handler; + return timer_ptr(); + } + + /// Manual input supply (read all) + /** + * Similar to read_some, but continues to read until all bytes in the + * supplied buffer have been read or the connection runs out of read + * requests. + * + * This method still may not read all of the bytes in the input buffer. if + * it doesn't it indicates that the connection was most likely closed or + * is in an error state where it is no longer accepting new input. + * + * @since 0.3.0 + * + * @param buf Char buffer to read into the websocket + * @param len Length of buf + * @return The number of characters from buf actually read. + */ + size_t read_all(char const * buf, size_t len) { + size_t total_read = 0; + size_t temp_read = 0; + + do { + temp_read = this->read_some_impl(buf+total_read,len-total_read); + total_read += temp_read; + } while (temp_read != 0 && total_read < len); + + return total_read; + } + + // debug stuff to invoke the async handlers + void expire_timer(lib::error_code const & ec) { + m_timer_handler(ec); + } + + void fullfil_write() { + m_write_handler(lib::error_code()); + } +protected: + /// Initialize the connection transport + /** + * Initialize the connection's transport component. + * + * @param handler The `init_handler` to call when initialization is done + */ + void init(init_handler handler) { + m_alog->write(log::alevel::devel,"debug connection init"); + handler(lib::error_code()); + } + + /// Initiate an async_read for at least num_bytes bytes into buf + /** + * Initiates an async_read request for at least num_bytes bytes. The input + * will be read into buf. A maximum of len bytes will be input. When the + * operation is complete, handler will be called with the status and number + * of bytes read. + * + * This method may or may not call handler from within the initial call. The + * application should be prepared to accept either. + * + * The application should never call this method a second time before it has + * been called back for the first read. If this is done, the second read + * will be called back immediately with a double_read error. + * + * If num_bytes or len are zero handler will be called back immediately + * indicating success. + * + * @param num_bytes Don't call handler until at least this many bytes have + * been read. + * @param buf The buffer to read bytes into + * @param len The size of buf. At maximum, this many bytes will be read. + * @param handler The callback to invoke when the operation is complete or + * ends in an error + */ + void async_read_at_least(size_t num_bytes, char * buf, size_t len, + read_handler handler) + { + std::stringstream s; + s << "debug_con async_read_at_least: " << num_bytes; + m_alog->write(log::alevel::devel,s.str()); + + if (num_bytes > len) { + handler(make_error_code(error::invalid_num_bytes),size_t(0)); + return; + } + + if (m_reading == true) { + handler(make_error_code(error::double_read),size_t(0)); + return; + } + + if (num_bytes == 0 || len == 0) { + handler(lib::error_code(),size_t(0)); + return; + } + + m_buf = buf; + m_len = len; + m_bytes_needed = num_bytes; + m_read_handler = handler; + m_cursor = 0; + m_reading = true; + } + + /// Asyncronous Transport Write + /** + * Write len bytes in buf to the output stream. Call handler to report + * success or failure. handler may or may not be called during async_write, + * but it must be safe for this to happen. + * + * Will return 0 on success. + * + * @param buf buffer to read bytes from + * @param len number of bytes to write + * @param handler Callback to invoke with operation status. + */ + void async_write(char const *, size_t, write_handler handler) { + m_alog->write(log::alevel::devel,"debug_con async_write"); + m_write_handler = handler; + } + + /// Asyncronous Transport Write (scatter-gather) + /** + * Write a sequence of buffers to the output stream. Call handler to report + * success or failure. handler may or may not be called during async_write, + * but it must be safe for this to happen. + * + * Will return 0 on success. + * + * @param bufs vector of buffers to write + * @param handler Callback to invoke with operation status. + */ + void async_write(std::vector const &, write_handler handler) { + m_alog->write(log::alevel::devel,"debug_con async_write buffer list"); + m_write_handler = handler; + } + + /// Set Connection Handle + /** + * @param hdl The new handle + */ + void set_handle(connection_hdl) {} + + /// Call given handler back within the transport's event system (if present) + /** + * Invoke a callback within the transport's event system if it has one. If + * it doesn't, the handler will be invoked immediately before this function + * returns. + * + * @param handler The callback to invoke + * + * @return Whether or not the transport was able to register the handler for + * callback. + */ + lib::error_code dispatch(dispatch_handler handler) { + handler(); + return lib::error_code(); + } + + /// Perform cleanup on socket shutdown_handler + /** + * @param h The `shutdown_handler` to call back when complete + */ + void async_shutdown(shutdown_handler handler) { + handler(lib::error_code()); + } + + size_t read_some_impl(char const * buf, size_t len) { + m_alog->write(log::alevel::devel,"debug_con read_some"); + + if (!m_reading) { + m_elog->write(log::elevel::devel,"write while not reading"); + return 0; + } + + size_t bytes_to_copy = (std::min)(len,m_len-m_cursor); + + std::copy(buf,buf+bytes_to_copy,m_buf+m_cursor); + + m_cursor += bytes_to_copy; + + if (m_cursor >= m_bytes_needed) { + complete_read(lib::error_code()); + } + + return bytes_to_copy; + } + + /// Signal that a requested read is complete + /** + * Sets the reading flag to false and returns the handler that should be + * called back with the result of the read. The cursor position that is sent + * is whatever the value of m_cursor is. + * + * It MUST NOT be called when m_reading is false. + * it MUST be called while holding the read lock + * + * It is important to use this method rather than directly setting/calling + * m_read_handler back because this function makes sure to delete the + * locally stored handler which contains shared pointers that will otherwise + * cause circular reference based memory leaks. + * + * @param ec The error code to forward to the read handler + */ + void complete_read(lib::error_code const & ec) { + m_reading = false; + + read_handler handler = m_read_handler; + m_read_handler = read_handler(); + + handler(ec,m_cursor); + } +private: + timer_handler m_timer_handler; + + // Read space (Protected by m_read_mutex) + char * m_buf; + size_t m_len; + size_t m_bytes_needed; + read_handler m_read_handler; + size_t m_cursor; + + // transport resources + connection_hdl m_connection_hdl; + write_handler m_write_handler; + shutdown_handler m_shutdown_handler; + + bool m_reading; + bool const m_is_server; + bool m_is_secure; + lib::shared_ptr m_alog; + lib::shared_ptr m_elog; + std::string m_remote_endpoint; +}; + + +} // namespace debug +} // namespace transport +} // namespace websocketpp + +#endif // WEBSOCKETPP_TRANSPORT_DEBUG_CON_HPP diff --git a/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/endpoint.hpp b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/endpoint.hpp new file mode 100644 index 00000000..adc89b38 --- /dev/null +++ b/Source/Vendor/websocketpp-0.8.2/include/websocketpp/transport/debug/endpoint.hpp @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2014, Peter Thorson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the WebSocket++ Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef WEBSOCKETPP_TRANSPORT_DEBUG_HPP +#define WEBSOCKETPP_TRANSPORT_DEBUG_HPP + +#include +#include + +#include +#include + +namespace websocketpp { +namespace transport { +namespace debug { + +template +class endpoint { +public: + /// Type of this endpoint transport component + typedef endpoint type; + /// Type of a pointer to this endpoint transport component + typedef lib::shared_ptr ptr; + + /// Type of this endpoint's concurrency policy + typedef typename config::concurrency_type concurrency_type; + /// Type of this endpoint's error logging policy + typedef typename config::elog_type elog_type; + /// Type of this endpoint's access logging policy + typedef typename config::alog_type alog_type; + + /// Type of this endpoint transport component's associated connection + /// transport component. + typedef debug::connection transport_con_type; + /// Type of a shared pointer to this endpoint transport component's + /// associated connection transport component + typedef typename transport_con_type::ptr transport_con_ptr; + + // generate and manage our own io_service + explicit endpoint() + { + //std::cout << "transport::iostream::endpoint constructor" << std::endl; + } + + /// Set whether or not endpoint can create secure connections + /** + * TODO: docs + * + * Setting this value only indicates whether or not the endpoint is capable + * of producing and managing secure connections. Connections produced by + * this endpoint must also be individually flagged as secure if they are. + * + * @since 0.3.0-alpha4 + * + * @param value Whether or not the endpoint can create secure connections. + */ + void set_secure(bool) {} + + /// Tests whether or not the underlying transport is secure + /** + * TODO: docs + * + * @return Whether or not the underlying transport is secure + */ + bool is_secure() const { + return false; + } +protected: + /// Initialize logging + /** + * The loggers are located in the main endpoint class. As such, the + * transport doesn't have direct access to them. This method is called + * by the endpoint constructor to allow shared logging from the transport + * component. These are raw pointers to member variables of the endpoint. + * In particular, they cannot be used in the transport constructor as they + * haven't been constructed yet, and cannot be used in the transport + * destructor as they will have been destroyed by then. + * + * @param a A pointer to the access logger to use. + * @param e A pointer to the error logger to use. + */ + void init_logging(lib::shared_ptr, lib::shared_ptr) {} + + /// Initiate a new connection + /** + * @param tcon A pointer to the transport connection component of the + * connection to connect. + * @param u A URI pointer to the URI to connect to. + * @param cb The function to call back with the results when complete. + */ + void async_connect(transport_con_ptr, uri_ptr, connect_handler cb) { + cb(lib::error_code()); + } + + /// Initialize a connection + /** + * Init is called by an endpoint once for each newly created connection. + * It's purpose is to give the transport policy the chance to perform any + * transport specific initialization that couldn't be done via the default + * constructor. + * + * @param tcon A pointer to the transport portion of the connection. + * @return A status code indicating the success or failure of the operation + */ + lib::error_code init(transport_con_ptr) { + return lib::error_code(); + } +private: + +}; + +} // namespace debug +} // namespace transport +} // namespace websocketpp + +#endif // WEBSOCKETPP_TRANSPORT_DEBUG_HPP