nl::Weave::System::Platform::Layer

요약

함수

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
이는 플랫폼별 Weave 시스템 레이어 초기화 후 후크입니다.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
이는 플랫폼별 Weave System 레이어 사전 종료 후크입니다.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.
GetClock_Monotonic(void)
uint64_t
마이크로초 단위의 단조 시스템 시간을 가져오기 위한 플랫폼별 함수입니다.
GetClock_MonotonicHiRes(void)
uint64_t
마이크로초 단위의 고해상도 단조 시스템 시간을 가져오기 위한 플랫폼별 함수입니다.
GetClock_MonotonicMS(void)
uint64_t
단조 시스템 시간을 밀리초 단위로 가져오기 위한 플랫폼별 함수입니다.
GetClock_RealTime(uint64_t & curTime)
Error
마이크로초 단위의 Unix 시간 형식으로 현재 실제 (상용) 시간을 가져오기 위한 플랫폼별 함수입니다.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
현재 실제 (상용) 시간을 밀리초 Unix 시간 형식으로 가져오기 위한 플랫폼별 함수입니다.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
이는 플랫폼별 이벤트 / 메시지 후크 후크입니다.
SetClock_RealTime(uint64_t newCurTime)
Error
현재 실제 (상용) 시간을 설정하기 위한 플랫폼별 함수.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
이는 플랫폼별 Weave 시스템 레이어 사전 초기화 후크입니다.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
이는 플랫폼별 Weave System 레이어 사전 종료 후크입니다.

함수

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

이는 플랫폼별 Weave 시스템 레이어 초기화 후 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

세부정보
매개변수
[in,out] aLayer
초기화 중인 Weave 시스템 Layer 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
[in] anError
Weave 시스템 Layer ::Init 메서드를 통해 반환되는 전체 상태입니다.

DidShutdown

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

이는 플랫폼별 Weave System 레이어 사전 종료 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

세부정보
매개변수
[in,out] aLayer
종료 중인 Weave 시스템 Layer 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Shutdown에 전달되는 플랫폼별 컨텍스트 데이터입니다.
[in] anError
Weave System Layer ::Shutdown 메서드를 통해 반환되는 전반적인 상태입니다.
반환
성공 시 WEAVE_SYSTEM_NO_ERROR를 실행하고 그렇지 않은 경우 종료 실패 이유를 나타내는 특정 오류입니다. 성공하지 못한 상태가 반환되면 종료가 취소됩니다.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

이 메서드는 지정된 이벤트를 처리하기 위해 전달하며 핸드오프할 이벤트의 유형과 인수를 언마셜링하여 실제 디스패치의 Weave 시스템 Layer::HandleEvent로 전달합니다.

세부정보
매개변수
[in,out] aLayer
이벤트 / 메시지가 전달되는 레이어 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
[in] anEvent
처리를 위해 전달할 플랫폼별 이벤트 객체입니다.
반환 값
#WEAVE_SYSTEM_ERROR_BAD_ARGS
#aLayer 또는 이벤트 타겟이 NULL인 경우
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
이벤트 유형을 인식할 수 없는 경우
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Weave System Layer 객체의 상태가 예기치 않은 경우
WEAVE_SYSTEM_NO_ERROR
성공 시

DispatchEvents

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

이는 이벤트 루프에 영향을 미쳐 이 인스턴스를 처리하는 큐를 대기하고 큐에서 이벤트를 가져온 후 처리를 위해 이를 전달합니다.

세부정보
매개변수
[in,out] aLayer
이벤트 / 메시지가 전달되는 레이어 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
반환 값
#WEAVE_SYSTEM_ERROR_BAD_ARGS
#aLayer 또는 #aContext가 NULL인 경우
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Weave System Layer 객체의 상태가 예기치 않은 경우
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
이벤트 유형을 인식할 수 없는 경우
WEAVE_SYSTEM_NO_ERROR
성공 시

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

마이크로초 단위의 단조 시스템 시간을 가져오기 위한 플랫폼별 함수입니다.

이 함수는 플랫폼에서 정의한 임의의 에포크 이후 경과된 시간(마이크로초)을 반환할 것으로 예상됩니다. 플랫폼 구현은 시스템 재부팅 사이에 계속해서 증가하는 (즉 래핑하지 않음) 값을 반환해야 합니다. 또한, 기본 시간 소스는 절전 모드 해제 시 다시 시작할 필요가 없는 시스템 절전 모드 중에 계속 틱해야 합니다.

이 함수에서 반환하는 시간의 에포크는 GetClock_MonotonicMS()를 포함한 다른 GetClock... 함수의 경우와 같을 필요가 없습니다.

