Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Modules/ModuleInterface.h" class IOnlineSubsystem; typedef TSharedPtr<class IOnlineSubsystem, ESPMode::ThreadSafe> IOnlineSubsystemPtr; /** * Online subsystem module class * Wraps the loading of an online subsystem by name and allows new services to register themselves for use */ class FOnlineSubsystemModule : public IModuleInterface { private: /** Name of the default online service requested * Specified in DefaultEngine.ini * [OnlineSubsystem] * DefaultPlatformService */ FName DefaultPlatformService; /** * Name of the online service associated with the native platform * Specified in Base<Platform>Engine.ini * [OnlineSubsystem] * NativePlatformService */ FName NativePlatformService; /** * Name of the online service associated with User Defined strings * Specified in Base<Platform>Engine.ini * [OnlineSubsystem] * ConfigDefinedPlatformServices */ TMap<FString, FName> ConfigDefinedSubsystems; /** Existing instances of any online subsystems created <PlatformName:InstanceName> */ TMap<FName, class IOnlineFactory*> OnlineFactories; /** Mapping of all currently loaded platform service subsystems to their name */ TMap<FName, IOnlineSubsystemPtr> OnlineSubsystems; /** Have we warned already for a given online subsystem creation failure */ TMap<FName, bool> OnlineSubsystemFailureNotes; /** Config driven override of module name for online subsystem */ TMap<FString, FName> ModuleRedirects; /** * Transform an online subsystem identifier into its Subsystem and Instance constituents * * accepts the following forms: * <subsystem name>:<instance name> -> subsystem name / instance name * :<instance name> -> default subsystem / instance name * <subsystem name>: -> subsystem name / default instance * <subsystem name> -> subsystem name / default instance * <nothing> -> default subsystem / default instance * * @param FullName full name of the subsystem and instance that is being referenced * @param SubsystemName parsed out value or default subsystem name * @param InstanceName parsed out value or default instance name * * @return Properly formatted key name for accessing the online subsystem in the TMap */ FName ParseOnlineSubsystemName(const FName& FullName, FName& SubsystemName, FName& InstanceName) const; /** * Read any config defined subsystems from the configuration file */ void ProcessConfigDefinedSubsystems(); /** * Read any config defined subsystem module overrides from the configuration file */ void ProcessConfigDefinedModuleRedirects(); /** * Attempt to load the default subsystem specified in the configuration file */ bool TryLoadSubsystemAndSetDefault(FName ModuleName); /** * Attempt to load the default subsystem specified in the configuration file */ void LoadDefaultSubsystem(); /** * Called before ShutdownOnlineSubsystem, before other modules have been unloaded */ virtual void PreUnloadOnlineSubsystem(); /** * Shuts down all registered online subsystem platforms and unloads their modules */ virtual void ShutdownOnlineSubsystem(); public: FOnlineSubsystemModule() : DefaultPlatformService(NAME_None) {} virtual ~FOnlineSubsystemModule() {} /** * Main entry point for accessing an online subsystem by name * Will load the appropriate module if the subsystem isn't currently loaded * It's possible that the subsystem doesn't exist and therefore can return NULL * * @param InSubsystemName - name of subsystem as referenced by consumers * * @return Requested online subsystem, or NULL if that subsystem was unable to load or doesn't exist */ virtual IOnlineSubsystem* GetOnlineSubsystem(const FName InSubsystemName = NAME_None); /** * Get the online subsystem native to the current hardware * * @param bAutoLoad - load the module if not already loaded * * @return pointer to the appropriate online subsystem */ virtual IOnlineSubsystem* GetNativeSubsystem(bool bAutoLoad); /** * Get the online subsystem associated with the given config string * * @param ConfigString - Key to query for * @param bAutoLoad - load the module if not already loaded * * @return pointer to the appropriate online subsystem */ virtual IOnlineSubsystem* GetSubsystemByConfig(const FString& ConfigString, bool bAutoLoad); /** * Destroys an online subsystem created internally via access with GetOnlineSubsystem * Typically destruction of the subsystem is handled at application exit, but * there may be rare instances where the subsystem is destroyed by request * * @param InSubsystemName - name of subsystem as referenced by consumers */ virtual void DestroyOnlineSubsystem(const FName InSubsystemName); /** * Does an instance of subsystem with the given name exist * * @return true if the instance exists, false otherwise */ ONLINESUBSYSTEM_API "bool DoesInstanceExist(const FName InSubsystemName) const; /** * Determine if a subsystem is loaded by the OSS module * * @param SubsystemName - name of subsystem as referenced by consumers * @return true if module for the subsystem is loaded */ virtual bool IsOnlineSubsystemLoaded(const FName InSubsystemName) const; /** * Register a new online subsystem interface with the base level factory provider * @param FactoryName - name of subsystem as referenced by consumers * @param Factory - instantiation of the online subsystem interface, this will take ownership */ virtual void RegisterPlatformService(const FName FactoryName, class IOnlineFactory* Factory); /** * Unregister an existing online subsystem interface from the base level factory provider * @param FactoryName - name of subsystem as referenced by consumers */ virtual void UnregisterPlatformService(const FName FactoryName); /** * Enumerate all loaded online subsystems * * @param EnumCb functor to call for each online subsystem */ typedef TFunction<void(IOnlineSubsystem*)> FEnumerateOnlineSubsystemCb; void ONLINESUBSYSTEM_API EnumerateOnlineSubsystems(FEnumerateOnlineSubsystemCb& EnumCb); /** * Shutdown the current default subsystem (may be the fallback) and attempt to reload the one * specified in the configuration file * * **NOTE** This is intended for editor use only, attempting to use this at the wrong time can result * in unexpected crashes/behavior */ void ONLINESUBSYSTEM_API ReloadDefaultSubsystem(); // IModuleInterface /** * Called right after the module DLL has been loaded and the module object has been created * Overloaded to allow the default subsystem a chance to load */ virtual void StartupModule() override; /** * Called before the module has been unloaded * Overloaded to allow online subsystems to cancel any outstanding http requests */ virtual void PreUnloadCallback() override; /** * Called before the module is unloaded, right before the module object is destroyed. * Overloaded to shut down all loaded online subsystems */ virtual void ShutdownModule() override; /** * Override this to set whether your module is allowed to be unloaded on the fly * * @return Whether the module supports shutdown separate from the rest of the engine. */ virtual bool SupportsDynamicReloading() override { return false; } /** * Override this to set whether your module would like cleanup on application shutdown * * @return Whether the module supports shutdown on application exit */ virtual bool SupportsAutomaticShutdown() override { return true; } private: // Cached instance names for efficient lookup in ParseOnlineSubsystemName struct FInstanceNameEntry { FName SubsystemName; FName InstanceName; FName FullPath; }; mutable TMap<FName, FInstanceNameEntry> InstanceNames; }; /** Public references to the online subsystem module pointer should use this */ typedef TSharedPtr<FOnlineSubsystemModule, ESPMode::ThreadSafe> FOnlineSubsystemModulePtr;
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Swapzone Glitch ⭐Working⭐
JavaScript | 2 sec ago | 0.32 KB
⭐⭐ Instant Profit Method ⭐⭐ L
JavaScript | 3 sec ago | 0.31 KB
⭐Crypto Exchange Profit Method⭐
JavaScript | 5 sec ago | 0.32 KB
⭐⭐⭐MAKE $9OO INSTANTLY D M⭐⭐⭐
Java | 8 sec ago | 0.09 KB
⭐⭐Swapzone Glitch (Working)⭐⭐ D
JavaScript | 9 sec ago | 0.31 KB
⭐⭐⭐MAKE $9OO INSTANTLY D G⭐⭐⭐
Java | 9 sec ago | 0.06 KB
✅ MAKE $900 INSTANTLY
JavaScript | 10 sec ago | 0.32 KB
⭐⭐ MAKE $5OO IN 15 MIN⭐⭐ Y
JavaScript | 15 sec ago | 0.31 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!