nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Nhờ vậy, bạn có thể truy cập vào các dịch vụ Internet, trong đó có bộ tính giờ, hoạt động phân giải Hệ thống tên miền (DNS), truyền tải mạng TCP, truyền tải mạng UDP và truyền tải mạng thô, cho một luồng đơn.

Tóm tắt

Đối với Cổng BSD/POSIX, thông báo trạng thái sẵn sàng của sự kiện được xử lý thông qua chỉ số mô tả tệp và phương thức triển khai cuộc thăm dò ý kiến / lựa chọn truyền thống trên việc điều chỉnh nền tảng.

Đối với LwIP, thông báo trạng thái sẵn sàng của sự kiện được xử lý thông qua các sự kiện / thông báo, cũng như các hook dành riêng cho nền tảng và hệ thống đối với sự kiện / hệ thống thông báo.

Hàm khởi tạo và phá huỷ

InetLayer(void)
Đây là hàm khởi tạo mặc định của InetLayer.

Loại công khai

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
Trạng thái hiện tại của đối tượng InetLayer.
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Các thuộc tính công khai

State
enum nl::Inet::InetLayer::@5
Trạng thái hiện tại của đối tượng InetLayer.

Thuộc tính tĩnh công khai

sInetEventHandlerDelegate

Hàm công khai

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Huỷ mọi truy vấn DNS chưa xử lý (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng phù hợp) có thể vẫn đang hoạt động.
DroppableEventDequeued(void)
void
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
Lấy giá trị nhận dạng giao diện cho địa chỉ IP đã chỉ định.
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
Lấy địa chỉ IPv6 cục bộ của đường liên kết cho một đường liên kết hoặc giao diện đã chỉ định.
GetPlatformData(void)
void *
Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng khách được chỉ định cho thực thể đó, nếu đã được thiết lập trước đó.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Xử lý I/O từ một lệnh gọi được chọn.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Đây là trình khởi tạo rõ ràng InetLayer.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Kiểm tra xem có tiền tố trùng khớp giữa địa chỉ IPv6 đã chỉ định và bất kỳ địa chỉ IPv6 nào được định cấu hình cục bộ hay không.
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Tạo một đối tượng RawEndPoint mới cho một giao thức và phiên bản IP cụ thể.
NewTCPEndPoint(TCPEndPoint **retEndPoint)
Tạo một đối tượng TCPEndPoint mới.
NewTunEndPoint(TunEndPoint **retEndPoint)
Tạo một đối tượng TunEndPoint mới.
NewUDPEndPoint(UDPEndPoint **retEndPoint)
Tạo một đối tượng UDPEndPoint mới.
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Chuẩn bị bộ chỉ số mô tả tệp để select() làm việc cùng.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.
SetPlatformData(void *aPlatformData)
void
Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.
Shutdown(void)
Đây là trình gỡ khởi tạo rõ ràng InetLayer và phải được gọi trước khi loại bỏ một thực thể InetLayer đã tạo thực thể.
SystemLayer(void) const

Hàm tĩnh công khai

HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
Weave::System::Error
IsDroppableEvent(Weave::System::EventType aType)
bool
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
void

Loại công khai

@5

 @5

Trạng thái hiện tại của đối tượng InetLayer.

Thuộc tính
kState_Initialized

Trạng thái khởi động.

kState_NotInitialized

Trạng thái chưa khởi tạo.

kState_ShutdownInProgress

Trạng thái đã kích hoạt tính năng Tắt.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Các thuộc tính công khai

Tiểu bang

enum nl::Inet::InetLayer::@5 State

Trạng thái hiện tại của đối tượng InetLayer.

[CHỈ ĐỌC] Trạng thái hiện tại.

Thuộc tính tĩnh công khai

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Hàm công khai

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Huỷ mọi truy vấn DNS chưa xử lý (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng phù hợp) có thể vẫn đang hoạt động.

Chi tiết
Tham số
[in] onComplete
Con trỏ trỏ đến hàm callback khi một yêu cầu DNS hoàn tất.
[in] appState
Con trỏ trỏ đến một đối tượng trạng thái ứng dụng sẽ được truyền đến hàm callback làm đối số.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

