다음을 통해 공유


PartyNetwork::CreateEndpoint

로컬 엔드로인트를 만들기 위한 비동기 시도를 큐에 넣습니다.

구문

PartyError CreateEndpoint(  
    const PartyLocalUser* localUser,  
    uint32_t propertyCount,  
    const PartyString* keys,  
    const PartyDataBuffer* values,  
    void* asyncIdentifier,  
    PartyLocalEndpoint** localEndpoint  
)  

매개 변수

localUserPartyLocalUser*
선택 사항

이 엔드포인트의 소유자로 연결할 선택적 로컬 사용자입니다. 이 엔드포인트가 원격 디바이스에 표시되면 사용자의 식별자가 이 엔드포인트에 연결됩니다. RemoveLocalUser()를 통해 자발적으로 제거되었거나 PartyNetwork::KickUser()를 통해 시작되었기 때문에 사용자가 인증되지 않은 경우 엔드포인트가 삭제됩니다.

propertyCount uint32_t

입력 keysvalues 배열의 속성 수입니다.

keysPartyString*
크기의 선택적 입력 배열propertyCount

속성 모음 키의 propertyCount 항목 배열입니다. 이 배열의 n번째 키는 values 배열의 n번째 값에 매핑됩니다. propertyCount이(가) 0인 경우 이 매개 변수는 nullptr이어야 합니다.

valuesPartyDataBuffer*
크기의 선택적 입력 배열propertyCount

속성 모음 값의 propertyCount 항목 배열입니다. 이 배열의 n번째 값은 keys 배열의 n번째 키에 의해 매핑됩니다. propertyCount이(가) 0인 경우 이 매개 변수는 nullptr이어야 합니다.

asyncIdentifier void*
선택 사항

완료 상태 변경을 이 호출과 연결하는 데 사용할 수 있는 선택적 앱 정의 포인터 크기의 컨텍스트 값입니다.

localEndpointPartyLocalEndpoint**
선택적 라이브러리 할당 출력

엔드포인트 작업을 큐에 넣을 선택적 출력 로컬 엔드포인트 개체입니다.

반환 값

PartyError

c_partyErrorSuccess(엔드포인트를 만드는 비동기 작업이 시작되는 경우), 그러지 않으면 오류 코드입니다. 이 메서드가 실패하면 관련 상태 변경 내용이 생성되지 않습니다. 사용자가 읽을 수 있는 형식의 오류 코드는 PartyManager::GetErrorMessage()를 통해 검색할 수 있습니다.

비고

이 메서드는 이 네트워크에서 로컬 디바이스와 연결된 엔드포인트를 만들기 위한 비동기 시도를 큐에 넣습니다. 작업이 완료되면 성공 또는 실패를 나타내는 PartyCreateEndpointCompletedStateChange가 제공됩니다. 성공하면 PartyEndpointCreatedStateChange가 생성되고 엔드포인트가 완전히 생성되어 네트워크에 연결되고 네트워크의 모든 인증된 디바이스에 표시됩니다. 실패하면 PartyEndpointDestroyedStateChange가 생성됩니다.

이 메서드는 PartyLocalEndpoint::SendMessage() 및 PartyLocalEndpoint::SetSharedProperties()와 같은 비동기 엔드포인트 작업을 수행하는 데 즉시 사용할 수 있는 출력으로 localEndpoint을(를) 선택적으로 제공합니다. 이러한 비동기 작업은 엔드포인트 만들기가 완료될 때까지 내부적으로 큐에 대기되며, 완료 시점에 처리됩니다. PartyEndpoint::GetUniqueIdentifier()는 엔드포인트 만들기가 완료될 때까지 실패를 반환합니다. 이 localEndpoint은(는) 결과 PartyCreateEndpointCompletedStateChange에도 제공됩니다.

로컬 사용자는 필요에 따라 엔드포인트의 소유자로 제공될 수 있습니다. 소유 로컬 사용자가 제공된 경우 네트워크에서 또는 네트워크에 인증하는 과정에서 인증되어야 합니다. 인증에 실패하면 엔드포인트 만들기도 실패합니다. 이 엔드포인트가 존재하는 동안 소유 로컬 사용자가 네트워크에서 제거되면 엔드포인트가 자동으로 삭제됩니다. PartyEndpointDestroyedStateChange를 통해 신호를 받습니다.

로컬 디바이스가 인증된 사용자가 없고 진행 중인 인증 작업이 없는 상태로 들어가면 완전히 만들어지지 않은 엔드포인트를 비롯한 모든 엔드포인트가 자동으로 삭제됩니다. PartyEndpointDestroyedStateChanges를 통해 신호를 받습니다.

반환이 성공적이면 이 메서드는 GetEndpoints() 이전에 반환된 모든 배열에 대한 메모리를 무효화합니다. 이 메서드는 새 엔드포인트를 배열에 동기적으로 추가합니다. PartyManager::StartProcessingStateChanges()는 배열의 메모리도 무효화합니다. 반환된 localEndpoint 개체는 PartyEndpointDestroyedStateChange가 생성되고 개체를 참조하는 모든 상태 변경이 PartyManager::FinishProcessingStateChanges()에 반환될 때까지 유효합니다.

속성 모음은 엔드포인트와 연결된 타이틀 관련 값의 컬렉션입니다. 초기 속성 모음은 엔드포인트가 표시되는 즉시 쿼리할 수 있습니다.

클라이언트가 네트워크 구성이 제공된 이후에 이 메서드를 호출하여 PartyNetworkConfiguration::maxEndpointsPerDeviceCount 제한을 위반한 경우 이 작업은 동기적으로 실패합니다. 네트워크 구성이 제공되기 이전에 클라이언트가 위반된 수의 엔드포인트 만들기를 큐에 넣은 경우 네트워크에서 클라이언트가 시작되고 네트워크 구성이 제공되면 PartyNetworkDestroyedStateChange가 생성됩니다.

요구 사항

헤더: Party.h

참고 항목

PartyNetwork
PartyCreateEndpointCompletedStateChange
PartyEndpointCreatedStateChange
PartyEndpointDestroyedStateChange
PartyNetworkDestroyedStateChange
PartyNetworkConfiguration
PartyNetwork::GetEndpoints
PartyLocalEndpoint::SendMessage
PartyEndpoint::GetUniqueIdentifier
PartyEndpoint::GetEntityId
PartyEndpoint::GetSharedProperty
PartyNetwork::AuthenticateLocalUser
PartyNetwork::RemoveLocalUser