nl:: Weave:: Hồ sơ:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Đối tượng người quản lý cho thư mục dịch vụ Weave.
Tóm tắt
Trình quản lý dịch vụ Weave là giao diện chính cho các ứng dụng đối với dịch vụ thư mục. Do đó, tính năng này sẽ ẩn các rắc rối vốn có khi tìm kiếm mục nhập thư mục được liên kết với một điểm cuối dịch vụ, thực hiện tra cứu DNS trên một hoặc nhiều tên máy chủ tìm thấy ở đó, cố gắng kết nối, bảo mật kết nối, v.v. Dịch vụ này cũng có thể quản lý bộ nhớ đệm thông tin trong thư mục dịch vụ.
Hàm dựng và hàm phá hủy |
|
---|---|
WeaveServiceManager(void)
Phương thức này sẽ khởi tạo phiên bản WeaveServiceManager.
|
|
~WeaveServiceManager(void)
Phương thức này phá hủy phiên bản WeaveServiceManager.
|
Loại công khai |
|
---|---|
@303{
|
enum |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectStartvoid(*
Lệnh gọi lại ứng dụng được thực hiện ngay trước khi thiết lập kết nối. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryStartvoid(*
Một lệnh gọi lại ứng dụng để đánh dấu thời gian của truy vấn thư mục dịch vụ đi. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryQueryWithTimeInfovoid(*
Lệnh gọi lại ứng dụng để phân phối giá trị thời gian từ phản hồi thư mục dịch vụ. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Một hàm truy cập cho thông tin trong thư mục gốc. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
Trình xử lý lỗi cho các điều kiện và trạng thái. |
Hàm công khai |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
Thiết lập hàm gọi lại ngay trước khi thiết lập kết nối.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Phương thức này sẽ hủy một yêu cầu kết nối.
|
clearCache(void)
|
void
Phương thức này xóa trạng thái và bộ nhớ đệm của trình quản lý nếu trạng thái nằm ở trạng thái của thiết bị đầu cuối kServiceMgrState_Solve, có nghĩa là đã nhận được phản hồi từ điểm cuối Thư mục dịch vụ.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
Các yêu cầu phương thức này kết nối với dịch vụ Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
Phương thức này sẽ chạy đối tượng trình quản lý dịch vụ.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
Phương thức này tra cứu thông tin trong thư mục của điểm cuối dịch vụ.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Phương thức này tra cứu thông tin trong thư mục của điểm cuối dịch vụ.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Phương thức này xử lý sự kiện đã kết nối đã báo cáo theo ngữ cảnh trao đổi Weave được liên kết.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Phương thức này xử lý sự kiện đã hoàn tất kết nối cho giao dịch truy vấn điểm cuối dịch vụ.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Phương thức này xử lý mọi thông báo phản hồi trong cuộc trò chuyện với dịch vụ thư mục.
|
onResponseTimeout(void)
|
void
Phương thức này xử lý sự kiện thời gian chờ không nhận được phản hồi từ dịch vụ thư mục.
|
relocate(WEAVE_ERROR aError)
|
void
Phương thức này di chuyển bộ nhớ đệm của thư mục dịch vụ.
|
relocate(void)
|
void
Phương thức này di chuyển bộ nhớ đệm của thư mục dịch vụ.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Thêm mục nhập ghi đè của tên máy chủ và mã nhận dạng cổng vào đầu danh sách thư mục.
|
reset(WEAVE_ERROR aError)
|
void
Phương thức này sẽ đặt lại trình quản lý dịch vụ về trạng thái ban đầu.
|
reset(void)
|
void
Phương thức này sẽ đặt lại trình quản lý dịch vụ về trạng thái ban đầu.
|
unresolve(WEAVE_ERROR aError)
|
void
Phương thức này làm vô hiệu hóa bộ nhớ đệm của thư mục dịch vụ.
|
unresolve(void)
|
void
Phương thức này làm vô hiệu hóa bộ nhớ đệm của thư mục dịch vụ.
|
Lớp |
|
---|---|
nl:: |
Lớp này đại diện cho một giao dịch do người quản lý dịch vụ quản lý. |
Loại công khai
@303
@303
Thuộc tính | |
---|---|
kWeave_DefaultSendTimeout
|
Số mili giây phải nhận được phản hồi cho truy vấn thư mục trước khi ngữ cảnh trao đổi hết thời gian chờ. |
Bắt đầu kết nối
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Lệnh gọi lại ứng dụng được thực hiện ngay trước khi thiết lập kết nối.
Lệnh gọi lại này có thể được các ứng dụng quan sát và tùy ý thay đổi các đối số được chuyển đến #WeaveConnection::Connect() trong quá trình thiết lập kết nối dịch vụ. Lệnh gọi lại này sẽ được gọi cho cả kết nối tới điểm cuối dịch vụ đích, cũng như kết nối tới điểm cuối Thư mục dịch vụ trong trường hợp phải tra cứu thư mục.
OnServiceEndpointQueryStart
void(* OnServiceEndpointQueryBegin)(void)
Một lệnh gọi lại ứng dụng để đánh dấu thời gian của truy vấn thư mục dịch vụ đi.
Quá trình này được gọi khi chúng tôi sắp gửi yêu cầu truy vấn điểm cuối dịch vụ. Giá trị này dùng để so khớp với OnServiceEndpointQueryEnd để bù đắp cho thời gian bay của tin nhắn.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Lệnh gọi lại ứng dụng để phân phối giá trị thời gian từ phản hồi thư mục dịch vụ.
Quá trình này được gọi khi chúng tôi nhận thông tin về thời gian từ phản hồi truy vấn thư mục dịch vụ Lưu ý cuộc gọi lại này sẽ chỉ xảy ra nếu phản hồi được phân tích cú pháp thành công và thông tin thời gian được bao gồm
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Một hàm truy cập cho thông tin trong thư mục gốc.
Bạn phải bắt đầu ở một nơi nào đó và với thư mục dịch vụ bạn phải bắt đầu bằng một thư mục cứng đầu chứa địa chỉ của máy chủ bạn có thể truy cập để nhận tất cả mọi thứ khác. Vì việc bố trí và nguồn gốc của thông tin này có thể khác nhau giữa các thiết bị, nên chúng tôi cung cấp một lệnh gọi lại cho người truy cập tại đây.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
WEAVE_NO_ERROR thành công, nếu không, quá trình tải sẽ bị hủy.
|
Trình xử lý trạng thái
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
Trình xử lý lỗi cho các điều kiện và trạng thái.
Người dùng của trình quản lý dịch vụ có thể được thông báo về những sự cố khi cố gắng thực hiện yêu cầu kết nối theo một trong hai cách. Dịch vụ này có thể nhận được một báo cáo trạng thái từ dịch vụ hoặc có thể nhận được một WEAVE_ERROR được tạo nội bộ. Trong cả hai trường hợp, thông tin sẽ đến qua lệnh gọi lại này.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
Hàm công khai
SetConnectStartCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Thiết lập hàm gọi lại ngay trước khi thiết lập kết nối.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
Trình quản lý dịch vụ Weave
WeaveServiceManager( void )
Phương thức này sẽ khởi tạo phiên bản WeaveServiceManager.
Lưu ý rằng bạn phải gọi init() để khởi tạo phiên bản này hơn nữa.
hủy
void cancel( uint64_t aServiceEp, void *aAppState )
Phương thức này sẽ hủy một yêu cầu kết nối.
Phương thức này sẽ hủy một yêu cầu kết nối dựa trên mã điểm cuối dịch vụ và đối tượng trạng thái ứng dụng được chuyển vào thời điểm yêu cầu dưới dạng giá trị nhận dạng. Nếu đây là yêu cầu kết nối gần đây nhất, thì phương thức này cũng sẽ xóa mọi trạng thái kết nối của thư mục dịch vụ đang chờ xử lý.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Xóa bộ nhớ đệm
void clearCache( void )
Phương thức này xóa trạng thái và bộ nhớ đệm của trình quản lý nếu trạng thái nằm ở trạng thái của thiết bị đầu cuối kServiceMgrState_Solve, có nghĩa là đã nhận được phản hồi từ điểm cuối Thư mục dịch vụ.
connect
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Các yêu cầu phương thức này kết nối với dịch vụ Weave.
Đây là cuộc gọi kết nối cấp cao nhất. Về cơ bản, dịch vụ này tạo ra một kết nối an toàn đến dịch vụ Weave, dựa trên một điểm cuối dịch vụ và một chế độ xác thực hoặc không hoạt động.
Phương thức này chỉ có thể được gọi sau khi gọi thành công tới init() và một yêu cầu kết nối có thể bị hủy bằng cancel().
Phương thức này có thể được gọi trước khi bộ nhớ đệm cục bộ được điền bằng dữ liệu từ dữ liệu được cấp phép mặc định hoặc chuyến đi đến dịch vụ thư mục. Trình quản lý dịch vụ sẽ chỉ đưa yêu cầu vào hàng đợi trước khi có thể xác định nội dung bộ nhớ đệm.
Thông tin chi tiết | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||||
Trả về |
WEAVE_NO_ERROR thành công; nếu không, mã lỗi tương ứng.
|
bắt đầu
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
Phương thức này sẽ chạy đối tượng trình quản lý dịch vụ.
Để sử dụng, bạn phải khởi tạo đối tượng trình quản lý dịch vụ. Sau khi gọi thành công phương thức này, ứng dụng có thể bắt đầu gọi connect(), lookup() và các phương thức khác.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||||||
Trả về |
WEAVE_ERROR_INVALID_addr nếu một đối số hàm không hợp lệ; nếu không, WEAVE_NO_ERROR.
|
tìm kiếm
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
Phương thức này tra cứu thông tin trong thư mục của điểm cuối dịch vụ.
Nếu thư mục dịch vụ đã được phân giải, tức là nếu đã có một thao tác connect() thành công, thì phương thức này sẽ điền đối tượng HostPortList được cung cấp.
Lưu ý: HostPortList được liên kết với đối tượng WeaveServiceManager; đối tượng này vẫn hợp lệ cho đến khi bộ nhớ đệm thư mục dịch vụ bị xóa hoặc cho đến khi một tra cứu thư mục dịch vụ khác xảy ra.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
tìm kiếm
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Phương thức này tra cứu thông tin trong thư mục của điểm cuối dịch vụ.
Nếu thư mục dịch vụ đã được phân giải, tức là nếu đã có một thao tác connect() thành công, thì phương thức này sẽ trả về một mục nhập thư mục với giá trị nhận dạng điểm cuối dịch vụ.
Phương pháp này hiển thị thông tin chi tiết về cách triển khai nội bộ của thư mục dịch vụ, các cách triển khai nên sử dụng biến thể của phương thức này để tạo HostPortList.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
Đã kết nối
void onConnectionClosed( WEAVE_ERROR aError )
Phương thức này xử lý sự kiện đã kết nối đã báo cáo theo ngữ cảnh trao đổi Weave được liên kết.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Phương thức này xử lý sự kiện đã hoàn tất kết nối cho giao dịch truy vấn điểm cuối dịch vụ.
Có một số khả năng. Trước tiên, việc kết nối có thể không thành công, trong trường hợp đó, chúng tôi sẽ hoàn tất. Nếu không, kết nối thực sự đã hoàn tất và chúng tôi muốn làm gì để mở ngữ cảnh trao đổi và gửi truy vấn thư mục.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
onResponse Nhận
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Phương thức này xử lý mọi thông báo phản hồi trong cuộc trò chuyện với dịch vụ thư mục.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
onResponseHết
void onResponseTimeout( void )
Phương thức này xử lý sự kiện thời gian chờ không nhận được phản hồi từ dịch vụ thư mục.
định vị lại
void relocate( WEAVE_ERROR aError )
Phương thức này di chuyển bộ nhớ đệm của thư mục dịch vụ.
Khi điểm cuối dịch vụ trả về báo cáo trạng thái với mã trạng thái kStatus_Replacement, ứng dụng có thể gọi unmà() để xóa bộ nhớ đệm và hủy các yêu cầu kết nối. Phương thức này đơn giản hóa việc xử lý lỗi bằng cách gọi unCách() lần đầu tiên và reset() nếu vấn đề chưa được giải quyết.
Phiên bản này của phương thức có chức năng tương thích ngược – chụp lại và ghi lại lỗi, sau đó gọi relocation(void).
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
chuyển vị trí(trống)
định vị lại
void relocate( void )
Phương thức này di chuyển bộ nhớ đệm của thư mục dịch vụ.
Khi điểm cuối dịch vụ trả về báo cáo trạng thái với mã trạng thái kStatus_Replacement, ứng dụng có thể gọi unmà() để xóa bộ nhớ đệm và hủy các yêu cầu kết nối. Phương thức này đơn giản hóa việc xử lý lỗi bằng cách gọi unCách() lần đầu tiên và reset() nếu vấn đề chưa được giải quyết.
Xem thêm:chuyển vị trí(WEAVE_ERROR)
thay thế choBộ nhớ đệm
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Thêm mục nhập ghi đè của tên máy chủ và mã nhận dạng cổng vào đầu danh sách thư mục.
đặt lại
void reset( WEAVE_ERROR aError )
Phương thức này sẽ đặt lại trình quản lý dịch vụ về trạng thái ban đầu.
Phương thức này sẽ đặt lại tất cả trạng thái của trình quản lý dịch vụ, bao gồm trạng thái giao tiếp, trạng thái bộ nhớ đệm và trạng thái của bất kỳ yêu cầu kết nối nào đang chờ xử lý.
Phiên bản này của phương thức có chức năng tương thích ngược – chụp và ghi lại lỗi, sau đó gọi reset(empty) .
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
reset(null)
đặt lại
void reset( void )
Phương thức này sẽ đặt lại trình quản lý dịch vụ về trạng thái ban đầu.
Phương thức này sẽ đặt lại tất cả trạng thái của trình quản lý dịch vụ, bao gồm cả trạng thái giao tiếp, trạng thái bộ nhớ đệm và trạng thái của bất kỳ yêu cầu kết nối nào đang chờ xử lý.
Xem thêm:reset(WEAVE_ERROR)
chưa giải quyết
void unresolve( WEAVE_ERROR aError )
Phương thức này làm vô hiệu hóa bộ nhớ đệm của thư mục dịch vụ.
Phương pháp này đặt trạng thái bộ nhớ đệm của thư mục dịch vụ để khi có yêu cầu tiếp theo, trình quản lý dịch vụ sẽ đưa ra truy vấn thư mục dịch vụ.
Phiên bản này của phương thức để xác nhận khả năng tương thích ngược – sẽ nhận và ghi lại lỗi, sau đó gọi unCách(null) .
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
chưa giải quyết(trống)
chưa giải quyết
void unresolve( void )
Phương thức này làm vô hiệu hóa bộ nhớ đệm của thư mục dịch vụ.
Phương pháp này đặt trạng thái bộ nhớ đệm của thư mục dịch vụ để khi có yêu cầu tiếp theo, trình quản lý dịch vụ sẽ đưa ra truy vấn thư mục dịch vụ.
Xem thêm:chưa giải quyết(WEAVE_ERROR)
~WeaveServiceManager
~WeaveServiceManager( void )
Phương thức này phá hủy phiên bản WeaveServiceManager.