Lấy giá trị nhận dạng giao diện cho địa chỉ IP đã chỉ định.

Nếu không lấy được giá trị nhận dạng giao diện, thì giá trị nhận dạng đó sẽ được đặt thành INET_NULL_INTERFACEID.

Chi tiết
Tham số
[in] addr
Tham chiếu đến đối tượng IPAddress.
[out] intfId
Thông tin tham chiếu đến đối tượng InterfaceId.
Trả về
INET_NO_ERROR một cách vô điều kiện.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Lấy địa chỉ IPv6 cục bộ của đường liên kết cho một đường liên kết hoặc giao diện đã chỉ định.

Chi tiết
Tham số
[in] link
Giao diện mà bạn đang tìm kiếm địa chỉ IPv6 cục bộ cho đường liên kết.
[out] llAddr
Địa chỉ IPv6 cục bộ của đường liên kết.
Giá trị trả về
INET_ERROR_NOT_IMPLEMENTED
Nếu IPv6 không được hỗ trợ.
INET_ERROR_BAD_ARGS
Nếu địa chỉ cục bộ của đường liên kết là NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Nếu đường liên kết này chưa định cấu hình địa chỉ nào.
INET_NO_ERROR
Khi thành công.

GetPlatformData

void * GetPlatformData(
  void
)

Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng khách được chỉ định cho thực thể đó, nếu đã được thiết lập trước đó.

Chi tiết
Trả về
Dữ liệu nền tảng dành riêng cho ứng dụng, nếu đã được thiết lập từ trước; nếu không thì là NULL.

HandleSelectResult

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

Xử lý I/O từ một lệnh gọi được chọn.

Phương thức này đăng ký sự kiện I/O đang chờ xử lý trong từng điểm cuối đang hoạt động, sau đó gọi các hàm xử lý I/O tương ứng cho các điểm cuối đó.

Chi tiết
Tham số
[in] selectRes
Giá trị trả về của lệnh gọi chọn.
[in] readfds
Con trỏ đến tập hợp chỉ số mô tả tệp đã đọc.
[in] writefds
Con trỏ đến tập hợp chỉ số mô tả tệp ghi.
[in] exceptfds
Con trỏ đến tập hợp chỉ số mô tả tệp có lỗi.

InetLayer

 InetLayer(
  void
)

Đây là hàm khởi tạo mặc định của InetLayer.

Công cụ này thực hiện một số hoạt động khởi tạo thành phần dữ liệu cơ bản; tuy nhiên, vì InetLayer tuân theo một mẫu thiết kế rõ ràng cho trình khởi chạy, nên phương thức InetLayer::Init phải được gọi thành công trước khi sử dụng đối tượng.

Init

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Đây là trình khởi tạo rõ ràng InetLayer.

Hàm này phải được gọi và hoàn tất thành công trước khi có thể sử dụng InetLayer.

Phương thức gọi có thể cung cấp một đối số ngữ cảnh không bắt buộc. Đối số này sẽ được chuyển lại thông qua mọi hàm hook dành riêng cho nền tảng. Đối với các bản điều chỉnh dựa trên LwIP, đây thường sẽ là một con trỏ tới hàng đợi sự kiện liên kết với thực thể InetLayer.

Các nền tảng có thể chọn xác nhận INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS trong tiêu đề cấu hình dành riêng cho nền tảng và bật Platform::InetLayer::WillInit và Platform::InetLayer::DidInit kết nối để hiệu ứng các tuỳ chỉnh dành riêng cho nền tảng hoặc phần mở rộng dữ liệu cho InetLayer.

Chi tiết
Tham số
[in] aSystemLayer
Một thực thể bắt buộc của Lớp hệ thống Weave đã được khởi tạo thành công.
[in] aContext
Một đối số ngữ cảnh không bắt buộc sẽ được chuyển lại cho phương thức gọi thông qua mọi hàm hook dành riêng cho nền tảng.
Giá trị trả về
INET_ERROR_INCORRECT_STATE
Nếu InetLayer ở trạng thái không chính xác.
INET_ERROR_NO_MEMORY
Nếu InetLayer hết tài nguyên đối với yêu cầu này cho một bộ tính giờ mới.
other
Lỗi cụ thể theo nền tảng cho biết lý do không khởi động được.
INET_NO_ERROR
Khi thành công.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Kiểm tra xem có tiền tố trùng khớp giữa địa chỉ IPv6 đã chỉ định và bất kỳ địa chỉ IPv6 nào được định cấu hình cục bộ hay không.

