

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# SDK del servidor de C\$1\$1 para Amazon GameLift Servers 4.x: acciones
<a name="integration-server-sdk-cpp-ref-actions"></a>

Utilice la referencia del SDK del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

**nota**  
Esta referencia es para una versión anterior del SDK del servidor de Amazon GameLift Servers. Para obtener la última versión, consulte [SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: acciones](integration-server-sdk5-cpp-actions.md).

# SDK del servidor de C\$1\$1 para Amazon GameLift Servers 4.x: tipos de datos
<a name="integration-server-sdk-cpp-ref-datatypes"></a>

Utilice la referencia del SDK del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

**nota**  
Esta referencia es para una versión anterior del SDK del servidor de Amazon GameLift Servers. Para obtener la última versión, consulte [SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-cpp-datatypes.md).

Esta API se define en `GameLiftServerAPI.h`, `LogParameters.h` y `ProcessParameters.h`.

[SDK del servidor de C\$1\$1 para Amazon GameLift Servers 4.x: acciones](integration-server-sdk-cpp-ref-actions.md)

## DescribePlayerSessionsRequest
<a name="integration-server-sdk-cpp-ref-dataypes-playersessions"></a>

Este tipo de datos se utiliza para especificar qué sesión o sesiones de jugador recuperar. Puede utilizarlo para las siguientes tareas: 
+ Proporcione una PlayerSessionId para solicitar una sesión de jugador específica.
+ Proporciona una GameSessionId para solicitar todas las sesiones de los jugadores de la sesión de juego especificada.
+ Proporcione una PlayerId para solicitar todas las sesiones de jugador para el jugador especificado.

Para grandes conjuntos de sesiones de jugador, utilice los parámetros de paginación para recuperar los resultados en bloques consecutivos.

### Contenido
<a name="integration-server-sdk-cpp-ref-dataypes-playersessions-contents"></a>

