Namespace axr::sdk

namespace axr.sdk

Enums

enum ConnectionStatus

Describes the various connection states of the SDK’s active connection to the cluster.

Values:

NOT_CONNECTED

The SDK is not currently connected to a cluster.

CONNECTING

The SDK is currently trying to connect to the cluster.

CONNECTED

The SDK is connected to the cluster.

LOST_CONNECTION

The SDK’s connection to the cluster has been lost.

REFUSED

An error occurred while connecting to the cluster.

enum LoginStatus

Describes the various states of the user’s login with the cluster.

Values:

NOT_LOGGED_IN

The user is not currently logged in.

LOGGING_IN

A login attempt is currently pending.

LOGGED_IN

The user has successfully logged in to the cluster.

LOGGED_IN_LOCAL

The user has logged in using a local profile.

REFUSED

The login attempt failed.

enum PushMessageType

Describes the different types of push messages.

Values:

BINARY
JSON
class AbstractAPIClient : public axr.sdk.IAPIClient

Provides a lightweight wrapper for the .NET HttpClient that can perform automatic serialization, header assignment and automatic request retries.

Subclassed by axr.sdk.APIClient

class APIClient : public axr.sdk.AbstractAPIClient

Provides a lightweight wrapper for the .NET HttpClient that can perform automatic serialization, header assignment and automatic request retries.

class APIClientError : public Exception

An exception type that is thrown from APIClient if an unrecoverable error occurs during a request.

class AuthenticationFailedException : public Exception
class Configuration

The Configuration class defines global configuration information used by the SDK to function. It also stores state information of the owning CoreSDK instance.

class ConsoleLogger : public axr.sdk.ILogger
class PushMessage

Describes a push notification message that has arrived from the server.

class CoreSDK

Provides a single interface for the SDK and management for the various service classes.

class EntityBase : public axr.sdk.ModelBase

Provides an abstract base class for all model classes that can be stored in a database as an entity.

Subclassed by axr.sdk.Models.AccessControlList, axr.sdk.Models.Achievement, axr.sdk.Models.AchievementDefinition, axr.sdk.Models.ArchetypeDefinition, axr.sdk.Models.Asset, axr.sdk.Models.AssetStorageLocation, axr.sdk.Models.Backup, axr.sdk.Models.BackupStorageLocation, axr.sdk.Models.Contact, axr.sdk.Models.LaunchProfile, axr.sdk.Models.Leaderboard, axr.sdk.Models.LeaderboardRecord, axr.sdk.Models.Message, axr.sdk.Models.Order, axr.sdk.Models.Organization, axr.sdk.Models.Payment, axr.sdk.Models.PaymentMethod, axr.sdk.Models.Persona, axr.sdk.Models.PersonaResource, axr.sdk.Models.PersonaStat, axr.sdk.Models.PersonaStatDefinition, axr.sdk.Models.Product, axr.sdk.Models.ProductCategory, axr.sdk.Models.ProductFeature, axr.sdk.Models.Profile, axr.sdk.Models.PromoCode, axr.sdk.Models.Purchase, axr.sdk.Models.Quest, axr.sdk.Models.QuestDefinition, axr.sdk.Models.Resource, axr.sdk.Models.Restore, axr.sdk.Models.Role, axr.sdk.Models.ScalingPolicy, axr.sdk.Models.Script, axr.sdk.Models.ServerInstance, axr.sdk.Models.Session, axr.sdk.Models.Shard, axr.sdk.Models.Skill, axr.sdk.Models.SkillDefinition, axr.sdk.Models.Snapshot, axr.sdk.Models.Ticket, axr.sdk.Models.Transaction, axr.sdk.Models.User, axr.sdk.Models.UserLink, axr.sdk.Models.UserSecret, axr.sdk.Models.Wallet, axr.sdk.Models.Zone

class GuidConverter : public JsonConverter

Converts a Guid to and from its System.String representation.

interface IAPIClient

Defines a common interface for working with an HTTP REST API client.

Subclassed by axr.sdk.AbstractAPIClient

interface ILogger

Subclassed by axr.sdk.ConsoleLogger

class PlayerInfo

PlayerInfo is a meta-class containing all information for a specific player within the AcceleratXR platform. This includes user data, social data, online presence and more.

class PlayerInfoManager

The PlayerInfoManager is used to manage relevant player data with the AcceleratXR backend.

class SessionManager : public IDisposable

The SessionManager provides a higher level interface for working with session and matchmaking services.

class ModelBase : public axr.sdk.Object