이 함수는 스레딩을 사용하는 모든 플랫폼에서 스레드로부터 안전할 것으로 예상됩니다.

세부정보
반환
플랫폼에서 정의한 임의의 에포크 이후 경과된 시간(단위: 마이크로초)입니다.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

마이크로초 단위의 고해상도 단조 시스템 시간을 가져오기 위한 플랫폼별 함수입니다.

이 함수는 플랫폼에서 정의한 임의의 에포크 이후 경과된 시간(마이크로초)을 반환할 것으로 예상됩니다. GetClock_MonotonicHiRes()에서 반환된 값은 계속 증가해야 합니다 (래핑되지 않음). 하지만 시스템의 완전 절전 상태에서 기본 타이머가 계속 틱할 필요는 없습니다.

플랫폼은 점진적인 클록 조정(슬로우링)이 적용되지 않는 고해상도 타이머를 사용하여 GetClock_MonotonicHiRes()를 구현하는 것이 좋습니다. 이러한 타이머가 없는 플랫폼에서 GetClock_MonotonicHiRes()는 GetClock_Monotonic()과 동일한 값을 반환할 수 있습니다.

이 함수에서 반환되는 시간의 에포크는 다른 GetClock... 함수의 경우와 같을 필요가 없습니다.

이 함수는 스레딩을 사용하는 모든 플랫폼에서 스레드로부터 안전할 것으로 예상됩니다.

세부정보
반환
플랫폼에서 정의한 임의의 에포크 이후 경과된 시간(단위: 마이크로초)입니다.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

단조 시스템 시간을 밀리초 단위로 가져오기 위한 플랫폼별 함수입니다.

이 함수는 플랫폼에서 정의한 임의의 에포크 이후 경과된 시간(밀리초)을 반환할 것으로 예상됩니다. 플랫폼 구현은 시스템 재부팅 사이에 계속해서 증가하는 (즉 래핑하지 않음) 값을 반환해야 합니다. 또한, 기본 시간 소스는 절전 모드 해제 시 다시 시작할 필요가 없는 시스템 절전 모드 중에 계속 틱해야 합니다.

이 함수에서 반환된 시간의 에포크는 GetClock_Monotonic()을 포함한 다른 GetClock... 함수의 에포크와 동일할 필요가 없습니다.

이 함수는 스레딩을 사용하는 모든 플랫폼에서 스레드로부터 안전할 것으로 예상됩니다.

세부정보
반환
임의의 플랫폼에서 정의한 에포크 이후 경과된 시간(밀리초)입니다.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

마이크로초 단위의 Unix 시간 형식으로 현재 실제 (상용) 시간을 가져오기 위한 플랫폼별 함수입니다.

이 함수는 마이크로초 단위로 조정된 Unix 시간 값으로 표현되는 로컬 플랫폼의 현재 실시간 개념을 반환해야 합니다. 기본 시계는 최소 1초 이상의 속도 (값 1,000,000)로 틱해야 하지만 더 빠르게 틱할 수 있습니다.

실시간 추적이 가능한 플랫폼에서 GetClock_RealTime()은 시스템이 실시간과 동기화되지 않을 때마다 WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED 오류를 반환해야 합니다.

실시간 추적을 할 수 없는 플랫폼은 GetClock_RealTime() 함수를 구현해서는 안 됩니다. 이에 따라 실시간 액세스에 의존하는 기능의 링크 시간 장애가 강제로 발생합니다. 또는 이러한 플랫폼에서 WEAVE_SYSTEM_ERROR_NOT_SUPPORTED 오류를 반환하는 GetClock_RealTime()의 구현을 제공할 수도 있습니다.

이 함수는 스레딩을 사용하는 모든 플랫폼에서 스레드로부터 안전할 것으로 예상됩니다.

세부정보
매개변수
[out] curTime
마이크로초 단위로 조정된 Unix 시간으로 표현되는 현재 시간입니다.
반환 값
WEAVE_SYSTEM_NO_ERROR
메서드가 성공한 경우
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
플랫폼이 실시간으로 추적할 수 있지만 현재 동기화되지 않은 경우
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
플랫폼에서 실시간 추적을 할 수 없는 경우

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

현재 실제 (상용) 시간을 밀리초 Unix 시간 형식으로 가져오기 위한 플랫폼별 함수입니다.

이 함수는 로컬 플랫폼의 현재 실시간 개념(밀리초 단위로 조정된 Unix 시간 값으로 표현됨)을 반환해야 합니다.

예상되는 동작에 대한 자세한 내용은 GetClock_RealTime() 문서를 참조하세요.