**GameSessionId**  
Identificador único de la sesión de juego. Use este parámetro para solicitar todas las sesiones de jugador de la sesión de juego especificada. El formato de ID de la sesión de juego es el siguiente: `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. El valor de la <cadena de ID> es una cadena de ID personalizada o (si se especificó una cuando se creó la sesión de juego) una cadena generada.   
Tipo: cadena  
Requerido: no

**Límite**  
Número máximo de resultados a devolver. Utilice este parámetro con *NextToken*para obtener resultados como un conjunto de páginas secuenciales. Si se especifica un ID de sesión de jugador, este parámetro se ignora.  
Tipo: entero  
Obligatorio: no

**NextToken**  
Token que indica el inicio de la siguiente página de resultados secuencial. Utilice el token devuelto con una llamada anterior a esta acción. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora.  
Tipo: cadena  
Requerido: no

**PlayerId**  
Identificador único de un jugador. IDs Los jugadores los define el desarrollador. Consulte [Generación de ID de jugador](player-sessions-player-identifiers.md).  
Tipo: cadena  
Requerido: no

**PlayerSessionId**  
Identificador único de una sesión de jugador.  
Tipo: cadena  
Requerido: no

**PlayerSessionStatusFilter**  
Estado de la sesión de juego para filtrar los resultados. Los posibles estados de sesión de jugador son:  
+ RESERVADO: se ha recibido la solicitud de sesión del jugador, pero el jugador aún no se ha conectado al servidor y and/or se ha validado el proceso.
+ ACTIVE: el proceso del servidor ha validado el jugador y actualmente está conectado.
+ COMPLETED: ha caído la conexión del jugador.
+ TIEMPO DE ESPERA: se recibió una solicitud de sesión de un jugador, pero el jugador que no and/or se conectó no se validó dentro del límite de tiempo de espera (60 segundos).
Tipo: cadena  
Requerido: no

## LogParameters
<a name="integration-server-sdk-cpp-ref-dataypes-log"></a>

Este tipo de datos se utiliza para identificar los archivos generados durante una sesión de juego que desea que Amazon GameLift Servers cargue y almacene cuando finalice la sesión de juego. Esta información se comunicará al servicio Amazon GameLift Servers en una llamada a [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready).

### Contenido
<a name="integration-server-sdk-cpp-ref-dataypes-log-contents"></a>

**logPaths**  
Rutas de directorio a archivos de registro del servidor de juegos que desea que Amazon GameLift Servers almacene para futuros accesos. Estos archivos se generan durante cada sesión de juego. Los nombres y las rutas de los archivos se definen en el servidor de juegos y se almacenan en el directorio raíz de compilación del juego. Las rutas del registro deben ser absolutas. Por ejemplo, si la compilación del juego almacena los logs de sesión de juego en una ruta del tipo `MyGame\sessionlogs\`, entonces la ruta de los logs sería `c:\game\MyGame\sessionLogs` (en una instancia Windows) o `/local/game/MyGame/sessionLogs` (en una instancia Linux).   
Tipo: std:vector<std::string>  
Obligatorio: no

## ProcessParameters
<a name="integration-server-sdk-cpp-ref-dataypes-process"></a>

Este tipo de datos contiene el conjunto de parámetros enviado al servicio Amazon GameLift Servers en una llamada a [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready).

### Contenido
<a name="integration-server-sdk-cpp-ref-dataypes-process-contents"></a>

**puerto**  
Es el número de puerto en el que escucha el proceso del servidor para recibir conexiones de jugador nuevas. El valor debe estar en el rango de puertos configurado para cualquier flota que implemente esa compilación de servidor de juegos. Este número de puerto se incluye en los objetos de sesión de juego y de jugador, que las sesiones de juego utilizan a la hora de conectarse a un proceso del servidor.   
Tipo: entero   
Obligatorio: sí

**logParameters**  
Objeto con una lista de rutas de directorio a archivos de log de la sesión de juego.   
Tipo: Aws:: :Servidor:GameLift: [LogParameters](#integration-server-sdk-cpp-ref-dataypes-log)  
Obligatorio: no

**onStartGameSession**  
Nombre de la función de devolución de llamada que el Amazon GameLift Servers servicio invoca para activar una nueva sesión de juego. Amazon GameLift Serversllama a esta función en respuesta a la solicitud del cliente. [CreateGameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateGameSession.html) La función de devolución de llamada pasa un [GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html)objeto (definido en la *referencia de la API de Amazon GameLift Servers servicio*).   
Tipo: `const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`   
Obligatorio: sí

**onProcessTerminate**  
Nombre de la función de devolución de llamada que invoca el servicio Amazon GameLift Servers para forzar el cierre del proceso del servidor. Después de llamar a esta función, Amazon GameLift Servers espera cinco minutos hasta que el proceso del servidor se cierre y responda con una llamada a [ProcessEnding()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processending). Si no recibe respuesta, cierra el proceso del servidor.  
Tipo: `std::function<void()> onProcessTerminate`  
Obligatorio: no

**onHealthCheck**  
Nombre de la función de devolución de llamada que invoca el servicio Amazon GameLift Servers para solicitar un informe de estado del proceso del servidor. Amazon GameLift Servers llama a esta función cada 60 segundos. Después de llamar a esta función, Amazon GameLift Servers espera una respuesta durante 60 segundos y si no recibe ninguna, registra el proceso del servidor como en mal estado.  
Tipo: `std::function<bool()> onHealthCheck`  
Obligatorio: no

**onUpdateGameSession**  
Nombre de la función de devolución de llamada que invoca el servicio Amazon GameLift Servers para proporcionar un objeto de sesión de juego actualizado. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de [reposición de emparejamiento](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html) para proporcionar datos actualizados del emparejador. Pasa un objeto [GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html), una actualización de estado (`updateReason`) y el ID del ticket de reposición de emparejamiento.   
Tipo: `std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`   
Obligatorio: no

## StartMatchBackfillRequest
<a name="integration-server-sdk-cpp-ref-dataypes-startmatchbackfillrequest"></a>

Este tipo de datos se utiliza para enviar una solicitud de reposición de emparejamiento. La información se comunica al servicio Amazon GameLift Servers en una llamada a [StartMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-startmatchbackfill).

### Contenido
<a name="integration-server-sdk-cpp-ref-dataypes-startbackfill-contents"></a>

**GameSessionArn**  
 Identificador único de la sesión de juego. La acción de la API [GetGameSessionId()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-getgamesessionid) devuelve el identificador en formato de ARN.  
Tipo: cadena  
Obligatorio: sí

**MatchmakingConfigurationArn**  
Identificador único, en forma de un ARN, que el creador de emparejamientos utiliza para esta solicitud. Para encontrar el creador de emparejamientos que se usó para crear la sesión de juego original, busque en el objeto de sesión de juego, en la propiedad de datos del creador de emparejamientos. Puede obtener más información sobre los datos del emparejador en [Trabajo con datos del emparejador](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data).   
Tipo: cadena  
Obligatorio: sí

**Players**  
Un conjunto de datos que representa a todos los jugadores que están actualmente en la sesión de juego. El creador de emparejamientos utiliza esta información para buscar nuevos jugadores que son idóneos para los jugadores actuales. Para obtener una descripción del formato del objeto Player, consulte la *Guía de referencia de API de Amazon GameLift Servers*. Para encontrar los atributos de los jugadores y las asignaciones del equipo, busca en el objeto de sesión del juego, en la propiedad de datos del emparejador. IDs Si el creador de emparejamientos utiliza latencia, recopile la latencia actualizada para la región actual e inclúyala en los datos de cada jugador.   
Tipo: std:vector[<player>](https://docs.aws.amazon.com/gamelift/latest/apireference/API_Player.html)  
Obligatorio: sí

**TicketId**  
Identificador único para un ticket de solicitud de emparejamiento o reposición de emparejamiento. Si no se proporciona ningún valor aquí, Amazon GameLift Servers generará uno en forma de UUID. Use este identificador para realizar un seguimiento del estado del ticket de reposición de emparejamiento o cancelar la solicitud si es necesario.   
Tipo: cadena  
Requerido: no

## StopMatchBackfillRequest
<a name="integration-server-sdk-cpp-ref-dataypes-stopmatchbackfillrequest"></a>

Este tipo de datos se utiliza para cancelar una solicitud de reposición de emparejamiento. La información se comunica al servicio Amazon GameLift Servers en una llamada a [StopMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-stopmatchbackfill).

### Contenido
<a name="integration-server-sdk-cpp-ref-dataypes-stopbackfill-contents"></a>

**GameSessionArn**  
Identificador único de sesión de juego asociado a la solicitud que se va a cancelar.   
Tipo: cadena  
Obligatorio: sí

**MatchmakingConfigurationArn**  
Identificador único del creador de emparejamientos al que se envió esta solicitud.   
Tipo: cadena  
Obligatorio: sí

**TicketId**  
Identificador único del ticket de solicitud de reposición que se va a cancelar.  
Tipo: cadena  
Obligatorio: sí

[SDK del servidor de C\$1\$1 para Amazon GameLift Servers 4.x: tipos de datos](integration-server-sdk-cpp-ref-datatypes.md)

**Topics**
+ [SDK del servidor de C\$1\$1 para Amazon GameLift Servers 4.x: tipos de datos](integration-server-sdk-cpp-ref-datatypes.md)
+ [AcceptPlayerSession()](#integration-server-sdk-cpp-ref-acceptplayersession)
+ [ActivateGameSession()](#integration-server-sdk-cpp-ref-activategamesession)
+ [DescribePlayerSessions()](#integration-server-sdk-cpp-ref-describeplayersessions)
+ [GetGameSessionId()](#integration-server-sdk-cpp-ref-getgamesessionid)
+ [GetInstanceCertificate()](#integration-server-sdk-cpp-ref-getinstancecertificate)
+ [GetSdkVersion()](#integration-server-sdk-cpp-ref-getsdk)
+ [GetTerminationTime()](#integration-server-sdk-cpp-ref-getterm)
+ [InitSDK()](#integration-server-sdk-cpp-ref-initsdk)
+ [ProcessEnding()](#integration-server-sdk-cpp-ref-processending)
+ [ProcessReady()](#integration-server-sdk-cpp-ref-processready)
+ [ProcessReadyAsync()](#integration-server-sdk-cpp-ref-processreadyasync)
+ [RemovePlayerSession()](#integration-server-sdk-cpp-ref-removeplayersession)
+ [StartMatchBackfill()](#integration-server-sdk-cpp-ref-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-cpp-ref-stopmatchbackfill)
+ [TerminateGameSession()](#integration-server-sdk-cpp-ref-terminategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy)
+ [Destroy()](#integration-server-sdk-cpp-ref-destroy)

## AcceptPlayerSession()
<a name="integration-server-sdk-cpp-ref-acceptplayersession"></a>

Informa al servicio Amazon GameLift Servers de que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión del jugador es válido; es decir, que el ID de jugador ha reservado un espacio de jugador en la sesión de juego. Una vez completada la validación, Amazon GameLift Servers cambia el estado de la ranura de jugador de RESERVADO a ACTIVO. 

### Sintaxis
<a name="integration-server-sdk-cpp-ref-acceptplayersession-syntax"></a>

```
GenericOutcome AcceptPlayerSession(const std::string& playerSessionId);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-acceptplayersession-parameter"></a>