Subclassed by axr.sdk.EntityBase, axr.sdk.Models.AppleReceipt, axr.sdk.Models.ArchetypeActivation, axr.sdk.Models.AuthToken, axr.sdk.Models.Criteria, axr.sdk.Models.Event, axr.sdk.Models.GoogleReceipt, axr.sdk.Models.NewUser, axr.sdk.Models.QuestProgress, axr.sdk.Models.SkillRequirementProgress, axr.sdk.Models.Statistic, axr.sdk.Models.Team, axr.sdk.QuestRequirement, axr.sdk.QuestReward, axr.sdk.SkillRequirement

class QuestRequirement : public axr.sdk.ModelBase

Defines a single requirement that must be met to fulfill a quest.

class QuestReward : public axr.sdk.ModelBase

Defines a single reward that will be given once a quest is fulfilled.

class SkillRequirement : public axr.sdk.ModelBase

Defines a single requirement that must be met to unlock a skill.

class Object : public DynamicObject, public IDynamicMetaObjectProvider, public IEnumerable<KeyValuePair<string, object>>, public IEquatable<Object>

Provides a dynamic object capable of storing any arbitrary set of properties at runtime. When this object is serialized to/from JSON only the data set in the Properties map will be included. Everything else will be ignored.

If sub-classing this make sure to call SetProperty or GetProperty in the property accessor you wish to be serialized.

Subclassed by axr.sdk.ModelBase, axr.sdk.Models.ACLRecord, axr.sdk.Models.Address, axr.sdk.Models.AssignServerInstance, axr.sdk.Models.OrderItem, axr.sdk.Models.ResourceCost, axr.sdk.Models.ResourceDefaults, axr.sdk.Models.ServiceStatus, axr.sdk.Models.ServiceStatusList, axr.sdk.Models.TransactionApproval, axr.sdk.Network.NetworkObject, axr.sdk.Network.SocketMessage

class ObjectConverter : public JsonConverter

Implementation of the JsonConverter that works with axr.sdk.Object instances.

class ServiceBase

Provides a common abstract base class for all Service utility classes.

Subclassed by axr.sdk.QuestDefinitionService, axr.sdk.Services.AccessControlListService, axr.sdk.Services.AchievementDefinitionService, axr.sdk.Services.AchievementService, axr.sdk.Services.ArchetypeDefinitionService, axr.sdk.Services.ArchetypeService, axr.sdk.Services.AssetService, axr.sdk.Services.AssetStorageLocationService, axr.sdk.Services.AuthBasicService, axr.sdk.Services.AuthDiscordService, axr.sdk.Services.AuthFacebookService, axr.sdk.Services.AuthGoogleService, axr.sdk.Services.AuthRefreshService, axr.sdk.Services.AuthTotpService, axr.sdk.Services.AuthTwitterService, axr.sdk.Services.BackupService, axr.sdk.Services.BackupStorageLocationService, axr.sdk.Services.ContactService, axr.sdk.Services.EventService, axr.sdk.Services.LaunchProfileService, axr.sdk.Services.LeaderboardRecordService, axr.sdk.Services.LeaderboardService, axr.sdk.Services.MessageService, axr.sdk.Services.OrderService, axr.sdk.Services.OrganizationService, axr.sdk.Services.PaymentService, axr.sdk.Services.PersonaResourceService, axr.sdk.Services.PersonaService, axr.sdk.Services.PersonaStatDefinitionService, axr.sdk.Services.PersonaStatService, axr.sdk.Services.ProductCategoryService, axr.sdk.Services.ProductFeatureService, axr.sdk.Services.ProductService, axr.sdk.Services.ProfileService, axr.sdk.Services.PromoCodeService, axr.sdk.Services.PurchaseService, axr.sdk.Services.PurchaseValidationService, axr.sdk.Services.QuestService, axr.sdk.Services.ResourceService, axr.sdk.Services.RestoreService, axr.sdk.Services.RoleService, axr.sdk.Services.ScalingPolicyService, axr.sdk.Services.ServerInstanceService, axr.sdk.Services.SessionService, axr.sdk.Services.ShardService, axr.sdk.Services.SkillService, axr.sdk.Services.SnapshotService, axr.sdk.Services.SystemService, axr.sdk.Services.TicketService, axr.sdk.Services.TransactionService, axr.sdk.Services.UserLinkService, axr.sdk.Services.UserSecretService, axr.sdk.Services.UserService, axr.sdk.SkillDefinitionService, axr.sdk.ZoneService

