콘텐츠로 이동
무료 평가 시작

pdcomm::opcua::MfcClientEvent

구조체

MfcClientWorker::Drain()으로 워커의 메일박스에서 꺼낸 이벤트 하나입니다.

struct MfcClientEvent

kind는 어떤 멤버가 의미 있는지 알려 줍니다. 나머지 멤버는 기본값을 유지합니다. Failed 이벤트의 phase는 실패가 일어난 위치를 알려 줍니다.

  • begin: 요청을 보내기 전에 거부했습니다. #PDCOMM_OPCUA_INVALID_INPUT 또는 #PDCOMM_OPCUA_LIMIT이면 그 요청만 실패합니다. 다른 상태이면 워커도 종료됩니다.
  • response: 요청을 보냈지만 client::take()가 #PDCOMM_OPCUA_RUNTIME_ERROR로 완료했습니다. 서버가 응답을 중단했거나(Part 6 중단 청크(abort chunk)이며, 텍스트에 StatusCode가 나옵니다) 응답이 잘못된 경우입니다. 그 요청만 실패합니다. 잘못된 응답은 연결도 닫으므로, 이후 워커는 worker 실패로 종료됩니다.
  • abort: 요청이 완료되기 전에 워커가 멈췄습니다(#PDCOMM_OPCUA_CLOSED). 요청은 보내졌을 수도 있고 보내지지 않았을 수도 있습니다.
  • correlation이 0인 worker: connect, activation, poll, take, close 또는 어댑터가 실패했습니다. 워커가 멈춥니다.

멤버

aborted

필드

Stopped: 워커가 그 밖의 방식으로 종료되었습니다. 항상 !orderly입니다.

bool aborted = false

accepted

필드

Stopped: Submit()이 받아들인 요청 수입니다.

ULONGLONG accepted = 0

completed

필드

Stopped: 응답으로 끝났거나 begin 또는 response 실패로 끝난 요청 수입니다.

ULONGLONG completed = 0

correlation

필드

Pending, Completed, Failed: MfcClientWorker::Submit()에 전달한 상관 ID(correlation)입니다. 워커 실패이면 0입니다.

ULONGLONG correlation = 0

discarded

필드

Stopped: abort 실패로 끝난 요청 수입니다.

ULONGLONG discarded = 0

kind

필드

이벤트 종류입니다.

MfcClientEventKind kind = MfcClientEventKind::Failed

metadata

필드

Completed: 응답의 요청 ID, 인코딩 ID, serviceResult입니다.

pdcomm_opcua_response_info metadata{}

orderly

필드

Stopped: drain이 CloseSession과 채널 닫기로 끝났습니다.

bool orderly = false

ownerThread

필드

Ready: 네이티브 클라이언트를 소유한 워커 스레드의 Win32 스레드 ID입니다.

DWORD ownerThread = 0

phase

필드

Failed: begin, response, abort, worker 중 하나입니다.

CString phase

reason

필드

Stopped: drained-and-closed, aborted, native-error, adapter-error 중 하나입니다.

CString reason

requestId

필드

Pending, Completed: 네이티브 요청 ID(requestHandle)입니다.

uint32_t requestId = 0

status

필드

Failed: 실패의 ::pdcomm_opcua_status 값입니다.

int32_t status = PDCOMM_OPCUA_OK

text

필드

Failed: 영문 상세 텍스트이며, 네이티브 호출 직후 워커 스레드에서 복사합니다.

CString text

value

필드

Completed: 소유된 응답이며, ServiceFault일 수 있습니다. 클라이언트와 워커보다 오래 유지되며, 마지막 참조가 사라질 때까지 네이티브 핸들을 보유합니다.

std::shared_ptr<const response> value