

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# C\$1\$1 サーバー SDK for Amazon GameLift Servers 4.x –- アクション
<a name="integration-server-sdk-cpp-ref-actions"></a>

サーバー SDK リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

**注記**  
このリファレンスは、サーバー SDK for Amazon GameLift Servers の以前のバージョン用です。最新バージョンについては、「[C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-cpp-actions.md)」を参照してください。

# C\$1\$1 サーバー SDK for Amazon GameLift Servers 4.x -- データ型
<a name="integration-server-sdk-cpp-ref-datatypes"></a>

サーバー SDK リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

**注記**  
このリファレンスは、サーバー SDK for Amazon GameLift Servers の以前のバージョン用です。最新バージョンについては、「[C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型](integration-server-sdk5-cpp-datatypes.md)」を参照してください。

この API は、`GameLiftServerAPI.h`、`LogParameters.h`、および `ProcessParameters.h` で定義されています。

[C\$1\$1 サーバー SDK for Amazon GameLift Servers 4.x –- アクション](integration-server-sdk-cpp-ref-actions.md)

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

このデータ型は、取得するプレイヤーセッションを指定するのに使用されます。このデータ型は次のように使用できます。
+ 特定のプレーヤーセッションをリクエストする PlayerSessionId を提供します。
+ 指定したゲームセッションのすべてのプレイヤーセッションをリクエストする GameSessionId を提供します。
+ 指定したプレイヤーのすべてのプレイヤーセッションをリクエストする PlayerId を提供します。

プレイヤーセッション数が多い場合は、ページ分割パラメータを使用して結果を順次ブロックとして取得します。

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

**GameSessionId**  
一意のゲームセッション識別子。このパラメータを使用して、指定したゲームセッションのすべてのプレイヤーセッションをリクエストします。ゲームセッション ID の形式は、`arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>` です。<ID string> の値は、カスタム ID 文字列または (ゲームセッション作成時に指定した場合) 生成された文字列のいずれかです。  
型: String  
必須: いいえ

**制限**  
返される結果の最大数。このパラメータを *NextToken* とともに使用して、結果を一連の順次ページとして取得します。プレイヤーセッション ID を指定した場合、このパラメータは無視されます。  
型: Integer  
必須: いいえ

**NextToken**  
結果において次の順次ページの開始を示すトークン。このアクションの以前の呼び出しで返されたトークンを使用します。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を指定した場合、このパラメータは無視されます。  
型: string  
必須: いいえ

**PlayerId**  
プレイヤーを表す一意の識別子。プレイヤー ID は開発者によって定義されます。「[プレイヤー ID を生成する](player-sessions-player-identifiers.md)」を参照してください。  
型: string  
必須: いいえ

**PlayerSessionId**  
プレイヤーセッションを表す一意の識別子。  
型: string  
必須: いいえ

**PlayerSessionStatusFilter**  
結果をフィルタリングするプレイヤーセッションステータス。可能なプレイヤーセッションステータスとして以下のステータスがあります。  
+ RESERVED - プレイヤーセッションリクエストは受領されましたが、プレイヤーのサーバープロセスへの接続や検証はまだ行われていません。
+ ACTIVE - プレイヤーはサーバープロセスによって検証され、現時点で接続されています。
+ COMPLETED - プレイヤー接続は削除されました。
+ TIMEDOUT - プレイヤーセッションリクエストは受領されましたが、タイムアウト制限 (60 秒) 内でのプレイヤーの接続や検証は行われていません。
型: string  
必須: いいえ

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

このデータ型は、ゲームセッション中に生成されたファイルのうち、ゲームセッション終了時に Amazon GameLift Servers でアップロードして保存するファイルを識別するのに使用されます。この情報は、[ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready) 呼び出しで Amazon GameLift Servers サービスに伝えられます。

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