class ServiceFactory

The ServiceFactory is responsible for managing instances of all Service classes used to perform operations on a given data model type.

class ServiceNotFoundException<T> : public Exception
class QuestDefinitionService : public axr.sdk.ServiceBase
class SkillDefinitionService : public axr.sdk.ServiceBase
class ZoneService : public axr.sdk.ServiceBase
namespace Managers
class SocialManager : public IDisposable

The SocialManager provides a high level interface for working with the social system.

namespace Models

Enums

enum ACLAction

Describes the various permission actions that can be performed against an entity.

Values:

CREATE
DELETE
FULL
READ
SPECIAL
UPDATE
enum BackupStatus

Describes the various states of a backup job.

Values:

SCHEDULED
RUNNING
COMPLETED
FAILED
enum Currency

The form of currency pertaining to the price of a product or service.

Values:

aud
cad
eur
gbp
usd
enum OrderStatus

Describes the various processing states of an Order object.

Values:

CREATED
PENDING
FULFILLED
FAILED
VOIDED
enum PaymentStatus

The current status of a payment.

Values:

CREATED

Indicates that the payment has been created but not sent to the provider for processing.

CANCELED

Indicates that the payment was canceled by the customer.

ACTION_NEEDED

Indicates that action is needed by the customer to proceed.

PENDING

Indicates that the payment is currently pending with the processing provider.

VOIDED

Indicates that the payment was voided.

CONFIRMED

Indicates that the payment was successfully confirmed with the payment processor.

DENIED

Indicates that the payment was denied by the payment processor.

REFUNDED

Indicates that the payment was refunded by the payment processor.

ERROR

Indicates that an error occurred while processing the payment.

enum PaymentMethodStatus

The current status of a payment method.

Values:

CREATED
CANCELED
ACTION_NEEDED
READY
ERROR
enum ProductLicense

The length of time that the product license is good for.

Values:

ANNUAL
MONTH
PERPETUAL
enum PromoCodeType

Values:

CASH
PERCENT
PRODUCT
enum ProviderType

Describes the supported providers that can fulfill payment processing.

Values:

NULL
STRIPE
enum RestoreStatus

Describes the various states of a backup job.

Values:

PENDING
RUNNING
COMPLETED
FAILED
enum Action

Indicates the scaling action that will be performed.

Values:

ADD
REMOVE
enum AppliesTo

Indicates at what level does the scaling policy apply to.

Values:

REGION

The policy applies to individual regions.

ZONE

The policy applies to the entire zone.

enum ScriptLanguage

Describes the type of language the script is written in.

Values:

JAVASCRIPT
TYPESCRIPT
enum ScriptSource

Describes the source that the script originated from.

Values:

DISK
USER
enum ScriptType

Describes the different functional types of supported scripts.

Values:

BACKGROUND_JOB
EVENT_PROCESSOR
MODEL
ROUTE_HANDLER
OTHER
enum DatabaseType

Describes the type of database that a snapshot.

Values:

MONGODB
POSTGRESQLs
enum StorageProvider

Describes the different types of remote storage providers that are available.

Values:

AWS_S3
AZURE
BUNNYCDN
GOOGLE
LOCAL
enum TransactionStatus

Describes the current status of a transaction.

Values:

PENDING

Indicates that the transaction is being edited and/or awaiting approval by one or more parties.

APPROVED

Indicates that both parties have approved the transaction and it is ready for execution.

COMPLETED

Indicates that the transaction executed successfully.

FAILED

Indicates that the transaction failed during processing, cancelled or rejected.

class ACLRecord : public axr.sdk.Object

The ACLRecord interface describes a single permissions entry in an AccessControlList that grants or denies a set of permissions to a single user or role.

Each permission can be one of the following actions:

  • Create - The user or role can create a new record or object.

  • Read - The user or role can read the record or object.

  • Update - The user or role can modify existing records or objects.

  • Delete - The user or role can delete existing records or objects.

  • Special - The user or role has special prilieges to edit the ACL permissions.

  • Full - The user or role has total control over the record or object and supersedes any of the above.

class AccessControlList : public axr.sdk.EntityBase

The access control list provides a generic interface for the storage of user and roles permissions. Each ACL object represents the permission set for a single entity within the system.The entity is identified generically by its universally unique identifier (uuid). Each entry in the ACL records the permissions available to a particular user or role.

