 Photon Server API Documentation
        
        
            v5.0RC1
        
            Photon Server API Documentation
        
        
            v5.0RC1
        
    A Room that supports the following requests:
 
  
| Public Member Functions | |
| 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 () | 
| virtual void | RemoveInactiveActor (Actor actor) | 
| void | OnActorRemoved (Actor actor) | 
| void | OnActorDeactivated (Actor actor) | 
|  Public Member Functions inherited from Photon.Hive.Room | |
| 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 () | 
| virtual bool | BeforeRemoveFromCache () | 
| Called by the RoomCacheBase if the room is about to be removed from the cache.  More... | |
| 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 () | 
| Public Attributes | |
| virtual bool | IsPersistent => false | 
| RoomEventCacheManager | EventCache => this.RoomState.EventCache | 
| EventCacheDictionary | ActorEventCache => this.RoomState.ActorEventCache | 
| Contains Caching.EventCaches for all actors.  More... | |
| ActorsManager | ActorsManager => this.RoomState.ActorsManager | 
| bool | CacheDiscarded => this.EventCache.Discarded || this.ActorEventCache.Discarded | 
| Protected Member Functions | |
| override void | OnClose () | 
| virtual void | CleanupActor (Actor actor) | 
| virtual void | DeactivateActor (Actor actor) | 
| 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) | 
| abstract void | HandleCreateGameOperation (HivePeer peer, SendParameters sendParameters, JoinGameRequest createGameRequest) | 
| 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... | |
| abstract 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... | |
| abstract void | HandleLeaveOperation (HivePeer peer, SendParameters sendParameters, LeaveRequest leaveOperation) | 
| Handles the LeaveRequest and calls RemovePeerFromGame.  More... | |
| abstract void | HandleRaiseEventOperation (HivePeer peer, RaiseEventRequest raiseEventRequest, SendParameters sendParameters) | 
| Handles the RaiseEventRequest: Sends a CustomEvent to actors in the room.  More... | |
| abstract void | HandleRemovePeerMessage (HivePeer peer, int reason, string details) | 
| abstract void | HandleSetPropertiesOperation (HivePeer peer, SetPropertiesRequest request, SendParameters sendParameters) | 
| Handles the SetPropertiesRequest and sends event PropertiesChangedEvent to all Actors in the room.  More... | |
| virtual void | JoinFailureHandler (byte leaveReason, HivePeer peer, JoinGameRequest request) | 
| 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) | 
| virtual OperationResponse | GetUserJoinResponse (JoinGameRequest joinRequest, 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) | 
| virtual void | OnGamePropertiesChanged (SetPropertiesRequest request) | 
| 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) | 
| virtual void | OnGameFull (HivePeer peer, JoinGameRequest joinGameRequest, SendParameters sendParameters) | 
|  Protected Member Functions inherited from Photon.Hive.Room | |
| Room (string name, ExtendedPoolFiber executionFiber, RoomCacheBase roomCache, IGameStateFactory gameStateFactory=null, int maxEmptyRoomTTL=0) | |
| Initializes a new instance of the Room class.  More... | |
| virtual void | Dispose (bool dispose) | 
| Releases unmanaged and - optionally - managed resources  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... | |
| Protected Attributes | |
| 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 | 
|  Protected Attributes inherited from Photon.Hive.Room | |
| readonly RoomCacheBase | roomCache | 
| readonly IGameStateFactory | gameStateFactory | 
| string | RemoveRoomPathString | 
| DateTime | removalStartTimestamp = DateTime.MinValue | 
| GameState | roomState | 
| Static Protected Attributes | |
| static readonly string[] | EmptyStringArray = {} | 
| Properties | |
| 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] | 
|  Properties inherited from Photon.Hive.Room | |
| 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... | |
A Room that supports the following requests:
| 
 | inline | 
Initializes a new instance of the HiveGame class.
| gameName | The name of the game. | 
| roomCache | The RoomCacheBase instance to which the room belongs. | 
| gameStateFactory | Custom factory for GameState. if null is set, default factory is used | 
| maxEmptyRoomTTL | A value indicating how long the room instance will be kept alive in the room cache after all peers have left the room. | 
| executionFiber | 
| 
 | inlineprotectedvirtual | 
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotectedvirtual | 
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.
| peer | The peer. | 
| operation | The operation request to execute. | 
| sendParameters | The send Parameters. | 
Reimplemented from Photon.Hive.Room.
Gets the actor for a HivePeer.
| peer | The peer. | 
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.Hive.HiveHostGame.
| 
 | inlineprotectedvirtual | 
| 
 | protectedpure virtual | 