**logPaths**  
Amazon GameLift Servers で将来のアクセスに備えて保存するゲームサーバーログファイルへのディレクトリパス。これらのファイルは、各ゲームセッション中に生成されます。ファイルのパスと名前はゲームサーバーで定義され､ルートゲームビルドディレクトリに保存されます。ログパスは絶対パスである必要があります。例えば、ゲームビルドによって `MyGame\sessionlogs\` などのパスに保存されるゲームセッションログのログパスは `c:\game\MyGame\sessionLogs` (Windows インスタンスの場合) または `/local/game/MyGame/sessionLogs` (Linux インスタンスの場合) となります。  
型: std:vector<std::string>  
必須: いいえ

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

このデータ型には、[ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready) 呼び出しで Amazon GameLift Servers サービスに送られたパラメータセットが含まれます。

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

**port**  
サーバープロセスが新しいプレイヤーの接続をリスンするポート番号。値は、このゲームサーバービルドをデプロイするすべてのフリートで設定されているポート番号の範囲に含まれる必要があります。このポート番号は、ゲームセッションオブジェクトとプレイヤーセッションオブジェクトに含まれ、ゲームセッションがサーバープロセスに接続するときに使用します。  
型: Integer   
必須: はい

**logParameters**  
ゲームセッションログファイルへのディレクトリパスのリストを含むオブジェクト。  
型: Aws::GameLift::Server::[LogParameters](#integration-server-sdk-cpp-ref-dataypes-log)  
必須: いいえ

**onStartGameSession**  
Amazon GameLift Servers サービスが新しいゲームセッションを 有効化するために呼び出す コールバック関数の名前です。Amazon GameLift Servers は、クライアントリクエスト [CreateGameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateGameSession.html) に応答して、この関数を呼び出します。コールバック関数は [GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html) オブジェクト (*Amazon GameLift Servers サービス API リファレンス*で定義) を渡します。  
型: `const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`   
必須: はい

**onProcessTerminate**  
Amazon GameLift Servers サービスがサーバープロセスを強制シャットダウンするために呼び出すコールバック関数の名前。この関数を呼び出した後、Amazon GameLift Servers はサーバープロセスがシャットダウンするのを 5 分間待ち、[ProcessEnding()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processending) 呼び出しで応答します。応答がない場合は、受信サーバープロセスをシャットダウンします。  
型: `std::function<void()> onProcessTerminate`  
必須: いいえ

**onHealthCheck**  
Amazon GameLift Servers サービスがサーバープロセスにヘルスステータスレポートをリクエストするために呼び出すコールバック関数の名前です。Amazon GameLift Servers は、この関数を 60 秒ごとに呼び出します。この関数を呼び出した後、Amazon GameLift Servers はレスポンスを 60 秒ほど待ちます。レスポンスがなければ、サーバープロセスを異常と記録します。  
型: `std::function<bool()> onHealthCheck`  
必須: いいえ

**onUpdateGameSession**  
Amazon GameLift Servers サービスが更新されたゲームセッションオブジェクトをサーバープロセスに渡すために呼び出すコールバック関数の名前です。Amazon GameLift Servers は、[マッチバックフィル](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html)リクエストが処理され、更新されたマッチメーカーデータを提供できる状態になると、この関数を呼び出します。[GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html) オブジェクト、ステータス更新 (`updateReason`)、およびマッチバックフィルチケット ID が渡されます。  
型: `std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`   
必須: いいえ

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

このデータ型はマッチメーキングバックフィルリクエストの送信に使用します。この情報は、[StartMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-startmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに伝えられます。

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

**GameSessionArn**  
 一意のゲームセッション識別子。API アクション [GetGameSessionId()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-getgamesessionid) は ARN 形式の識別子を返します。  
型: string  
必須: はい

**MatchmakingConfigurationArn**  
このリクエストに使用されるマッチメーカーの ARN 形式の一意な識別子。元のゲームセッションの作成に使用されたマッチメーカーを見つけるには、ゲームセッションオブジェクトのマッチメーカーデータプロパティを確認します。マッチメーカーデータの詳細については「[マッチメーカーデータの処理](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data)」を参照してください。  
型: string  
必須: はい

**プレイヤー**  
現在ゲームセッションに参加しているすべてのプレイヤーを表すデータのセット。マッチメーカーはこの情報を使用して、現在のプレイヤーとマッチする新しいプレイヤーを検索します。プレイヤーオブジェクトの形式の説明については、*Amazon GameLift Servers API リファレンスガイド*を参照してください。プレイヤー属性、ID、チームの割り当てを見つけるには、マッチメーカーデータプロパティのゲームセッションオブジェクトを参照してください。マッチメーカーでレイテンシーが使用されている場合は、現在のリージョンの更新されたレイテンシーを収集し、それを各プレイヤーのデータに含めます。  
型: std:vector[<player>](https://docs.aws.amazon.com/gamelift/latest/apireference/API_Player.html)  
必須: はい

**TicketId**  
マッチメーキングまたはバックフィルリクエストチケットの一意の識別子。ここで値を指定しない場合、Amazon GameLift Serversによって UUID 形式で自動的に生成されます。この識別子を使用してマッチバックフィルチケットのステータスを追跡したり、必要に応じてリクエストをキャンセルしたりします。  
型: string  
必須: いいえ

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

このデータ型はマッチメーキングバックフィルリクエストのキャンセルに使用します。この情報は、[StopMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-stopmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに伝えられます。

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

**GameSessionArn**  
キャンセルされるリクエストに関連付けられた一意のゲームセッション識別子。  
型: string  
必須: はい

**MatchmakingConfigurationArn**  
このリクエストが送信されたマッチメーカーの一意の識別子。  
型: string  
必須: はい

**TicketId**  
キャンセルされるバックフィルリクエストチケットの一意の識別子。  
型: string  
必須: はい

[C\$1\$1 サーバー SDK for Amazon GameLift Servers 4.x -- データ型](integration-server-sdk-cpp-ref-datatypes.md)

**Topics**
+ [C\$1\$1 サーバー SDK for Amazon GameLift Servers 4.x -- データ型](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>

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続し、検証が必要であることを Amazon GameLift Servers サービスに通知します。Amazon GameLift Servers は、プレイヤーセッション ID が有効であること、つまりプレイヤー ID がゲームセッションでプレイヤースロットを予約していることを確認します。検証できたら、Amazon GameLift Servers はプレーヤースロットの状態を RESERVED から ACTIVE に変更します。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-acceptplayersession-parameter"></a>

**playerSessionId**  
 AWS SDK Amazon GameLift Servers API アクション [CreatePlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreatePlayerSession.html) の呼び出しに応答してAmazon GameLift Serversサービスによって発行された一意の ID。ゲームクライアントは、サーバープロセスに接続するときにこの ID をリファレンスします。  
型: std::string  
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-acceptplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、無効なプレイヤーセッション ID の検証や拒否を含む、接続リクエストを処理するための関数を示します。

```
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>