Each permission can be one of the following actions:

  • Create - The user or role can create a new record or object.

  • Read - The user or role can read the record or object.

  • Update - The user or role can modify existing records or objects.

  • Delete - The user or role can delete existing records or objects.

  • Special - The user or role has special privileges to edit the ACL permissions.

  • Full - The user or role has total control over the record or object and supersedes any of the above.

For each of the above actions the user or role will be granted either an allow permission or a deny permission. If an allow is granted, the user or role has permission to perform that action. If a deny is set, then the user or role is denied that action.If no explicit allow or deny is set then the user or role will inherit the permission from a parent role or ACL.

ACLs can be chained via single inheritance through the specification of the parentUid. This allows the ability to create complex trees of permissions that can easily inherit control schemes to make the definition of permissions easier.

class Achievement : public axr.sdk.EntityBase

Describes a single achievement that a given user has already unlocked.

REQUIRES: Achievement Services

class AchievementDefinition : public axr.sdk.EntityBase

Describes a single achievement that a user can unlock.

REQUIRES: Achievement Services

class Address : public axr.sdk.Object

Describes a physical mailing address.

REQUIRES: Purchasing Services

class AppleReceipt : public axr.sdk.ModelBase

Describes an in-app product purchase made with the Apple Store.

class ArchetypeActivation : public axr.sdk.ModelBase

Describes whether or not a archetype should be enabled for the given persona.

REQUIRES: Progression Services

class ArchetypeDefinition : public axr.sdk.EntityBase

An archetype is a specific subset of one or more skill trees that a persona can elect to follow.

REQUIRES: Progression Services

class Asset : public axr.sdk.EntityBase

Describes a single digital asset that has been stored on a remote storage provider.

REQUIRES: Asset Services

class AssetStorageLocation : public axr.sdk.EntityBase

Defines a single location of remote storage that will be used to maintain assets.

REQUIRES: Asset Services

class AssignServerInstance : public axr.sdk.Object

Describes a request to assign a new server instance for a given session.

class AuthToken : public axr.sdk.ModelBase

Describes an authorization token as returned by account services.

class Backup : public axr.sdk.EntityBase

Describes a single backup job to be executed immediately or on a schedule.

REQUIRES: Backup Services

class BackupStorageLocation : public axr.sdk.EntityBase

Defines a single location of remote storage that will be used to maintain backup snapshots.

REQUIRES: Backup Services

class Contact : public axr.sdk.EntityBase

Describes a single person or entity that may be contacted about an account.

REQUIRES: Purchasing Services

class Criteria : public axr.sdk.ModelBase

Describes a single statistic by which to filter all matchmaking search results. Each criteria must have a corresponding Statistic object with the same name.

class Event : public axr.sdk.ModelBase

Describes a single telemetry event. A telemetry event is when something occurs in the system.

REQUIRES: Telemetry Services

class GoogleReceipt : public axr.sdk.ModelBase

Describes an in-app product purchase made with the Google Play store.

class LaunchProfile : public axr.sdk.EntityBase

Describes a grouped series of command arguments belonging to a Product to apply to the Product upon launching through AXR’s launcher.

REQUIRES: Purchasing Services

class Leaderboard : public axr.sdk.EntityBase

Describes a single leaderboard.

REQUIRES: Leaderboard Services

class LeaderboardRecord : public axr.sdk.EntityBase

Describes a user’s single score record within a given leaderboard.

REQUIRES: Leaderboard Services

class Message : public axr.sdk.EntityBase

The Message is a persistent message or notification that is sent from one user to another.

REQUIRES: Social Services

class NewUser : public axr.sdk.ModelBase

The object that is returned when a new user is created containing the user and authentication token.

class Order : public axr.sdk.EntityBase

A detailed list of products and services that a customer wishes to or has purchased.

REQUIRES: Purchasing Services

class OrderItem : public axr.sdk.Object

A line item of an order for a particular service or product.

class Organization : public axr.sdk.EntityBase

Describes a collection of users that all have the same role. Roles are used to grant permissions.

REQUIRES: Account Services Enterprise

class Payment : public axr.sdk.EntityBase

Tracks the lifecycle of a payment for a given customer.

REQUIRES: Purchasing Services

class PaymentMethod : public axr.sdk.EntityBase

Stores information needed to make a payment on behalf of a customer.

REQUIRES: Purchasing Services

class Persona : public axr.sdk.EntityBase

An Persona is a unique persona of a user within the system. Users can have multiple personas per account and the persona can have associated data such as inventory, progress, achievements, etc.

REQUIRES: Persona Services

