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 시스템 레이어 사전 종료 후크입니다.
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
현재 실제 (상용) 시간을 마이크로초 유닉스 시간 형식으로 가져오기 위한 플랫폼별 함수입니다.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
현재 실제 (상용) 시간을 밀리초 유닉스 시간 형식으로 가져오기 위한 플랫폼별 함수입니다.
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 시스템 레이어 사전 종료 후크입니다.

함수

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 시스템 레이어 사전 종료 후크입니다.

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

세부정보
매개변수
[in,out] aLayer
종료 중인 Weave 시스템 Layer 인스턴스에 대한 참조입니다.
[in,out] aContext
레이어 초기화 메서드 ::Shutdown에 전달된 플랫폼별 컨텍스트 데이터입니다.
[in] anError
Weave 시스템 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 System 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 시스템 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 시스템 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 시간 값으로 표현된 로컬 플랫폼의 현재 실시간 실시간 개념을 반환해야 합니다. 기본 시계는 최소 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 시간 값으로 표현되는 로컬 플랫폼의 현재 실시간 실시간 개념을 반환해야 합니다.

예상되는 동작에 대한 자세한 내용은 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 시스템 레이어 사전 종료 후크입니다.

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

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