サーバープロセスがゲームセッションを開始し、プレイヤーの接続を受ける準備ができていることを Amazon GameLift Servers サービスに通知します。このアクションは、すべてのゲームセッションの初期化が完了した後、`onStartGameSession()` コールバック関数の一部として呼び出されます。

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

```
GenericOutcome ActivateGameSession();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-activategamesession-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-activategamesession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、`ActivateGameSession()` が `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>

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このアクションを使用して、単一のプレイヤーセッション、ゲームセッション内のすべてのプレイヤーセッション、または単一のプレイヤー ID に関連付けられたすべてのプレイヤーセッションに関する情報を取得します。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-describeplayersessions-parameter"></a>

**describePlayerSessionsRequest**  
取得するプレイヤーセッションを記述する [DescribePlayerSessionsRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-playersessions) オブジェクト。  
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-describeplayersessions-return"></a>

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む `DescribePlayerSessionsOutcome` オブジェクトを返します。プレイヤーセッションオブジェクトの構造は AWS SDK Amazon GameLift Servers API [PlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_PlayerSession.html) データ型と同じです。

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

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストを示しています。`NextToken` を省略し、`Limit` 値を 10 に設定すると、Amazon GameLift Servers はリクエストに一致する最初の 10 個のプレイヤーセッションを返します。

```
// 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>

サーバープロセスがアクティブな場合、サーバープロセスが現在ホストしているゲームセッションの一意の識別子を取得します。識別子は ARN 形式で返されます: `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。

ゲームセッションでまだアクティブ化されていないアイドルプロセスの場合、コールは`Success`=`True`そして`GameSessionId`=`""`(空の文字列)を返します。

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

```
AwsStringOutcome GetGameSessionId();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-getgamesessionid-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-getgamesessionid-return"></a>

成功した場合、ゲームセッション ID を `AwsStringOutcome` オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

### 例
<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>

フリートとそのインスタンスに関連付けられている pem エンコードされた TLS 証明書のファイルの場所を取得します。証明書設定を GENERATED に設定して新しいフリートを作成すると、この証明書 AWS Certificate Manager が生成されます。この証明書を使用して、ゲームクライアントとのセキュリティ保護ありの接続を確立し、クライアント/サーバー通信を暗号化します。

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

```
GetInstanceCertificateOutcome GetInstanceCertificate();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-getinstancecertificate-return"></a>

成功すると、インスタンスに保存されているフリートの TLS 証明書ファイルの場所と証明書チェーンを含む `GetInstanceCertificateOutcome` オブジェクトを返します。証明書チェーンから抽出されたルート証明書ファイルもインスタンスに保存されます。成功しなかった場合、エラーメッセージを返します。