class PersonaResource : public axr.sdk.EntityBase

Describes a single resource associated with a specific user or persona.

class PersonaStat : public axr.sdk.EntityBase

The PersonaStat is an instance of a specific PersonaStatDefinition that is assocaited with a particular Persona.

REQUIRES: Persona Services

class PersonaStatDefinition : public axr.sdk.EntityBase

The PersonaStatDefinition describes a single statistic that an persona can have.

REQUIRES: Persona Services

class Product : public axr.sdk.EntityBase

Describes a single product that can be purchased by a customer.

REQUIRES: Purchasing Services

class ProductCategory : public axr.sdk.EntityBase

Describes a group of products that have similar characteristics.

REQUIRES: Purchasing Services

class ProductFeature : public axr.sdk.EntityBase

Describes a group of products that have similar characteristics.

REQUIRES: Purchasing Services

class Profile : public axr.sdk.EntityBase

An Profile is an object containing a user’s specific social metadata and information. Each profile can have an alias name by which to identify the user other than their real name.A data property is provided to allow for an arbitrary storage of any metadata desired by the application. A presence property is also provided for storing the applications-specific current online state of the user.

REQUIRES: Social Services

class PromoCode : public axr.sdk.EntityBase

A promotional code that can be applied to an order to obtain a pricing discount, cash back or free product.

REQUIRES: Purchasing Services

class Purchase : public axr.sdk.EntityBase

Describes a single product that has been purchased by a user.

REQUIRES: Purchasing Services

class Quest : public axr.sdk.EntityBase

Tracks the progress of a specific quest for a given persona or user.

REQUIRES: Quest Services

class QuestDefinition : public axr.sdk.EntityBase

Describes a single quest.

REQUIRES: Quest Services

class QuestProgress : public axr.sdk.ModelBase

Tracks the persona’s progress of a single requirement for a given quest.

class Resource : public axr.sdk.EntityBase

Describes an single resource type of the virtual economy.

class ResourceCost : public axr.sdk.Object

Describes a single cost for a resource.

class ResourceDefaults : public axr.sdk.Object

Describes a set of properties that new inventory resources will be given on creation.

class Restore : public axr.sdk.EntityBase

Describes a single backup job to be executed immediately or on a schedule.

REQUIRES: Backup Services

class Role : public axr.sdk.EntityBase

Describes a collection of users that all have the same role. Roles are used to grant permissions.

REQUIRES: Account Services

class ScalingPolicy : public axr.sdk.EntityBase

Defines a single policy that determines how one or more zones will scale the number of available shards.

REQUIRES: Virtual World Services

class Script : public axr.sdk.EntityBase

Defines a script that can be loaded into a service at runtime and perform one of the following behaviors:

  • Background Job

  • Data Model

  • Event Processor

  • Route Handler

class ServerInstance : public axr.sdk.EntityBase

Describes a single dedicated server instance.

REQUIRES: Server Instance Services

class ServiceStatus : public axr.sdk.Object

Describes the health status of a single platform service.

class ServiceStatusList : public axr.sdk.Object

Describes the health status of all deployed services in the platform cluster.

class Session : public axr.sdk.EntityBase

A session is describes a real-time interaction between a group of one or more players.

REQUIRES: Session Services

class Shard : public axr.sdk.EntityBase

A shard is a representation of a zone with a physical/network location that players can connect to. Shards have a one-to-one relationship with game server instances.

REQUIRES: Virtual World Services

class Skill : public axr.sdk.EntityBase

Tracks the progress of a specific skill for a given persona and archetype.

REQUIRES: Progression Services

class SkillDefinition : public axr.sdk.EntityBase

Describes a single trackable concept within the product that a persona can make progress towards and complete. A skill can be any talent, level, skill or other trackable concept.

REQUIRES: Progression Services

class SkillRequirementProgress : public axr.sdk.ModelBase

Tracks the persona’s progress of a single requirement for a given skill.

class Snapshot : public axr.sdk.EntityBase

Defines a single backup snapshot of a database that has been taken.

REQUIRES: Backup Services

class Statistic : public axr.sdk.ModelBase

Describes a single metric by which users will be compared and filtered.

class Team : public axr.sdk.ModelBase

Describes a single team of players involved in a session.

class Ticket : public axr.sdk.EntityBase

Describes one or more users wishing to find another group of users to match against.

REQUIRES: Matchmaking Services

class TransactionApproval : public axr.sdk.Object

Describes the approval status of all parties of a transaction.

class Transaction : public axr.sdk.EntityBase