**playerSessionId**  
ID único emitido por el Amazon GameLift Servers servicio en respuesta a una llamada a la acción de la Amazon GameLift Servers API del AWS SDK [CreatePlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreatePlayerSession.html). El cliente de juego hace referencia a este ID cuando se conecta al proceso del servidor.  
Tipo: std::string  
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk-cpp-ref-acceptplayersession-example"></a>

Este ejemplo ilustra una función para gestionar una solicitud de conexión, que incluye validar y rechazar una sesión de jugador no válida. IDs 

```
void ReceiveConnectingPlayerSessionID (Connection& connection, const std::string& playerSessionId){
    Aws::GameLift::GenericOutcome connectOutcome = 
        Aws::GameLift::Server::AcceptPlayerSession(playerSessionId);
    if(connectOutcome.IsSuccess())
    {
        connectionToSessionMap.emplace(connection, playerSessionId);
        connection.Accept();
    }
    else 
    {
        connection.Reject(connectOutcome.GetError().GetMessage();
    }       
}
```

## ActivateGameSession()
<a name="integration-server-sdk-cpp-ref-activategamesession"></a>

Notifica al servicio Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Esta acción debe llamarse como parte de la función de devolución de llamada `onStartGameSession()`, después de completar la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-activategamesession-syntax"></a>

