- Các hàm ảo (VIRTUAL FUNCTIONS)
Các DK Class cung cấp các hàm ảo cần thiết cho các ứng dụng để phản ứng với các sự kiện giao thức Bluetooth.
Ví dụ khi một ứng dụng yêu cầu một liên kết RFCOMM và định nghĩa một lớp ứng dụng dẫn xuất từ lớp cơ sở CrfCommPort. Lớp dẫn xuất đó định nghĩa các hàm dẫn xuất thay thế cho các hàm ảo trong CrfCommPort.
Hàm OnDataReceived() đƣợc gọi để chuyển một gói dữ liệu đến ứng dụng.
Hàm OnEventReceived() đƣợc gọi khi một sự kiện đáng lƣu ý đƣợc phát hiện, chẳng hạn nhƣ việc kết nối hay hủy kết nối.
Vài hàm ảo là thuần ảo – tức là không có sự thực thi mặc định trong lớp cơ sở, vì vậy ứng dụng đó phải cung cấp một hàm dẫn xuất. Chẳng hạn nhƣ
CSppClient::OnClientStateChange() và CLapClient::OnStateChange().
Các hàm ảo mà không phải là thuần ảo có thực thi mặc định không làm gì trong lớp có sở DK cả. Các hàm này có thể sử dụng cho một ứng dụng nhƣng lại không dùng cho ứng dụng khác.
Các ứng dụng có thể lấy giá trị mặc định nếu hàm đó không có ích. Ví dụ nhƣ
CRfCommPort::OnModemSignalChanged() và CRfCommPort::OnFlowEnabled(). - Hàm hủy cho các DK Class
- Các hàm dẫn xuất chạy trên các thread riêng biệt
Các hàm dẫn xuất chạy trong một ngữ cảnh khác với ứng dụng. Các hoạt động đƣợc thực thi trong các hàm dẫn xuất phải đƣợc đảm bảo thread-safe cho ứng dụng đó.
- Mô tả và cách dùng CBtIf Class
Class này cung cấp một giao diện ngăn xếp cho việc inquiry thiết bị và discovery dịch vụ. Một đối tƣợng (object) của class này cần đƣợc thuyết minh trƣớc khi bất kỳ lớp DK nào khác đƣợc sử dụng (điển hình là lúc khởi động ứng dụng). Một đối tƣợng của lớp này không nên xóa cho đến khi ứng dụng đã hoàn thành tất cả các trao đổi với ngăn xếp (thƣờng là tại thời điểm tắt ứng dụng ).
Class này định nghĩa định nghĩa các hàm thuần ảo CBtIf::OnDeviceResponded() và
CBtIf::OnDiscoveryComplete(). Ứng dụng phải cung cấp một lớp dẫn xuất cho các
hàm đó. Nó cũng định nghĩa một hàm ảo CBtIf::OnInquiryComplete(), mà ứng dụng
có thể định nghĩa khi cần thiết.
Một tập các giá trị GUID chuẩn cho các lớp dịch vụ Bluetooth đƣợc cung cấp nhƣ là các thành phần dữ liệu của lớp này.