Describes a transfer of resources two parties, a sender and a receiver. Transactions may include resources owned by both sender and recipient.In such cases, a trade is performed.In the event that the sender or recipient are specified as null, the transaction will perform a populate or consume action, respectively.

If the user creating the transaction is the sender, their approval is automatically implied and granted. If the recipient makes any changes to the transaction the sender must approve those changes before proceeding.In the event a transaction is created by a trusted role user and both sender/receiver approval is set as true, the transaction is automatically executed without notifying the affected parties.

Cancelled or completed transactions cannot be modified. Cancelled transactions will not be executed. Only transactions that have been approved by both parties (or a trusted role) will be executed.

Cancelled or failed transactions may be periodically removed from the database.Transactions with any other state are permanently stored.

A note on performance.Given the sheer volume of transactions and the speed at which they must be processed, record level ACLs are not used.Instead, class-level ACLs are used with explicit permission verification implemented as code.

class User : public axr.sdk.EntityBase

Describes a single authorized user in the AcceleratXR ecosystem.

REQUIRES: Account Services

The UserLink is a representation of a relationship from one user to another. Relationships have three potential types; block, follow, or friend. The block type describes a relationship to a user that the individual wishes not to encounter.The follow type describes a person whom the user wishes to encounter again in the future.The friend type describes a person that both users wish to encounter in the future. A friend link is automatically made when each user creates a follow link to each other.

REQUIRES: Socail Services

class UserSecret : public axr.sdk.EntityBase

Provides a single method of authentication for a given user. A user may have multiple secrets tied to their user account. This makes it possible to handle multiple types of authentication methods such as password, two-step authentication, pre-shared key and more.

REQUIRES: Account Services

class Wallet : public axr.sdk.EntityBase

Manages information about the current account balance and payment information for a given customer.

The uid of this object should map to a user or organization’s uid.

REQUIRES: Purchasing Services

class Zone : public axr.sdk.EntityBase

A zone is a representation of a particular place or region in a virtual world. Zones can be connected to others, creating a network of traversable spaces.

REQUIRES: Virtual World Services

namespace Network

Enums

enum ConnectionState

Describes the various states of the connection.

Values:

NOT_CONNECTED

The connection is not currently active.

CONNECTING

The .

CONNECTED

The connection to the remote player or server is alive and healthy.

LOST_CONNECTION

The connection was lost due to an unknown error.

REFUSED

An error occurred while attempting to initiate the connection.

enum MessageType

Describes the supporting encoding types of message data that can be sent over a connection.

Values:

BINARY

The data is encoded in binary (byte order not assumed).

TEXT

The data is encoded as UTF-8 compatible text.

enum SocketMode

Describes the different operating modes of a real-time session socket.

Values:

BOTH

Specifies a bi-directional connection.

DOWN

Specifies a downward only connection, capable of receiving data from the server only.

UP

Specifies an upward only connection, capable of sending data to the server only.

enum NetworkMode

Describes the operating mode of the local network session.

Values:

CLIENT

The operating mode of the local network session is a client. Clients have no authority over a session, only locally owned players and associated controllers participating in the session.

SERVER

The operating mode of the local network session is a server. Servers have complete authority over a session including all players and controllers.

enum Action

Describes the various actions of socket messages.

Values:

EVENT
RPC
STATE
DESTROY
enum Type

Describes the various sub-types of socket messages.

Values:

ALL
CLIENT
SERVER
GAME
USER

Functions

delegate void OnSocketMessage (SocketMessage message)

Defines a callback function that will be notified when a new socket message has been received by the connection.

delegate void OnUnknownMessage (MessageType type, byte[] data)

Defines a callback function that will be notified when a unknown message has been received by the connection.

delegate void OnStateChanged (INetworkObject obj, bool fromNetwork)

Delegate for notifying of a change in state of this object.

Param obj

The object that whose state has changed.

Param fromNetwork

Indicates whether the state change originated from the network or was local.

class Connection : public axr.sdk.Network.IConnection
interface IConnection

Subclassed by axr.sdk.Network.Connection

interface INetworkObject : public IEnumerable<KeyValuePair<string, object>>, public IDisposable

The NetworkObject is a thread-safe dynamic Object type for use within a network context. The class provides common functionality for performing event handling, property replication and remote procedure calls.

Network objects must have a unique name in order to identify them amongst other instances within the engine. If no name is specified at instance creation a random UUID is assigned for the object automatically.