Chi tiết
Tham số
[in] addr
Địa chỉ IPv6 để kiểm tra kết quả khớp với tiền tố.
Trả về
true nếu tìm thấy kết quả thành công, nếu không thì giá trị trả về sẽ là false.

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

Tạo một đối tượng RawEndPoint mới cho một giao thức và phiên bản IP cụ thể.

Chi tiết
Tham số
[in] ipVer
IPv4 hoặc IPv6.
[in] ipProto
Một giao thức trong nhóm IP (ví dụ: ICMPv4 hoặc ICMPv6).
[in,out] retEndPoint
Con trỏ trỏ tới một con trỏ của đối tượng RawEndPoint. Đây là tham số trả về sau khi hoàn tất quá trình tạo đối tượng. *retEndPoint là giá trị NULL nếu không tạo được.
Giá trị trả về
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer chưa được khởi chạy.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayerRawEndPoint đã đầy và bạn không thể tạo điểm cuối mới.
INET_NO_ERROR
Khi thành công.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Tạo một đối tượng TCPEndPoint mới.

Chi tiết
Tham số
[in,out] retEndPoint
Con trỏ trỏ tới một con trỏ của đối tượng TCPEndPoint. Đây là tham số trả về sau khi hoàn tất quá trình tạo đối tượng. *retEndPoint là giá trị NULL nếu không tạo được.
Giá trị trả về
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer chưa được khởi chạy.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayerTCPEndPoint đã đầy và bạn không thể tạo điểm cuối mới.
INET_NO_ERROR
Khi thành công.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Tạo một đối tượng TunEndPoint mới.

Chi tiết
Tham số
[in,out] retEndPoint
Con trỏ trỏ tới con trỏ của đối tượng TunEndPoint. Đây là tham số trả về sau khi hoàn tất quá trình tạo đối tượng. *retEndPoint là giá trị NULL nếu không tạo được.
Giá trị trả về
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer chưa được khởi chạy.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayerTunEndPoint đã đầy và bạn không thể tạo lớp mới.
INET_NO_ERROR
Khi thành công.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Tạo một đối tượng UDPEndPoint mới.

Chi tiết
Tham số
[in,out] retEndPoint
Con trỏ trỏ tới con trỏ của đối tượng UDPEndPoint. Đây là tham số trả về sau khi tạo xong đối tượng. *retEndPoint là giá trị NULL nếu không tạo được.
Giá trị trả về
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer chưa được khởi chạy.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayerUDPEndPoint đã đầy và bạn không thể tạo điểm cuối mới.
INET_NO_ERROR
Khi thành công.

PrepareSelect

void PrepareSelect(
  int & nfds,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds,
  struct timeval & sleepTime
)

Chuẩn bị bộ chỉ số mô tả tệp để select() làm việc cùng.

Chi tiết
Tham số
[out] nfds
Phạm vi của chỉ số mô tả tệp trong tập hợp chỉ số mô tả tệp.
[in] readfds
Con trỏ trỏ đến tập hợp chỉ số mô tả tệp có thể đọc được.
[in] writefds
Con trỏ trỏ đến tập hợp chỉ số mô tả tệp có thể ghi.
[in] exceptfds
Con trỏ đến tập hợp chỉ số mô tả tệp có lỗi.
[in] sleepTimeTV
Con trỏ trỏ đến một cấu trúc xác định khoảng thời gian vùng chọn sẽ ngủ

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.

