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.
- 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
orGetProperty
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 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 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 ScriptType
Describes the different functional types of supported scripts.
Values:
- BACKGROUND_JOB
- EVENT_PROCESSOR
- MODEL
- ROUTE_HANDLER
- OTHER
- 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 anAccessControlList
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 adeny
permission. If anallow
is granted, the user or role has permission to perform that action. If adeny
is set, then the user or role is denied that action.If no explicitallow
ordeny
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.
- class AssetStorageLocation : public axr.sdk.EntityBase
Defines a single location of remote storage that will be used to maintain assets.
- 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.
- class BackupStorageLocation : public axr.sdk.EntityBase
Defines a single location of remote storage that will be used to maintain backup snapshots.
- 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 samename
.
- 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.
- 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 specificPersonaStatDefinition
that is assocaited with a particularPersona
.
- class PersonaStatDefinition : public axr.sdk.EntityBase
The
PersonaStatDefinition
describes a single statistic that an persona can have.
- 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.Adata
property is provided to allow for an arbitrary storage of any metadata desired by the application. Apresence
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.
- class QuestDefinition : public axr.sdk.EntityBase
Describes a single quest.
- 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.
- 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.
- 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.
- 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
- class UserLink : public axr.sdk.EntityBase
The
UserLink
is a representation of a relationship from one user to another. Relationships have three potential types;block
,follow
, orfriend
. Theblock
type describes a relationship to a user that the individual wishes not to encounter.Thefollow
type describes a person whom the user wishes to encounter again in the future.Thefriend
type describes a person that both users wish to encounter in the future. Afriend
link is automatically made when each user creates afollow
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.
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.
+——-—+——-—+———————-—+ | NetMode | Scope | Executes | +——-—+——-—+———————-—+ |
CLIENT
|CLIENT
| Local client only | |CLIENT
|SERVER
| Local client and server | |SERVER
|CLIENT
| All clients and server | |SERVER
|SERVER
| Server only | +——-—+——-—+———————-—+
- 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 registeredEntityBase
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 callingClear()
on the timer instance will stop all scheduled timers simultaneously.
- class TypeUtils
Utility class for working with types across multiple loaded assemblies.