Subclassed by axr.sdk.Network.GameFramework.IPlayerController, axr.sdk.Network.NetworkObject

class NetworkObject : public axr.sdk.Object, public axr.sdk.Network.INetworkObject, public IEnumerable<KeyValuePair<string, object>>, public IEquatable<NetworkObject>, public IDisposable

The NetworkObject is a thread-safe dynamic Object type for use within a network context. The class provides common functionality for performing event handling, property replication and remote procedure calls.

Network objects must have a unique name in order to identify them amongst other instances within the engine. If no name is specified at instance creation a random UUID is assigned for the object automatically.

Subclassed by axr.sdk.Network.GameFramework.BasicPlayerController, axr.sdk.Network.GameFramework.GameState, axr.sdk.Network.GameFramework.PlayerState

class NetworkSession : public IDisposable

The NetworkSession serves as the routing point between a set of active network connections and the objects participating in a given online session.

The NetworkSession manages a collection of replication groups containing all participating networked objects within the session. Each network object is capable of replicating its own state, executing remote procedure calls or sending and receiving network events to other objects within the network.

Any messages originating from the objects managed by this session are transmitted through one or more of the managed network connections. Each connection may represent a remote server or peer.

For convenience, this class also manages all created instances and provides easy access to each through the use of the GetInstance static method. This makes it easier for other parts of code to quickly refer to a given network session without requiring complex argument passing between constructors.

Products are encouraged to sub-class this class in order to customize behavior such as how to instantiate the game and player controllers.

class ReplicationGroup : public IDisposable

The ReplicationGroup manages a group of INetworkObject objects whose state will all be managed together.

For convenience, this class also manages all created instances and provides easy access to each through the use of the GetInstance static method. This makes it easier for other parts of code to quickly refer to a given replication group without requiring complex argument passing between constructors.

class SocketMessage : public axr.sdk.Object

Defines a single message that has been sent across the network.

namespace Attributes

Enums

enum ExecuteScope

Describes the different scopes of remote procedure call executions.

Values:

CLIENT
SERVER
enum ReplicateMode

Describes the different modes of property replication that is supported by the network engine.

Values:

ALWAYS

The property will always be replicated any time replication of state is performed.

ON_CHANGED

The property will be replicated only when it’s value has changed.

ONCE

The property is replicated only the first time it is set and never again.

class EventAttribute : public OnMethodBoundaryAspect
class ExecuteAttribute : public OnMethodBoundaryAspect

Use this attribute to mark a class method as being remotely executable. Remotely executable methods cannot have a return type.

A method marked with this attribute will be executed remotely under the following conditions.

+——-&#8212;+——-&#8212;+———————-&#8212;+ | NetMode | Scope | Executes | +——-&#8212;+——-&#8212;+———————-&#8212;+ | CLIENT | CLIENT | Local client only | | CLIENT | SERVER | Local client and server | | SERVER | CLIENT | All clients and server | | SERVER | SERVER | Server only | +——-&#8212;+——-&#8212;+———————-&#8212;+

class ReplicateAttribute : public Attribute

Use this attribute to mark a class property to be replicated across the network.

namespace GameFramework
class BasicGameController : public axr.sdk.Network.GameFramework.IGameController

Manages the state of a networked game session as the authoritative host or server.

The authoritative host/server has the ability to perform any action and control any object within the context of the network session.

The controller manages a collection of connected player controllers. Each player controller gives this server the ability to override any action or state triggered by another player.

Only one instance of the GameController ever exists in a network context at a time. This instance only runs on the host/server’s machine. Each player’s client will have a copy of the GameState object only. However, each player will have exactly one copy of the PlayerController for the player that they directly control.

class BasicPlayerController : public axr.sdk.Network.NetworkObject, public axr.sdk.Network.GameFramework.IPlayerController

Manages the state of a player participating in a networked game session on behalf of a local client.

class GameState : public axr.sdk.Network.NetworkObject

Represents a single game session’s state within the network.

interface IGameController

Manages the state of a networked game session as the authoritative host or server.

The authoritative host/server has the ability to perform any action and control any object within the context of the network session.

The controller manages a collection of connected player controllers. Each player controller gives this server the ability to override any action or state triggered by another player.

Only one instance of the GameController ever exists in a network context at a time. This instance only runs on the host/server’s machine. Each player’s client will have a copy of the GameState object only. However, each player will have exactly one copy of the PlayerController for the player that they directly control.

Subclassed by axr.sdk.Network.GameFramework.BasicGameController

interface IPlayerController : public axr.sdk.Network.INetworkObject