Implemented in Photon.Hive.HiveHostGame, and Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotectedvirtual | 
| 
 | inlineprotectedvirtual | 
Handles the GetPropertiesRequest operation: Sends the properties with the OperationResponse.
| peer | The peer. | 
| getPropertiesRequest | The operation to handle. | 
| sendParameters | The send Parameters. | 
| 
 | protectedpure virtual | 
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).
| peer | The peer. | 
| sendParameters | The send Parameters. | 
| joinGameRequest | The join Game Request. | 
Implemented in Photon.Hive.HiveHostGame, and Photon.LoadBalancing.GameServer.Game.
| 
 | protectedpure virtual | 
Handles the LeaveRequest and calls RemovePeerFromGame.
| peer | The peer. | 
| sendParameters | The send Parameters. | 
| leaveOperation | The operation. | 
Implemented in Photon.Hive.HiveHostGame.
| 
 | protectedpure virtual | 
Handles the RaiseEventRequest: Sends a CustomEvent to actors in the room.
| peer | The peer. | 
| raiseEventRequest | The operation | 
| sendParameters | The send Parameters. | 
Implemented in Photon.Hive.HiveHostGame.
| 
 | protectedpure virtual | 
Implemented in Photon.Hive.HiveHostGame.
| 
 | protectedpure virtual | 
Handles the SetPropertiesRequest and sends event PropertiesChangedEvent to all Actors in the room.
| peer | The peer. | 
| request | The SetPropertiesRequest operation to handle. | 
| sendParameters | The send Parameters. | 
Implemented in Photon.Hive.HiveHostGame.
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.Hive.HiveHostGame, and Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotected | 
| 
 | inlineprotected | 
| 
 | inlineprotected | 
| 
 | inline | 
| 
 | inline | 
| 
 | inlineprotectedvirtual | 
Reimplemented from Photon.Hive.Room.
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotectedvirtual | 
Reimplemented in Photon.LoadBalancing.GameServer.Game.
| 
 | inlineprotectedvirtual | 
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.
| message | Message to process. | 
Reimplemented from Photon.Hive.Room.
| 
 | inlineprotected | 
| 
 | inlineprotected | 
| 
 | inlinevirtual | 
Reimplemented in Photon.Hive.HiveHostGame.
| 
 | inlineprotectedvirtual | 
Removes a peer from the game. This method is called if a client sends a LeaveRequest or disconnects.
| peer | The HivePeer to remove. | 
| isComingBack | whether we expect peer will come back or not | 
| 
 | inlineprotectedvirtual | 
this method not only allows us to send error response but also we overwrite it to send old error codes to old clients
| peer | |
| opCode | |
| errorCode | |
| msg | |
| sendParameters | |
| errorData | 
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
| 
 | inlineprotected | 
| 
 | inline | 
| 
 | inlineprotectedvirtual | 
Tries to add a HivePeer to this game instance.
| peer | The peer to add. | 
| actorNr | The actor Nr. | 
| actor | When this method returns this out param contains the Actor associated with the peer . | 
| errorcode | returns error code if we fail to add actor | 
| reason | reason why player can not be added | 
| isNewActor | returns true if actor is new | 
| joinRequest | join request which was sent by client | 
| 
 | inlineprotected | 
| 
 | inlineprotected | 
| 
 | inlineprotected | 
| 
 | protected | 
| EventCacheDictionary Photon.Hive.HiveGame.ActorEventCache => this.RoomState.ActorEventCache | 
Contains Caching.EventCaches for all actors.
| ActorsManager Photon.Hive.HiveGame.ActorsManager => this.RoomState.ActorsManager | 
| bool Photon.Hive.HiveGame.CacheDiscarded => this.EventCache.Discarded || this.ActorEventCache.Discarded | 
| 
 | staticprotected | 
| RoomEventCacheManager Photon.Hive.HiveGame.EventCache => this.RoomState.EventCache | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| virtual bool Photon.Hive.HiveGame.IsPersistent => false | 
| 
 | protected | 
| 
 | protected | 
| 
 | getset | 
| 
 | getset | 
Gets or sets a value indicating whether cached events are automatically deleted for actors which are leaving a room.
| 
 | getset | 
| 
 | getsetprotected | 
whether finished. it is not same as IsOpen == false.
| 
 | getset | 
| 
 | getset | 
| 
 | getset | 
| 
 | getset | 
| 
 | getset | 
Contains the keys of the game properties hashtable which should be listed in the lobby.
| 
 | getset | 
| 
 | get | 
| 
 | getset | 
| 
 | getset | 
Player live time
| 
 | getset | 
| 
 | getset | 
Gets or sets a value indicating if common room events (Join, Leave) will suppressed.