```
GenericOutcome ActivateGameSession();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-activategamesession-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-activategamesession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de devolución de llamada `onStartGameSession()`. 

```
void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
   // game-specific tasks when starting a new game session, such as loading map
   GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession();
}
```

## DescribePlayerSessions()
<a name="integration-server-sdk-cpp-ref-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice esta acción para obtener información para una única sesión de jugador, para todas las sesiones de jugador de una sesión de juego o para todas las sesiones de jugador asociadas a un solo ID de jugador.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-describeplayersessions-syntax"></a>

```
DescribePlayerSessionsOutcome DescribePlayerSessions ( 
    const Aws::GameLift::Server::Model::DescribePlayerSessionsRequest &describePlayerSessionsRequest);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-describeplayersessions-parameter"></a>

**describePlayerSessionsSolicitud**  
Es un objeto [DescribePlayerSessionsRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-playersessions) que describe las sesiones de jugador a recuperar.  
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto `DescribePlayerSessionsOutcome` que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud. Los objetos de sesión del jugador tienen una estructura idéntica al tipo de [PlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_PlayerSession.html)datos de la Amazon GameLift Servers API del AWS SDK.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-describeplayersessions-example"></a>

Este ejemplo muestra una solicitud de todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir `NextToken` y definir el valor de `Limit` en 10, Amazon GameLift Servers devuelve los primeros 10 registros de sesiones de jugador que coincidan con la solicitud.

```
// Set request parameters
Aws::GameLift::Server::Model::DescribePlayerSessionsRequest request;
request.SetPlayerSessionStatusFilter(Aws::GameLift::Server::Model::PlayerSessionStatusMapper::GetNameForPlayerSessionStatus(Aws::GameLift::Server::Model::PlayerSessionStatus::Active));
request.SetLimit(10);
request.SetGameSessionId("the game session ID");    // can use GetGameSessionId()

// Call DescribePlayerSessions
Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome = 
    Aws::GameLift::Server::DescribePlayerSessions(request);
```

## GetGameSessionId()
<a name="integration-server-sdk-cpp-ref-getgamesessionid"></a>

Recupera un identificador único de la sesión de juego alojada actualmente por el proceso del servidor, siempre que esté activo. El identificador se devuelve en el formato de ARN: `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. 

En el caso de los procesos inactivos que no activados aún con una sesión de juego, la llamada devuelve `Success`=`True` y `GameSessionId`=`""` (una cadena vacía).

### Sintaxis
<a name="integration-server-sdk-cpp-ref-getgamesessionid-syntax"></a>

```
AwsStringOutcome GetGameSessionId();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-getgamesessionid-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego como objeto `AwsStringOutcome`. Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-getgamesessionid-example"></a>

```
Aws::GameLift::AwsStringOutcome sessionIdOutcome = 
    Aws::GameLift::Server::GetGameSessionId();
```

## GetInstanceCertificate()
<a name="integration-server-sdk-cpp-ref-getinstancecertificate"></a>

