> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyEndpointStatistic

> Types of statistics that can be retrieved for an endpoint.

Types of statistics that can be retrieved for an endpoint.

## Syntax

```cpp theme={null}
enum class PartyEndpointStatistic    
{  
    CurrentlyQueuedSendMessages = 0,  
    CurrentlyQueuedSendMessageBytes = 1,  
    CurrentlyActiveSendMessages = 2,  
    CurrentlyActiveSendMessageBytes = 3,  
    TimedOutSendMessages = 4,  
    TimedOutSendMessageBytes = 5,  
    CanceledSendMessages = 6,  
    CanceledSendMessageBytes = 7,  
    AverageDeviceRoundTripLatencyInMilliseconds = 8,  
}  
```

## Constants

| Constant | Description |
| - | - |
| CurrentlyQueuedSendMessages | The number of messages currently queued by [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) but not yet transmitted from the local endpoint to the specified target endpoints.  For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint. |
| CurrentlyQueuedSendMessageBytes | The number of bytes of data in messages currently queued by [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) but not yet transmitted from the local endpoint to the specified target endpoints.  For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint. |
| CurrentlyActiveSendMessages | The number of [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that are currently being transmitted or still have more local state changes to be processed.  A message is considered "active" as soon as its first byte has been placed in a packet that is being transmitted. It remains active until transmission completes and the local [PartyDataBuffersReturnedStateChange](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/structs/partydatabuffersreturnedstatechange.md) for it (if applicable) has been returned to [PartyManager::FinishProcessingStateChanges()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_finishprocessingstatechanges.md).   For efficiency, only a single message is tracked per PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint. |
| CurrentlyActiveSendMessageBytes | The number of bytes of data in [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that are currently being transmitted or still have more local state changes to be processed.  A message is considered "active" as soon as its first byte has been placed in a packet that is being transmitted. It remains active until transmission completes and the local [PartyDataBuffersReturnedStateChange](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/structs/partydatabuffersreturnedstatechange.md) for it (if applicable) has been returned to [PartyManager::FinishProcessingStateChanges()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_finishprocessingstatechanges.md).   For efficiency, only a single message is tracked per PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint. |
| TimedOutSendMessages | The total number of [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that were ever discarded for exceeding their send queue timeouts without being transmitted.  A message's send queue timeout is specified using [PartySendMessageQueuingConfiguration::timeoutInMillseconds](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/structs/partysendmessagequeuingconfiguration.md) when calling PartyLocalEndpoint::SendMessage().   For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.     When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had timed out messages gets destroyed between queries, this count might be perceived as "going backward". |
| TimedOutSendMessageBytes | The total number of bytes of data in [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that were ever discarded for exceeding their send queue timeouts without being transmitted.  A message's send queue timeout is specified using [PartySendMessageQueuingConfiguration::timeoutInMillseconds](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/structs/partysendmessagequeuingconfiguration.md) when calling PartyLocalEndpoint::SendMessage().   For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.     When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had timed out messages gets destroyed between queries, this count might be perceived as "going backward". |
| CanceledSendMessages | The total number of [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that were ever canceled.  Messages are canceled before being transmitted by the application calling PartyLocalEndpoint::CancelMessages() with a matching filter expression.   For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the PartyNetwork transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.     When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had canceled messages gets destroyed between queries, this count might be perceived as "going backward". |
| CanceledSendMessageBytes | The total number of bytes of data in [PartyLocalEndpoint::SendMessage()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md) messages from the local endpoint to the specified target endpoints that were ever canceled.  Messages are canceled before being transmitted by the application calling PartyLocalEndpoint::CancelMessages() with a matching filter expression.   For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the PartyNetwork transparent cloud relay server. If two or more of those endpoints are specified to [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.     When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had canceled messages gets destroyed between queries, this count might be perceived as "going backward". |
| AverageDeviceRoundTripLatencyInMilliseconds | The current moving average round trip latency ("ping time") in milliseconds to the endpoint's owning device.  This latency represents a moving average of the time it currently takes for this local device to send a message and receive a response from the target endpoint's device.   This statistic can only be queried for exactly one target endpoint at a time. The [PartyLocalEndpoint::GetEndpointStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md) method will fail if multiple targets are provided, or if a zero-entry array is provided to attempt to query all current endpoints.     You can also determine the local device's average round trip latency to the network's transparent cloud relay server by using [PartyNetwork::GetNetworkStatistics()](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getnetworkstatistics.md) to retrieve the [PartyNetworkStatistic::AverageRelayServerRoundTripLatencyInMilliseconds](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/enums/partynetworkstatistic.md) statistic. |

## Requirements

**Header:** Party.h

## See also

[Party members](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/party_members.md)\
[PartyNetworkStatistic](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/enums/partynetworkstatistic.md)\
[PartySendMessageQueuingConfiguration](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/structs/partysendmessagequeuingconfiguration.md)\
[PartyLocalEndpoint::SendMessage](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_sendmessage.md)\
[PartyLocalEndpoint::GetEndpointStatistics](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md)\
[PartyNetwork::GetNetworkStatistics](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getnetworkstatistics.md)


## Related topics

- [PartyLocalEndpoint::GetEndpointStatistics](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md)
- [PartyNetworkStatistic](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/enums/partynetworkstatistic.md)
- [PlayFab Party Release Notes](https://docs.xbox.com/services/playfab/multiplayer/networking/release-notes.md)
- [PartyDirectPeerConnectivityOptions](https://docs.xbox.com/services/playfab/multiplayer/networking/reference/enums/partydirectpeerconnectivityoptions.md)
- [Using direct peer-to-peer connections](https://docs.xbox.com/services/playfab/multiplayer/networking/concepts-direct-peer-connectivity.md)