Chi tiết
Tham số
[in] hostName
Con trỏ trỏ đến chuỗi C không kết thúc bằng NULL biểu thị tên máy chủ cần truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ lưu trữ.
[in] options
Một giá trị số nguyên kiểm soát cách thực hiện quá trình phân giải tên máy chủ lưu trữ.
                    Value should be one of the address family values from the
                    #DNSOptions enumeration:

                    #kDNSOption_AddrFamily_Any
                    #kDNSOption_AddrFamily_IPv4Only
                    #kDNSOption_AddrFamily_IPv6Only
                    #kDNSOption_AddrFamily_IPv4Preferred
                    #kDNSOption_AddrFamily_IPv6Preferred
[in] maxAddrs
Số lượng địa chỉ tối đa cần lưu trữ trong bảng DNS.
[in] addrArray
Con trỏ tới bảng DNS.
[in] onComplete
Con trỏ trỏ đến hàm callback khi một yêu cầu DNS hoàn tất.
[in] appState
Con trỏ trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi yêu cầu DNS hoàn tất.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm trình phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu không thể phân giải tên máy chủ yêu cầu thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về chỉ báo lỗi tạm thời; hãy thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu quá trình phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi mạng POSIX hoặc lỗi hệ điều hành do phương thức triển khai trình phân giải DNS cơ bản trả về.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.

Chi tiết
Tham số
[in] hostName
Con trỏ trỏ đến chuỗi C không kết thúc bằng NULL biểu thị tên máy chủ cần truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ lưu trữ.
[in] maxAddrs
Số lượng địa chỉ tối đa cần lưu trữ trong bảng DNS.
[in] addrArray
Con trỏ tới bảng DNS.
[in] onComplete
Con trỏ trỏ đến hàm callback khi một yêu cầu DNS hoàn tất.
[in] appState
Con trỏ trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi yêu cầu DNS hoàn tất.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm trình phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu không thể phân giải tên máy chủ yêu cầu thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về chỉ báo lỗi tạm thời; hãy thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu quá trình phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi mạng POSIX hoặc lỗi hệ điều hành do phương thức triển khai trình phân giải DNS cơ bản trả về.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Thực hiện phân giải địa chỉ IP của một tên máy chủ đã chỉ định.

Chi tiết
Tham số
[in] hostName
Con trỏ trỏ đến chuỗi C kết thúc bằng NULL biểu thị tên máy chủ cần truy vấn.
[in] maxAddrs
Số lượng địa chỉ tối đa cần lưu trữ trong bảng DNS.
[in] addrArray
Con trỏ tới bảng DNS.
[in] onComplete
Con trỏ trỏ đến hàm callback khi một yêu cầu DNS hoàn tất.
[in] appState
Con trỏ trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi yêu cầu DNS hoàn tất.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm trình phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu không thể phân giải tên máy chủ yêu cầu thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về chỉ báo lỗi tạm thời; hãy thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu quá trình phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi mạng POSIX hoặc lỗi hệ điều hành do phương thức triển khai trình phân giải DNS cơ bản trả về.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.

Chi tiết
Tham số
[in] aPlatformData
Dữ liệu nền tảng dành riêng cho khách hàng cần đặt.

Tắt

INET_ERROR Shutdown(
  void
)

Đây là trình gỡ khởi tạo rõ ràng InetLayer và phải được gọi trước khi loại bỏ một thực thể InetLayer đã tạo thực thể.

Các nền tảng có thể chọn xác nhận INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS trong tiêu đề cấu hình dành riêng cho nền tảng và bật các Platform::InetLayer::WillShutdown và Platform::InetLayer:::DidShutdown để dọn dẹp các phần tuỳ chỉnh dành riêng cho nền tảng hoặc các phần mở rộng dữ liệu đối với InetLayer.

Chi tiết
Trả về
INET_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do không tắt được.

SystemLayer

Weave::System::Layer * SystemLayer(
  void
) const 

Hàm tĩnh công khai

HandleInetLayerEvent

Weave::System::Error HandleInetLayerEvent(
  Weave::System::Object & aTarget,
  Weave::System::EventType aEventType,
  uintptr_t aArgument
)

IsDroppableEvent

bool IsDroppableEvent(
  Weave::System::EventType aType
)

UpdateSnapshot

void UpdateSnapshot(
  nl::Weave::System::Stats::Snapshot & aSnapshot
)