Recupera la ubicación del archivo de un certificado TLS codificado con pem que está asociado a la flota y sus instancias. AWS Certificate Manager genera este certificado al crear una nueva flota con la configuración del certificado establecida en GENERATED. Utilice este certificado para establecer una conexión segura con un cliente de juego y para cifrar la comunicación cliente/servidor. 

### Sintaxis
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-syntax"></a>

```
GetInstanceCertificateOutcome GetInstanceCertificate();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-return"></a>

Si se ejecuta correctamente, devuelve un objeto `GetInstanceCertificateOutcome` que contiene la ubicación del archivo de certificado TLS y la cadena de certificados de la flota, que se almacena en la instancia. En la instancia también se almacena un archivo de certificado raíz extraído de la cadena de certificados. Si no funciona, devuelve un mensaje de error. 

Para obtener más información sobre el certificado y los datos de la cadena de certificados, consulte [los elementos de GetCertificate respuesta](https://docs.aws.amazon.com/acm/latest/APIReference/API_GetCertificate.html#API_GetCertificate_ResponseElements) en la referencia de la AWS Certificate Manager API.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-example"></a>

```
Aws::GameLift::GetInstanceCertificateOutcome certificateOutcome = 
    Aws::GameLift::Server::GetInstanceCertificate();
```

## GetSdkVersion()
<a name="integration-server-sdk-cpp-ref-getsdk"></a>

Devuelve el número de versión actual del SDK en uso.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-getsdk-syntax"></a>

```
AwsStringOutcome GetSdkVersion();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-getsdk-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-getsdk-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como objeto `AwsStringOutcome`. La cadena devuelta solo incluye el número de versión (por ejemplo, («3.1.5»). Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-getsdk-example"></a>

```
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = 
    Aws::GameLift::Server::GetSdkVersion();
```

## GetTerminationTime()
<a name="integration-server-sdk-cpp-ref-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción tras recibir una devolución de llamada `onProcessTerminate()` del servicio Amazon GameLift Servers. Amazon GameLift Servers puede llamar a `onProcessTerminate()` por los siguientes motivos: (1) cuando el proceso del servidor ha informado de un estado deficiente o no ha respondido a Amazon GameLift Servers; (2) cuando se finaliza la instancia durante un evento de reducción vertical; o (3) cuando una instancia se finaliza debido a una [interrupción de spot](spot-tasks.md). 

Si el proceso ha recibido una devolución de llamada `onProcessTerminate()`, el devuelto es la hora de terminación estimada. Si el proceso no ha recibido ninguna devolución de llamada `onProcessTerminate()`, se devuelve un mensaje de error. Más información acerca del [apagado de un proceso de servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Sintaxis
<a name="integration-server-sdk-cpp-ref-getterm-syntax"></a>

```
AwsLongOutcome GetTerminationTime();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-getterm-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-getterm-return"></a>

Si el proceso se realiza correctamente, devuelve la hora de terminación como un objeto `AwsLongOutcome`. El valor es la hora de terminación expresado en ciclos transcurridos desde 0001 00:00:00. Por ejemplo, el valor de fecha y hora 13-09-2020 12:26:40 -000Z es igual a 637355968000000000 ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-getterm-example"></a>

```
Aws::GameLift::AwsLongOutcome TermTimeOutcome = 
    Aws::GameLift::Server::GetTerminationTime();
```

## InitSDK()
<a name="integration-server-sdk-cpp-ref-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers. Este método debe llamarse en el momento del lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-initsdk-syntax"></a>

```
InitSDKOutcome InitSDK();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-initsdk-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-initsdk-return"></a>

Si se ejecuta correctamente, devuelve un InitSdkOutcome objeto que indica que el proceso del servidor está listo para la llamada[ProcessReady()](#integration-server-sdk-cpp-ref-processready). 

### Ejemplo
<a name="integration-server-sdk-cpp-ref-initsdk-example"></a>

```
Aws::GameLift::Server::InitSDKOutcome initOutcome = 
    Aws::GameLift::Server::InitSDK();
```

## ProcessEnding()
<a name="integration-server-sdk-cpp-ref-processending"></a>

Notifica al servicio Amazon GameLift Servers que el proceso del servidor se va a detener. Este método debe llamarse después de realizar las demás tareas de limpieza, incluido el cierre de todas las sesiones de juego activas. Se debe salir de este método con un código de salida de 0; un código de salida que no sea 0 provoca un mensaje de evento que afirma que no se ha salido del proceso correctamente.

Después de que el método finalice con un código de 0, puede terminar el proceso con un código de salida correcto. También puede salir del proceso con un código de error. Si sale con un código de error, el evento de la flota indicará que el proceso ha finalizado incorrectamente (`SERVER_PROCESS_TERMINATED_UNHEALTHY`). 

### Sintaxis
<a name="integration-server-sdk-cpp-ref-processending-syntax"></a>

```
GenericOutcome ProcessEnding();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-processending-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-processending-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-processending-example"></a>

```
Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding();
if (outcome.Success)
    exit(0);  // exit with success
// otherwise, exit with error code
exit(errorCode);
```

## ProcessReady()
<a name="integration-server-sdk-cpp-ref-processready"></a>

Notifica al servicio Amazon GameLift Servers que el proceso del servidor está listo para alojar sesiones de juego. Llame a este método después de invocar correctamente a [InitSDK()](#integration-server-sdk-cpp-ref-initsdk) y completar las tareas de configuración necesarias antes de que el proceso del servidor pueda alojar una sesión de juego. Se debe llamar a este método solo una vez por proceso.

La llamada es síncrona. Para realizar una llamada asíncrona, utilice [ProcessReadyAsync()](#integration-server-sdk-cpp-ref-processreadyasync). Consulte [Inicialización del proceso del servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize) para obtener más detalles.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-processready-syntax"></a>

```
GenericOutcome ProcessReady(
    const Aws::GameLift::Server::ProcessParameters &processParameters);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-processready-parameter"></a>

**processParameters**  
Es un objeto [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process) que comunica la siguiente información acerca del proceso del servidor:  
+ Nombres de métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ Número de puerto de escucha del servidor de proceso.
+ Ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-processready-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-processready-example"></a>

Este ejemplo ilustra las implementaciones tanto de la función de llamada como de la función de devolución de llamada [ProcessReady()](#integration-server-sdk-cpp-ref-processready).

```
// Set parameters and call ProcessReady
std::string serverLog("serverOut.log");        // Example of a log file written by the game server
std::vector<std::string> logPaths;
logPaths.push_back(serverLog);

int listenPort = 9339;

Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters(
    std::bind(&Server::onStartGameSession, this, std::placeholders::_1),
    std::bind(&Server::onProcessTerminate, this),
    std::bind(&Server::OnHealthCheck, this),
    std::bind(&Server::OnUpdateGameSession, this),
    listenPort,
    Aws::GameLift::Server::LogParameters(logPaths)); 

Aws::GameLift::GenericOutcome outcome = 
   Aws::GameLift::Server::ProcessReady(processReadyParameter);

// Implement callback functions
void Server::onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
   // game-specific tasks when starting a new game session, such as loading map
   GenericOutcome outcome = 
       Aws::GameLift::Server::ActivateGameSession (maxPlayers);
}

void Server::onProcessTerminate()
{
   // game-specific tasks required to gracefully shut down a game session, 
   // such as notifying players, preserving game state data, and other cleanup
   GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding();
}

bool Server::onHealthCheck()
{
    bool health;
    // complete health evaluation within 60 seconds and set health
    return health;
}
```

## ProcessReadyAsync()
<a name="integration-server-sdk-cpp-ref-processreadyasync"></a>

Notifica al servicio Amazon GameLift Servers que el proceso del servidor está listo para alojar sesiones de juego. Este método debe llamarse cuando el proceso del servidor esté listo para alojar una sesión de juego. Los parámetros especifican los nombres de las funciones de devolución de llamada a las que Amazon GameLift Servers llama en determinadas circunstancias. El código de servidor de juegos debe implementar estas funciones.

La llamada es asíncrona. Para realizar una llamada síncrona, utilice [ProcessReady()](#integration-server-sdk-cpp-ref-processready). Consulte [Inicialización del proceso del servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize) para obtener más detalles.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-processreadyasync-syntax"></a>

```
GenericOutcomeCallable ProcessReadyAsync(
    const Aws::GameLift::Server::ProcessParameters &processParameters);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-processreadyasync-parameter"></a>

**processParameters**  
Es un objeto [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process) que comunica la siguiente información acerca del proceso del servidor:  
+ Nombres de métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ Número de puerto de escucha del servidor de proceso.
+ Ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-processreadyasync-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-processreadyasync-example"></a>

```
// Set parameters and call ProcessReady
std::string serverLog("serverOut.log");        // This is an example of a log file written by the game server
std::vector<std::string> logPaths;
logPaths.push_back(serverLog);

int listenPort = 9339;

Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters(
    std::bind(&Server::onStartGameSession, this, std::placeholders::_1),
    std::bind(&Server::onProcessTerminate, this),
    std::bind(&Server::OnHealthCheck, this),
    std::bind(&Server::OnUpdateGameSession, this),
    listenPort,
    Aws::GameLift::Server::LogParameters(logPaths));

Aws::GameLift::GenericOutcomeCallable outcome = 
   Aws::GameLift::Server::ProcessReadyAsync(processReadyParameter);

// Implement callback functions
void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
   // game-specific tasks when starting a new game session, such as loading map
   GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers);
}

void onProcessTerminate()
{
   // game-specific tasks required to gracefully shut down a game session, 
   // such as notifying players, preserving game state data, and other cleanup
   GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding();
}

bool onHealthCheck()
{
    // perform health evaluation and complete within 60 seconds
    return health;
}
```

## RemovePlayerSession()
<a name="integration-server-sdk-cpp-ref-removeplayersession"></a>

Notifica al servicio Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha desconectado del proceso del servidor. En respuesta, Amazon GameLift Servers cambia el estado de la ranura de jugador a disponible, por lo que se le puede asignar un jugador nuevo. 

### Sintaxis
<a name="integration-server-sdk-cpp-ref-removeplayersession-syntax"></a>

```
GenericOutcome RemovePlayerSession(
    const std::string& playerSessionId);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-removeplayersession-parameter"></a>

**playerSessionId**  
ID único emitido por el Amazon GameLift Servers servicio en respuesta a una llamada a la acción de la Amazon GameLift Servers API del AWS SDK [CreatePlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreatePlayerSession.html). El cliente de juego hace referencia a este ID cuando se conecta al proceso del servidor.  
Tipo: std::string  
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-removeplayersession-example"></a>

```
Aws::GameLift::GenericOutcome disconnectOutcome = 
    Aws::GameLift::Server::RemovePlayerSession(playerSessionId);
```

## StartMatchBackfill()
<a name="integration-server-sdk-cpp-ref-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Consulte también la acción del AWS SDK [StartMatchBackfill()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartMatchBackfill.html). Con esta acción, un proceso del servidor de juegos que aloja la sesión de juego puede iniciar solicitudes de reposición de emparejamiento. Obtenga más información sobre la [característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan correctamente nuevos jugadores, el servicio Amazon GameLift Servers ofrece datos actualizados del emparejador invocando la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk-cpp-ref-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-syntax"></a>

```
StartMatchBackfillOutcome StartMatchBackfill ( 
    const Aws::GameLift::Server::Model::StartMatchBackfillRequest &startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-parameter"></a>

**StartMatchBackfillRequest**  
Un objeto [StartMatchBackfillRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-startmatchbackfillrequest) que comunica la siguiente información:  
+ Un ID de ticket que se asignará a la solicitud de reposición. Esta información es opcional; si no se proporciona ningún ID, Amazon GameLift Servers lo generará automáticamente.
+ El creador de emparejamientos al que se enviará la solicitud. El ARN de configuración completo es obligatorio. Este valor se puede obtener de los datos del creador de emparejamientos de la sesión de juego.
+ El ID de la sesión de juego que está en fase de reposición.
+ Datos de emparejamiento disponibles para los jugadores actuales de la sesión de juego.
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-return"></a>

Devuelve un StartMatchBackfillOutcome objeto con un mensaje de error que indica que se ha rellenado el partido o que ha fallado. El estado de las entradas se puede rastrear mediante la acción del AWS SDK [DescribeMatchmaking().](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeMatchmaking.html)

### Ejemplo
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-example"></a>

```
// Build a backfill request
std::vector<Player> players;
Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest;
startBackfillRequest.SetTicketId("a ticket ID");                                         //optional, autogenerated if not provided
startBackfillRequest.SetMatchmakingConfigurationArn("the matchmaker configuration ARN"); //from the game session matchmaker data
startBackfillRequest.SetGameSessionArn("the game session ARN");                          // can use GetGameSessionId()
startBackfillRequest.SetPlayers(players);                                                  //from the game session matchmaker data

// Send backfill request
Aws::GameLift::StartMatchBackfillOutcome backfillOutcome = 
    Aws::GameLift::Server::StartMatchBackfill(startBackfillRequest);

// Implement callback function for backfill
void Server::OnUpdateGameSession(Aws::GameLift::Server::Model::GameSession gameSession, Aws::GameLift::Server::Model::UpdateReason updateReason, std::string backfillTicketId)
{
   // handle status messages
   // perform game-specific tasks to prep for newly matched players
}
```

## StopMatchBackfill()
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa que se creó con [StartMatchBackfill()](#integration-server-sdk-cpp-ref-startmatchbackfill). Consulte también la acción del AWS SDK [StopMatchmaking()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopMatchmaking.html). Obtenga más información sobre la [característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-syntax"></a>

```
GenericOutcome StopMatchBackfill ( 
    const Aws::GameLift::Server::Model::StopMatchBackfillRequest &stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-parameter"></a>

**StopMatchBackfillRequest**  
Un objeto [StopMatchBackfillRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-stopmatchbackfillrequest) que identifica el ticket de emparejamiento que se va a cancelar:   
+ ID del ticket asignado a la solicitud de reposición que se va a cancelar
+ el creador de emparejamientos al que se envió la solicitud de reposición
+ sesión de juego asociada a la solicitud de reposición
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-example"></a>

```
// Set backfill stop request parameters

Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest;
stopBackfillRequest.SetTicketId("the ticket ID");
stopBackfillRequest.SetGameSessionArn("the game session ARN");                           // can use GetGameSessionId()
stopBackfillRequest.SetMatchmakingConfigurationArn("the matchmaker configuration ARN");  // from the game session matchmaker data

Aws::GameLift::GenericOutcome stopBackfillOutcome = 
    Aws::GameLift::Server::StopMatchBackfillRequest(stopBackfillRequest);
```

## TerminateGameSession()
<a name="integration-server-sdk-cpp-ref-terminategamesession"></a>

**Este método está obsoleto con la versión 4.0.1. En su lugar, el proceso del servidor debería llamar a [ProcessEnding()](#integration-server-sdk-cpp-ref-processending) una vez finalizada la sesión de juego.**

Informa al servicio de Amazon GameLift Servers de que el proceso del servidor ha finalizado la sesión de juego actual. Se llama a esta acción cuando el proceso del servidor permanece activo y listo para alojar una nueva sesión de juego. Solo debe llamarse una vez finalizado el procedimiento de finalización de la sesión de juego, ya que indica a Amazon GameLift Servers que el proceso del servidor está disponible inmediatamente para alojar una nueva sesión de juego. 

No se llamará a esta acción si el proceso del servidor se interrumpe una vez finalizada la sesión de juego. En su lugar, se llamará a [ProcessEnding()](#integration-server-sdk-cpp-ref-processending) para indicar que tanto la sesión de juego como el proceso del servidor están finalizando. 

### Sintaxis
<a name="integration-server-sdk-cpp-ref-terminategamesession-syntax"></a>

```
GenericOutcome TerminateGameSession();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-terminategamesession-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-terminategamesession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores. Consulte también la acción del AWS SDK [UpdateGameSession()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateGameSession.html).

### Sintaxis
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-syntax"></a>

```
GenericOutcome UpdatePlayerSessionCreationPolicy(
    Aws::GameLift::Model::PlayerSessionCreationPolicy newPlayerSessionPolicy);
```

### Parameters
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-parameter"></a>

**newPlayerSessionPolítica**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos.   
Tipo: Aws:GameLift: :Model: PlayerSessionCreationPolicy enum. Los valores válidos son:   
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas.
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas.
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy::ACCEPT_ALL);
```

## Destroy()
<a name="integration-server-sdk-cpp-ref-destroy"></a>

Limpia la memoria asignada por initSDK() durante la inicialización del servidor de juegos. Utilice este método después de finalizar un proceso de servidor de juegos para evitar desperdiciar memoria del servidor.

### Sintaxis
<a name="integration-server-sdk-cpp-ref-destroy-syntax"></a>

```
GenericOutcome Aws::GameLift::Server::Destroy();
```

### Parameters
<a name="integration-server-sdk-cpp-ref-destroy-parameter"></a>

No hay parámetros.

### Valor devuelto
<a name="integration-server-sdk-cpp-ref-destroy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-cpp-ref-destroy-example"></a>

En este ejemplo, se limpia la memoria asignada por InitSDK una vez finalizado el proceso del servidor de juegos.

```
if (Aws::GameLift::Server::ProcessEnding().IsSuccess()) {
  Aws::GameLift::Server::Destroy();
  exit(0);
}
```