3. Lớp Simlator
4.5.2 Giao diện nút
Kết nối tới các giao diện bên trên của module định tuyến, một nút cung cấp một tập các giao diện:
Theo thứ tự các module đăng ký trong khi kiến tạo, lớp Nút giữ một danh sách các module như là một biết lớp. Giá trị mặc định của danh sách này gồm những module định tuyến cơ sở. lớp nút cung cấp 2 thủ tục dưới đây để điều khiển danh sách module:
Node::enable-module{[name]} Nếu module RtModule/[name] tồn tại thì thủ tục này đưa [name] vào trong danh sách module
Node::disable-module{[name]} Nếu module [name] trong danh sách, xóa nó khỏi danh sách đó.
Khi một nút được tạo ra, nó đi qua danh sách module của lớp Nút, tạo tất cả các module chứa trong danh sách và đăng ký những module này với nút đó.
Sau khi nút được tạo ra, chúng có thể sử dụng những thủ tục dưới đây để liệt kê những module đã đăng ký với nút đó, hoặc gọi đến xử lý module:
Node::list-modules{} trả về danh sách điều khiển của tất cả các module đã được đăng ký.
Node::get-module{[name]} trả về điều khiển của module đã đăng ký với tên module đã cho. Chú ý rằng tất cả các module định tuyến chỉ có một đăng ký đơn trong tất cả các nút.
Cho phép các module định tuyến đăng ký sự cập nhật tuyến chúng quan tâm, đối tượng nút cung cấp các thủ tục dưới đây:
Node::route-notify{module} thêm module vào danh sách thông báo cập nhật tuyến.
Node::unreg-route-notify{module} xóa module khỏi danh sách thông báo cập nhật tuyến.
Tương tự, thủ tục dưới đây móc vào sự tham gia của các tác tử truyền tải.
Node::port-notify{module} thêm module vào danh sách thông báo tham gia của tác tử
Node::unreg-port-notify{module} bỏ module ra khỏi danh sách thông báo sự tham gia của tác tử.
Nút cung cấp các thủ tục dưới đây để điều khiển bộ phân lớp địa chỉ và cổng: Node::insert-entry{module, clsfr, hook}
Chèn bộ phân lớp clsfr vào điểm mục của nút. Nó cũng được kết hợp với bộ phân lớp mới này với module để mà nếu bộ phân lớp này sau đó bị loại bỏ thì module cũng sẽ không được đăng ký nữa. Nếu hook được chỉ rõ như là một số, bộ phân lớp đã có sẽ chèn vào khe hook của bộ phân lớp mới. Theo cách này, có thể thiết lập một "dãy" các bộ phân lớp, xem hình 5.2 là một ví dụ. Chú ý: clsfr không cần phải là một bộ phân lớp. Trong vài trường hợp, có thể muốn đưa vào một tác tử, hoặc nhiều lớp dẫn xuất từ Đầu nối, tại điểm mục của một nút. Trong trường hợp như vậy, cung cấp một cách đơn giản target cho tham số hook.
- Node::install-entry{module, clsfr, hook}
khác với Node::insert-entry{module, clsfr, hook}là nó xóa bộ phân lớp đã có tại điểm mục của nút đó, bỏ đăng ký tất cả kết hợp module định tuyến, và cài đặt bộ phân lớp mới tại điểm này. Nếu hook được chuo, và bộ phân lớp cũ được kết nối đến một chuỗi bộ phân lớp, nó sẽ kết nối chuỗi này vào khe hook của bộ phân lớp mới.
- Node::install-demux{demux, port} đặt bộ phân lớp demux đã cho như là bộ giải ghép mặc định. Nếu port đã cho, nó cắm bộ giải ghép đã có này vào khe port của một bộ mới. Chú ý rằng trong trường hợp này hay trường hợp kia nó không xóa bộ giải ghép đã có.