Manages the state of a participating player in a networked session.

Subclassed by axr.sdk.Network.GameFramework.BasicPlayerController

class PlayerState : public axr.sdk.Network.NetworkObject

Represents a single player’s state within a network session.

namespace Services
class AccessControlListService : public axr.sdk.ServiceBase
class AchievementDefinitionService : public axr.sdk.ServiceBase
class AchievementService : public axr.sdk.ServiceBase
class ArchetypeDefinitionService : public axr.sdk.ServiceBase
class ArchetypeService : public axr.sdk.ServiceBase
class AssetService : public axr.sdk.ServiceBase
class AssetStorageLocationService : public axr.sdk.ServiceBase
class AuthBasicService : public axr.sdk.ServiceBase
class AuthDiscordService : public axr.sdk.ServiceBase

AXR Internal Doc | https://gitlab.acceleratxr.com/Core/sdk/sdk_nodejs/-/blob/master/src/services/AuthDiscordService.ts

class AuthFacebookService : public axr.sdk.ServiceBase
class AuthGoogleService : public axr.sdk.ServiceBase
class AuthRefreshService : public axr.sdk.ServiceBase
class AuthTotpService : public axr.sdk.ServiceBase
class AuthTwitterService : public axr.sdk.ServiceBase
class BackupService : public axr.sdk.ServiceBase
class BackupStorageLocationService : public axr.sdk.ServiceBase
class ContactService : public axr.sdk.ServiceBase
class EventService : public axr.sdk.ServiceBase
class LaunchProfileService : public axr.sdk.ServiceBase
class LeaderboardRecordService : public axr.sdk.ServiceBase
class LeaderboardService : public axr.sdk.ServiceBase
class MessageService : public axr.sdk.ServiceBase
class OrderService : public axr.sdk.ServiceBase
class OrganizationService : public axr.sdk.ServiceBase
class PaymentService : public axr.sdk.ServiceBase
class PersonaResourceService : public axr.sdk.ServiceBase
class PersonaService : public axr.sdk.ServiceBase
class PersonaStatDefinitionService : public axr.sdk.ServiceBase
class PersonaStatService : public axr.sdk.ServiceBase
class ProductCategoryService : public axr.sdk.ServiceBase
class ProductFeatureService : public axr.sdk.ServiceBase
class ProductService : public axr.sdk.ServiceBase
class ProfileService : public axr.sdk.ServiceBase
class PromoCodeService : public axr.sdk.ServiceBase
class PurchaseService : public axr.sdk.ServiceBase
class PurchaseValidationService : public axr.sdk.ServiceBase

Provides server side in-app purchase validation for various digital store fronts. The following stores are supported.

  • Apple Store

  • Google Play

class QuestService : public axr.sdk.ServiceBase
class ResourceService : public axr.sdk.ServiceBase
class RestoreService : public axr.sdk.ServiceBase
class RoleService : public axr.sdk.ServiceBase
class ScalingPolicyService : public axr.sdk.ServiceBase
class ServerInstanceService : public axr.sdk.ServiceBase
class SessionService : public axr.sdk.ServiceBase
class ShardService : public axr.sdk.ServiceBase
class SkillService : public axr.sdk.ServiceBase
class SnapshotService : public axr.sdk.ServiceBase
class SystemService : public axr.sdk.ServiceBase
class TicketService : public axr.sdk.ServiceBase
class TransactionService : public axr.sdk.ServiceBase
class UserLinkService : public axr.sdk.ServiceBase
class UserSecretService : public axr.sdk.ServiceBase
class UserService : public axr.sdk.ServiceBase
namespace Utils
class EntityWatchdog

EntityWatchdog is a utility service that provides a simple way to retrieve automatic updates for a registered EntityBase object. When registering a callback function for a given entity object the service will begin monitoring the backend service for changes to the object. If a change has been detected the callback function that was registered will be called containing the newly modified entity object. Note that it will not modify the existing object instance used to register the callback. It is the responsibility of the implementor to merge any changes from the new instance to the old one if desired.

Also note that the registered callback function will be executed from a different thread where safety is not gauranteed.It is the responsibility of the implementor to enforce any thread-safety needed for the data in

question.

class StringUtils
class Timer

The Timer class provides an interface for queuing tasks for execution after a given delay. More than one timer or interval can be scheduled at a time, however calling Clear() on the timer instance will stop all scheduled timers simultaneously.

class TypeUtils

Utility class for working with types across multiple loaded assemblies.