|
| Game (LBGameCreateOptions gameCreateOptions) |
| Initializes a new instance of the Game class. More...
|
|
| HiveHostGame (GameCreateOptions gameCreateOptions) |
|
override bool | BeforeRemoveFromCache () |
| Called by the RoomCacheBase if the room is about to be removed from the cache. More...
|
|
bool | ExecuteCacheOperation (CacheOp operation, out string errorMsg) |
| this methods allows to execute any cache operation. it can not be used to send user events to send user events use BroadcastEvent More...
|
|
Dictionary< byte, byte[]> | GetGameStateAsByteArray () |
|
void | HttpQueueRequestsIncrement () |
|
void | HttpQueueResponsesIncrement () |
|
void | HttpQueueSuccessIncrement () |
|
void | HttpQueueTimeoutIncrement () |
|
void | HttpQueueErrorsIncrement () |
|
void | HttpQueueOfflineResponsesIncrement () |
|
void | HttpQueueConcurrentRequestsIncrement () |
|
void | HttpQueueConcurrentRequestsDecrement () |
|
void | HttpQueueQueuedRequestsIncrement () |
|
void | HttpQueueQueuedRequestsDecrement () |
|
void | HttpRequestExecuteTimeIncrement (long ticks) |
|
void | HttpQueueOnlineQueueCounterIncrement () |
|
void | HttpQueueOnlineQueueCounterDecrement () |
|
void | HttpQueueBackedoffRequestsIncrement () |
|
void | HttpQueueBackedoffRequestsDecrement () |
|
void | HttpRequestIncrement () |
|
void | HttpSuccessIncrement () |
|
void | HttpTimeoutIncrement () |
|
void | HttpErrorsIncrement () |
|
void | HttpResponseIncrement () |
|
bool | OnUnknownType (Type type, ref object obj) |
|
override void | RemoveInactiveActor (Actor actor) |
|
SerializableGameState | GetSerializableGameState () |
| The serializable game state can be used to recreate the room after it gets removed from memory. Also SetGameState. More...
|
|
Dictionary< string, object > | GetGameState () |
|
bool | SetGameState (Dictionary< string, object > state) |
|
| HiveGame (string gameName, RoomCacheBase roomCache, IGameStateFactory gameStateFactory=null, int maxEmptyRoomTTL=0, ExtendedPoolFiber executionFiber=null) |
| Initializes a new instance of the HiveGame class. More...
|
|
override string | ToString () |
|
void | OnActorRemoved (Actor actor) |
|
void | OnActorDeactivated (Actor actor) |
|
| Room (string name, RoomCacheBase roomCache=null, IGameStateFactory gameStateFactory=null, int maxEmptyRoomTTL=0, ExtendedPoolFiber executionFiber=null) |
| Initializes a new instance of the Room class without a room name. More...
|
|
override string | ToString () |
|
void | EnqueueMessage (IMessage message) |
| Enqueues an IMessage to the end of the execution queue. More...
|
|
void | EnqueueOperation (HivePeer peer, Operation operationRequest, SendParameters sendParameters) |
| Enqueues an OperationRequest to the end of the execution queue. More...
|
|
IDisposable | ScheduleMessage (IMessage message, int timeMs) |
| Schedules a message to be processed after a specified time. More...
|
|
void | Dispose () |
| Releases resources used by this instance. More...
|
|
void | Release () |
|
void | BroadcastEvent (IList< int > recieverActors, int senderActor, byte evCode, Dictionary< byte, object > data, byte cacheOp, SendParameters sendParameters=new SendParameters()) |
| Send event to a specific list of actors inside the room or update events cache. More...
|
|
void | BroadcastEvent (byte target, int senderActor, byte targetGroup, byte evCode, Dictionary< byte, object > data, byte cacheOp, SendParameters sendParameters=new SendParameters()) |
| Send event to a predefined target group of actors inside the room or update events cache. More...
|
|
void | BroadcastErrorInfoEvent (string message, SendParameters sendParameters=new SendParameters()) |
| Used to inform clients of errors. If a callInfo is available in the context of the error then the overload with info should be used. More...
|
|
void | BroadcastErrorInfoEvent (string message, ICallInfo info, SendParameters sendParameters=new SendParameters()) |
| Used to inform clients of errors. More...
|
|
|
override void | Dispose (bool disposing) |
| Releases unmanaged and - optionally - managed resources More...
|
|
override void | OnClose () |
|
override void | JoinFailureHandler (byte leaveReason, HivePeer peer, JoinGameRequest request) |
|
override bool | ProcessJoin (Actor actor, JoinGameRequest joinRequest, SendParameters sendParameters, ProcessJoinParams parameters, HivePeer peer) |
|
override void | HandleCreateGameOperation (HivePeer peer, SendParameters sendParameters, JoinGameRequest createGameRequest) |
|
override void | HandleJoinGameOperation (HivePeer peer, SendParameters sendParameters, JoinGameRequest joinGameRequest) |
| Handles the JoinGameRequest: Joins a peer to a room and calls PublishJoinEvent. Before a JoinOperation reaches this point (inside a room), the HivePeer made sure that it is removed from the previous Room (if there was any). More...
|
|
override bool | ProcessCreateGame (HivePeer peer, JoinGameRequest joinRequest, SendParameters sendParameters) |
|
override void | OnGamePropertiesChanged (SetPropertiesRequest request) |
|
override void | DeactivateActor (Actor actor) |
|
override void | CleanupActor (Actor actor) |
|
override void | ProcessMessage (IMessage message) |
| This method is invoked sequentially for each message enqueued by the EnqueueMessage or ScheduleMessage method. More...
|
|
virtual void | NotifyMasterUserDeactivated (string userId) |
|
virtual void | NotifyMasterUserLeft (string userId) |
|
virtual void | NotifyMasterUserFailedToAdd (GameClientPeer peer) |
|
virtual void | NotifyMasterUserAdded (string userId, string[] slots) |
|
virtual void | NotifyMasterUserAdded (string[] userIds, string[] slots) |
|
override void | OnActorBanned (Actor actor) |
|
override void | OnActorGlobalBanned (Actor actor) |
|
UpdateGameEvent | GetUpdateGameEvent () |
|
virtual void | UpdateGameStateOnMasterOnCreate (JoinGameRequest joinRequest, HivePeer peer) |
|
virtual void | UpdateGameStateOnMaster (byte? newMaxPlayer=null, bool? newIsOpen=null, bool? newIsVisible=null, object[] lobbyPropertyFilter=null, Hashtable gameProperties=null, string[] newUserId=null, string removedUserId=null, string[] inactiveList=null, ExcludedActorInfo[] excludedActorInfos=null, string[] expectedList=null, bool? checkUserIdOnJoin=null, byte replication=0) |
|
virtual void | UpdateGameStateOnMaster (UpdateGameEvent updateEvent) |
|
virtual void | RemoveGameStateFromMaster () |
|
virtual void | CheckGame () |
| Check routine to validate that the game is valid (ie., it is removed from the game cache if it has no longer any actors etc.). CheckGame() is called by the Application at regular intervals. More...
|
|
override void | OnGameFull (HivePeer peer, JoinGameRequest joinGameRequest, SendParameters sendParameters) |
|
override void | Dispose (bool dispose) |
| Releases unmanaged and - optionally - managed resources More...
|
|
virtual void | ResumeGame (Action resumeAction) |
|
virtual void | SuspendGame (int timeout, Action timeoutAction) |
|
override void | HandleCreateGameOperation (HivePeer peer, SendParameters sendParameters, JoinGameRequest createGameRequest) |
|
override void | HandleJoinGameOperation (HivePeer peer, SendParameters sendParameters, JoinGameRequest joinGameRequest) |
| Handles the JoinGameRequest: Joins a peer to a room and calls PublishJoinEvent. Before a JoinOperation reaches this point (inside a room), the HivePeer made sure that it is removed from the previous Room (if there was any). More...
|
|
void | InitPlugin (string pluginName) |
|
override void | HandleLeaveOperation (HivePeer peer, SendParameters sendParameters, LeaveRequest leaveOperation) |
| Handles the LeaveRequest and calls HiveGame.RemovePeerFromGame. More...
|
|
override void | HandleRaiseEventOperation (HivePeer peer, RaiseEventRequest raiseEventRequest, SendParameters sendParameters) |
| Handles the RaiseEventRequest: Sends a CustomEvent to actors in the room. More...
|
|
override void | HandleRemovePeerMessage (HivePeer peer, int reason, string details) |
|
override void | HandleSetPropertiesOperation (HivePeer peer, SetPropertiesRequest request, SendParameters sendParameters) |
| Handles the SetPropertiesRequest and sends event PropertiesChangedEvent to all Actors in the room. More...
|
|
virtual bool | ProcessBeforeJoinGame (JoinGameRequest joinRequest, SendParameters sendParameters, HivePeer peer) |
|
virtual bool | ProcessBeforeSetProperties (HivePeer peer, SetPropertiesRequest request, SendParameters sendParameters) |
|
virtual bool | ProcessSetProperties (HivePeer peer, bool result, string errorMsg, SetPropertiesRequest request, SendParameters sendParameters) |
|
virtual bool | ProcessBeforeCloseGame (CloseRequest request) |
|
override void | JoinFailureHandler (byte leaveReason, HivePeer peer, JoinGameRequest request) |
|
virtual bool | ProcessCloseGame (object state) |
|
virtual bool | ProcessLeaveGame (int actorNr, LeaveRequest request, SendParameters sendParameters, HivePeer peer) |
|
virtual bool | ProcessRaiseEvent (HivePeer peer, RaiseEventRequest raiseEventRequest, SendParameters sendParameters, Actor actor) |
|
override OperationResponse | GetUserJoinResponse (JoinGameRequest joinRequest, Actor actor, ProcessJoinParams prms) |
|
override void | OnClose () |
|
bool | CreateGame (HivePeer peer, JoinGameRequest request, SendParameters sendParameters) |
|
override void | ExecuteOperation (HivePeer peer, Operation operation, SendParameters sendParameters) |
| Called for each operation in the execution queue. Every Room has a queue of incoming operations to execute. Per game ExecuteOperation is never executed multi-threaded, thus all code executed here has thread safe access to all instance members. More...
|
|
Actor | GetActorByPeer (HivePeer peer) |
| Gets the actor for a HivePeer. More...
|
|
Hashtable | GetLobbyGameProperties (Hashtable source) |
|
virtual void | HandleChangeGroupsOperation (HivePeer peer, ChangeGroups changeGroupsRequest, SendParameters sendParameters) |
|
virtual void | HandleDebugGameOperation (HivePeer peer, DebugGameRequest request, SendParameters sendParameters) |
|
virtual void | HandleGetPropertiesOperation (HivePeer peer, GetPropertiesRequest getPropertiesRequest, SendParameters sendParameters) |
| Handles the GetPropertiesRequest operation: Sends the properties with the OperationResponse. More...
|
|
bool | JoinApplyGameStateChanges (HivePeer peer, JoinGameRequest joinRequest, SendParameters sendParameters, out Actor actor) |
|
virtual void | SendErrorResponse (HivePeer peer, byte opCode, ErrorCode errorCode, string msg, SendParameters sendParameters, Dictionary< byte, object > errorData=null) |
| this method not only allows us to send error response but also we overwrite it to send old error codes to old clients More...
|
|
void | SendErrorResponseAndDisconnect (HivePeer peer, byte opCode, ErrorCode errorCode, string msg, SendParameters sendParameters, Dictionary< byte, object > errorData=null) |
|
virtual bool | AddExpectedUsers (JoinGameRequest joinRequest) |
|
bool | JoinSendResponseAndEvents (HivePeer peer, JoinGameRequest joinRequest, SendParameters sendParameters, Actor actor, ProcessJoinParams prms) |
|
void | LeaveOperationHandler (HivePeer peer, SendParameters sendParameters, LeaveRequest request) |
|
void | LogOperation (HivePeer peer, OperationRequest operationRequest) |
|
override void | ProcessMessage (IMessage message) |
| Processes a game message. Messages are used for internal communication. Per default only message RemovePeerFromGame is handled, a message that is sent when a player leaves a game due to disconnect or due to a subsequent join to a different game. More...
|
|
bool | RaiseEventOperationHandler (HivePeer peer, RaiseEventRequest raiseEventRequest, SendParameters sendParameters, Actor actor) |
|
virtual int | RemovePeerFromGame (HivePeer peer, bool isComingBack) |
| Removes a peer from the game. This method is called if a client sends a LeaveRequest or disconnects. More...
|
|
bool | SetProperties (int actorNr, Hashtable properties, Hashtable expected, bool broadcast) |
|
bool | ValidateAndFillSetPropertiesRequest (HivePeer peer, SetPropertiesRequest request, out string errorMsg) |
|
void | PublishResultsAndSetGameProperties (bool propertiesUpdateResult, string errorMessage, SetPropertiesRequest request, HivePeer peer, SendParameters sendParameters) |
|
virtual bool | SetNewPropertyValues (SetPropertiesRequest request, out string errorMessage) |
|
void | CheckTotalPropertiesSize (SetPropertiesRequest setPropertiesRequest) |
|
virtual bool | TryAddPeerToGame (HivePeer peer, int actorNr, out Actor actor, out bool isNewActor, out ErrorCode errorcode, out string reason, JoinGameRequest joinRequest) |
| Tries to add a HivePeer to this game instance. More...
|
|
bool | UpdateEventCache (int actorNr, byte eventCode, object data, byte cacheOp, out string msg) |
|
bool | UpdateCacheSlice (CacheOperation op, int actorNr, int? sliceIndex, out string message) |
|
| Room (string name, ExtendedPoolFiber executionFiber, RoomCacheBase roomCache, IGameStateFactory gameStateFactory=null, int maxEmptyRoomTTL=0) |
| Initializes a new instance of the Room class. More...
|
|
void | PublishEvent (HiveEventBase e, Actor actor, SendParameters sendParameters) |
| Publishes an event to a single actor on a specified channel. More...
|
|
void | PublishEvent (HiveEventBase e, IEnumerable< Actor > actorList, SendParameters sendParameters) |
| Publishes an event to a list of actors on a specified channel. More...
|
|
void | PublishEvent (EventData e, IEnumerable< Actor > actorList, SendParameters sendParameters) |
| Publishes an event to a list of actors on a specified channel. More...
|
|
void | PublishErrorInfoEvent (string errorMsg, IEnumerable< Actor > actorList, SendParameters sendParameters) |
|
void | ScheduleRoomRemoval (int roomLiveTime) |
| Schedules the removal of the room instance from the cache. The room will be removed after the specified time if there are no room references left. More...
|
|
void | TryRemoveRoomFromCache () |
| Removes the room instance from the cache if there are no references to the instance left. More...
|
|
|
enum | RemoveState {
RemoveState.Alive,
RemoveState.TryRemoveRoomFromCacheCalled,
RemoveState.RoomRemoved,
RemoveState.TryRemoveRoomFromCacheCalledRoomNotRemoved,
RemoveState.ProcessCloseGameCalled,
RemoveState.TriggerPluginOnCloseCalled,
RemoveState.AliveGotNewPlayer,
RemoveState.ScheduleTriggerPluginOnCloseCalled,
RemoveState.ProcessBeforeCloseGameCalled,
RemoveState.ProcessBeforeCloseGameCalledEmptyRoomLiveTimeLECalled,
RemoveState.BeforeRemoveFromCacheCalled,
RemoveState.BeforeRemoveFromCacheActionCalled,
RemoveState.GameDisposeCalled
} |
|
static string | GetCallStack () |
|
CallEnv | callEnv |
|
readonly LogQueue | LogQueue |
|
IHiveGameAppCounters | gameAppCounters = NullHiveGameAppCounters.Instance |
|
IEnumerable< Actor > | InactiveActors => this.ActorsManager.InactiveActors |
|
IEnumerable< Actor > | ActiveActors => this.ActorsManager.ActiveActors |
|
GroupManager | GroupManager => this.RoomState.GroupManager |
|
GameState | RoomState => this.roomState |
|
readonly RoomCacheBase | roomCache |
|
readonly IGameStateFactory | gameStateFactory |
|
string | RemoveRoomPathString |
|
DateTime | removalStartTimestamp = DateTime.MinValue |
|
GameState | roomState |
|
static readonly string[] | EmptyStringArray = {} |
|
Dictionary< string, object > | Environment [get, set] |
|
int | HttpForwardedOperationsLimit [get, protected set] |
|
bool | FailedOnCreate [get] |
|
object | this[object key] [get, set] |
|
IHiveGameAppCounters | GameAppCounters [get, set] |
|
int | MasterClientId [get] |
|
bool | IsOpen [get, set] |
|
bool | IsVisible [get, set] |
|
bool | IsFinished [get, set] |
| whether finished. it is not same as IsOpen == false. More...
|
|
string | LobbyId [get, set] |
|
bool | DeleteCacheOnLeave [get, set] |
| Gets or sets a value indicating whether cached events are automatically deleted for actors which are leaving a room. More...
|
|
HashSet< object > | LobbyProperties [get, set] |
| Contains the keys of the game properties hashtable which should be listed in the lobby. More...
|
|
AppLobbyType | LobbyType [get, set] |
|
byte | MaxPlayers [get, set] |
|
int | PlayerTTL [get, set] |
| Player live time More...
|
|
bool | SuppressRoomEvents [get, set] |
| Gets or sets a value indicating if common room events (Join, Leave) will suppressed. More...
|
|
bool | SuppressPlayerInfo [get, set] |
|
bool | CheckUserOnJoin [get, set] |
|
int | LimitMaxPropertiesSizePerGame = 0 [get, set] |
|
RemoveState | RemoveRoomPath [get, set] |
|
ExtendedPoolFiber | ExecutionFiber [get] |
| Gets a PoolFiber instance used to synchronize access to this instance. More...
|
|
bool | IsDisposed [get] |
| Gets a value indicating whether IsDisposed. More...
|
|
string | Name [get] |
| Gets the name (id) of the room. More...
|
|
int | EmptyRoomLiveTime [get, protected set] |
| Gets or sets a value indicating how long the room instance will be keeped alive in the room cache after all peers have left the room. More...
|
|
int | MaxEmptyRoomTTL [get] |
|
DateTime | UtcCreated [get] |
|
long | RoomCreationTS [get] |
|
IDisposable | RemoveTimer [get, set] |
| Timer for removing room More...
|
|
PropertyBag< object > | Properties [get] |
| Gets a PropertyBag instance used to store custom room properties. More...
|
|
Dictionary< string, object > | Environment [get] |
| Should contain game and application global properties (AppId, AppVersion, Cloud, Region, etc.) More...
|
|
IList< IActor > | GameActors [get] |
| List of all actors in game - including active and inactive. With each actor having a flag IsInactive IActor. More...
|
|
IList< IActor > | GameActorsActive [get] |
| List of active actors in game. More...
|
|
IList< IActor > | GameActorsInactive [get] |
| List of inactive active actors in game. More...
|
|
string | GameId [get] |
| Unique game identifier. Called Roomname in most client sdk's. More...
|
|
Hashtable | GameProperties [get] |
| Game properties as set through the client per RoomOptions.CustomRoomProperties. More...
|
|
Dictionary< string, object > | CustomGameProperties [get] |
| The game properties that are published to the lobby - as defined by clients per RoomOptions.CustomRoomPropertiesForLobby. More...
|
|
int | MasterClientId [get] |
| The actor number of the client defined as master. If the client disconnects a new master client will be selected by photon. Changes in the master client id are notified per PluginBase.OnChangeMasterClientId. More...
|
|
bool | IsSuspended [get] |
|
bool | IsSyspended [get] |
|
IExtendedFiber | ExecutionFiber [get] |
|
ILogger | Log [get] |
|
HttpRequestQueue | HttpRequestQueue [get] |
|
int | HttpQueueRequestTimeout [get] |
|