세부정보
매개변수
[out] curTime
현재 시간으로, 밀리초 단위로 조정된 Unix 시간으로 표현됩니다.
반환 값
WEAVE_SYSTEM_NO_ERROR
메서드가 성공한 경우
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
플랫폼이 실시간으로 추적할 수 있지만 현재 동기화되지 않은 경우
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
플랫폼에서 실시간 추적을 할 수 없는 경우

PostEvent

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

이는 플랫폼별 이벤트 / 메시지 후크 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

제공된 인수를 사용하여 지정된 유형의 이벤트 / 메시지를 이 인스턴스의 플랫폼별 이벤트 / 메시지 큐에 게시합니다.

세부정보
매개변수
[in,out] aLayer
이벤트 / 메시지가 게시되고 있는 레이어 인스턴스를 가리키는 포인터입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
[in,out] aTarget
게시 요청을 실행하는 Weave 시스템 Layer 객체에 대한 포인터입니다.
[in] aType
게시할 이벤트의 유형입니다.
[in,out] anArg
게시할 이벤트와 연결된 인수입니다.
반환
성공 시 WEAVE_SYSTEM_NO_ERROR를 실행하고 그렇지 않은 경우 초기화 실패 이유를 나타내는 특정 오류입니다.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

현재 실제 (상용) 시간을 설정하기 위한 플랫폼별 함수.

Weave는 이 함수를 호출하여 로컬 플랫폼의 현재 실시간 개념을 설정합니다. 새로운 현재 시간은 마이크로초 단위의 Unix 시간 값으로 표현됩니다.

일단 설정되면 기본 플랫폼 시계가 최소 1초의 단위로 실시간을 추적해야 합니다.

실시간 추적을 지원하는 플랫폼에서 SetClock_RealTime() 함수는 호출하는 애플리케이션에 현재 시간을 설정할 권한이 없으면 WEAVE_SYSTEM_ERROR_ACCESS_DENIED 오류를 반환해야 합니다.

실시간 추적을 할 수 없거나 실시간 설정 기능을 제공하지 않는 플랫폼은 SetClock_RealTime() 함수를 구현해서는 안 됩니다. 따라서 실시간 설정에 의존하는 기능의 링크 타임 장애가 발생합니다. 또는 이러한 플랫폼에서 WEAVE_SYSTEM_ERROR_NOT_SUPPORTED 오류를 반환하는 SetClock_RealTime()의 구현을 제공할 수도 있습니다.

이 함수는 스레딩을 사용하는 모든 플랫폼에서 스레드로부터 안전할 것으로 예상됩니다.

세부정보
매개변수
[in] newCurTime
마이크로초 단위로 조정된 Unix 시간으로 표시되는 새 현재 시간입니다.
반환 값
WEAVE_SYSTEM_NO_ERROR
메서드가 성공한 경우
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
플랫폼에서 실시간 추적을 할 수 없는 경우
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
호출하는 애플리케이션에 현재 시간을 설정할 권한이 없는 경우

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

이는 플랫폼별 이벤트 / 메시지 전달 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

세부정보
매개변수
[in,out] aLayer
이벤트 / 메시지가 전달되는 레이어 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
[in] aMilliseconds
타이머에 설정할 밀리초 단위 시간입니다.
반환 값
WEAVE_SYSTEM_NO_ERROR
재정의하지 않는 한 항상 성공합니다.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

이는 플랫폼별 Weave 시스템 레이어 사전 초기화 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

세부정보
매개변수
[in,out] aLayer
초기화 중인 Weave 시스템 Layer 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Init에 전달되는 플랫폼별 컨텍스트 데이터입니다.
반환
성공 시 WEAVE_SYSTEM_NO_ERROR를 실행하고 그렇지 않은 경우 초기화 실패 이유를 나타내는 특정 오류입니다. 성공하지 못한 상태를 반환하면 초기화가 취소됩니다.

WillShutdown

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

이는 플랫폼별 Weave System 레이어 사전 종료 후크입니다.

이는 전처리기 정의 WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS를 어설션하여 재정의할 수 있습니다.

세부정보
매개변수
[in,out] aLayer
종료 중인 Weave 시스템 Layer 인스턴스를 가리키는 포인터입니다.
[in,out] aContext
레이어 초기화 메서드 ::Shutdown에 전달되는 플랫폼별 컨텍스트 데이터입니다.
반환
성공 시 WEAVE_SYSTEM_NO_ERROR를 실행하고 그렇지 않은 경우 종료 실패 이유를 나타내는 특정 오류입니다. 성공하지 못한 상태가 반환되면 종료가 취소됩니다.