証明書と証明書チェーンデータの詳細については、 AWS Certificate Manager API リファレンスの[GetCertificate Response Elements](https://docs.aws.amazon.com/acm/latest/APIReference/API_GetCertificate.html#API_GetCertificate_ResponseElements)」を参照してください。

### 例
<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>

使用中の SDK の現在のバージョン番号を返します。

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

```
AwsStringOutcome GetSdkVersion();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-getsdk-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-getsdk-return"></a>

成功した場合、`AwsStringOutcome` オブジェクトとして現在の SDK バージョンを返します。返される文字列は、バージョン番号のみを含みます(例: 3.1.5)。成功しなかった場合、エラーメッセージを返します。

### 例
<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>

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon GameLift Servers サービスから `onProcessTerminate()` コールバックを受け取った後にこのアクションを実行します。Amazon GameLift Servers は、次の理由により `onProcessTerminate()` を呼び出す場合があります。(1) サーバープロセスが異常を報告した場合、または Amazon GameLift Servers に応答しなかった場合 (2) スケールダウンイベント中にインスタンスを終了させる場合 (3) [スポット中断](spot-tasks.md)によりインスタンスが終了処理中の場合。

プロセスが `onProcessTerminate()` コールバックを受信した場合、戻り値は予想終了時刻です。プロセスが `onProcessTerminate()` コールバックを受信していない場合、エラーメッセージが返されます。[サーバープロセスのシャットダウン](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)の詳細を確認してください。

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

```
AwsLongOutcome GetTerminationTime();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-getterm-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-getterm-return"></a>

成功した場合、終了時刻を `AwsLongOutcome` オブジェクトとして返します。値は終了時間で、0001 00:00:00 以降の経過ティックで表現されます。例えば、日付時刻の値 2020-09-13 12:26:40 -000Z は、637355968000000000 ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

### 例
<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>

Amazon GameLift Servers SDK を初期化します。このメソッドは起動時に他の Amazon GameLift Servers 関連の初期化が実行される前に呼び出す必要があります。

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

```
InitSDKOutcome InitSDK();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-initsdk-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-initsdk-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk-cpp-ref-processready) を呼び出す準備ができていることを示す InitSdkOutcome オブジェクトを返します。

### 例
<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>

サーバープロセスがシャットダウンしていることを Amazon GameLift Servers サービスに通知します。このメソッドは、すべてのアクティブゲームセッションのシャットダウンを含む他のすべてのクリーンアップタスクの後に呼び出されます。このメソッドは、終了コード 0 で終了します。0 以外の終了コードでは、処理が問題なく終了しなかったというイベントメッセージが発生します。

メソッドがコード 0 で終了すると、成功した終了コードでプロセスを終了できます。エラーコードでプロセスを終了することもできます。エラーコードで終了すると、フリートイベントはプロセスが異常終了したことを示します (`SERVER_PROCESS_TERMINATED_UNHEALTHY`)。

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

```
GenericOutcome ProcessEnding();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-processending-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-processending-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

### 例
<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>

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers サービスに通知します。このメソッドは、[InitSDK()](#integration-server-sdk-cpp-ref-initsdk) の呼び出しが成功して必要な設定タスクが完了した後、サーバープロセスがゲームセッションをホストできるようになる前に呼び出す必要があります。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

この呼び出しは同期です。非同期呼び出しを実行するには、[ProcessReadyAsync()](#integration-server-sdk-cpp-ref-processreadyasync)を使用します。詳細については、「[サーバープロセスを初期化する](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-processready-parameter"></a>

**processParameters**  
サーバープロセスに関する以下の情報を伝える [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパス。
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-processready-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、[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>

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers サービスに通知します。サーバープロセスがゲームセッションをホストする準備ができたら、このメソッドを呼び出します。パラメータは、特定の状況で呼び出す Amazon GameLift Servers のコールバック関数名を指定します。ゲームサーバーコードは、これらの関数を実装する必要があります。

この呼び出しは非同期です。同期呼び出しを実行するには、[ProcessReady()](#integration-server-sdk-cpp-ref-processready) を使用します。詳細については、「[サーバープロセスを初期化する](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-processreadyasync-parameter"></a>

**processParameters**  
サーバープロセスに関する以下の情報を伝える [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパス。
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-processreadyasync-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

### 例
<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>

指定されたプレイヤーセッション ID のプレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers サービスに通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを新しいプレイヤーに割り当てられるよう利用可能に変更します。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-removeplayersession-parameter"></a>

**playerSessionId**  
 AWS SDK Amazon GameLift Servers API アクション [CreatePlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreatePlayerSession.html) の呼び出しに応答してAmazon GameLift Serversサービスによって発行された一意の ID。ゲームクライアントは、サーバープロセスに接続するときにこの ID をリファレンスします。  
型: std::string  
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-removeplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

### 例
<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>

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。 AWS SDK アクション [StartMatchBackfill()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartMatchBackfill.html) も参照してください。このアクションを使用すると、ゲームセッションをホストするゲームサーバーのプロセスによってマッチバックフィルリクエストを開始できます。[FlexMatch のバックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)について。

このアクションは非同期です。新規プレイヤーが正常にマッチングされると、Amazon GameLift Servers サービスはコールバック関数 `OnUpdateGameSession()` を呼び出して更新済みマッチメーカーデータを送信します。

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず [StopMatchBackfill()](#integration-server-sdk-cpp-ref-stopmatchbackfill) を呼び出して元のリクエストをキャンセルする必要があります。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-parameter"></a>

**StartMatchBackfillRequest**  
次の情報を通信する [StartMatchBackfillRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-startmatchbackfillrequest) オブジェクト。  
+ バックフィルリクエストに割り当てるチケット ID。この情報はオプションです。ID が指定されていない場合は Amazon GameLift Servers が ID を 1 つ自動生成します。
+ リクエストを送信するマッチメーカー。完全な設定 ARN が必要です。この値は、ゲームセッションのマッチメーカーデータから取得できます。
+ バックフィルされるゲームセッションの ID。
+ ゲームセッションの現在のプレイヤーに利用可能なマッチメーキングデータ。
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-startmatchbackfill-return"></a>

StartMatchBackfillOutcome オブジェクトを、マッチバックフィルチケットまたはエラーメッセージを伴うエラーとともに返します。チケットのステータスは、 AWS SDK アクション [DescribeMatchmaking() ](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeMatchmaking.html)を使用して追跡できます。

### 例
<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>

[StartMatchBackfill()](#integration-server-sdk-cpp-ref-startmatchbackfill) とともに作成されたアクティブなマッチバックフィルリクエストをキャンセルします。 AWS SDK アクション [StopMatchmaking()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopMatchmaking.html) も参照してください。[FlexMatch のバックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)について。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-parameter"></a>

**StopMatchBackfillRequest**  
キャンセルするマッチメーキングチケットを識別する [StopMatchBackfillRequest](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-stopmatchbackfillrequest) オブジェクト:   
+ キャンセルされるバックフィルリクエストに割り当てられたチケット ID
+ バックフィルリクエストが送信されるマッチメーカー
+ バックフィルリクエストに関連付けられたゲームセッション
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-stopmatchbackfill-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

### 例
<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>

**このメソッドは、バージョン 4.0.1 で非推奨となりました。代わりに、サーバープロセスはゲームセッションが終了した後に [ProcessEnding()](#integration-server-sdk-cpp-ref-processending) を呼び出す必要があります。**

サーバープロセスがゲームセッションをシャットダウンしたことを Amazon GameLift Servers サービスに通知します。このアクションは、サーバープロセスがアクティブなままになり、新しいゲームセッションをホストするための準備ができたときに呼び出されます。これは、新しいゲームセッションをホストするためにサーバープロセスがすぐに利用可能であることを Amazon GameLift Servers に通知するため、ゲームセッション終了手順が完了した後にのみ呼び出す必要があります。

ゲームセッションが停止した後にサーバープロセスがシャットダウンされる場合は、このアクションは呼び出されません。代わりに、[ProcessEnding()](#integration-server-sdk-cpp-ref-processending) を呼び出し、ゲームセッションとサーバープロセスの両方が終了していることを通知します。

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

```
GenericOutcome TerminateGameSession();
```

### パラメータ
<a name="integration-server-sdk-cpp-ref-terminategamesession-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-terminategamesession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。 AWS SDK アクション [UpdateGameSession()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateGameSession.html) も参照してください。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-parameter"></a>

**newPlayerSessionPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。  
型: Aws::GameLift::Model::PlayerSessionCreationPolicy 列挙。有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。
必須: はい

### 戻り値
<a name="integration-server-sdk-cpp-ref-updateplayersessioncreationpolicy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

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

ゲームサーバーの初期化中に initSDK () によって割り当てられたメモリをクリーンアップします。このメソッドは、ゲームサーバープロセスを終了した後に使用すると、サーバーメモリの浪費を防ぐことができます。

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

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

### パラメータ
<a name="integration-server-sdk-cpp-ref-destroy-parameter"></a>

パラメータはありません。

### 戻り値
<a name="integration-server-sdk-cpp-ref-destroy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、ゲームサーバープロセスの終了後に initSDK によって割り当てられたメモリをクリーンアップします。

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