Lớp C++ Queue

Một phần của tài liệu TỔNG QUAN ĐÁNH GIÁ HIỆU NĂNG MẠNG (Trang 29 - 30)

Lớp Queue có nguồn gốc từ một lớp kết nối cơ bản. Nó cung cấp một lớp cơ bản sử dụng bởi các kiểu lớp hàng đợi riêng biệt, giống như việc gọi lại hàm thực thi việc blocking.

Dưới đây định nghĩa các ứng dụng trong queue.h: class Queue : public Connector { public:

virtual void enque(Packet*) = 0; virtual Packet* deque() = 0;

void recv(Packet*, Handler*); void resume(); int blocked(); void unblock(); void block(); protected: Queue();

int command(int argc, const char*const* argv);

int qlim_;/*số lượng các gói tin lớn nhất cho phép

int blocked_;

int unblock_on_resume_; /* có phá khoá q khi nhàn rỗi */

QueueHandler qh_;

};

Các hàm enque và deque là các lớp ảo, chỉ ra lớp Queue được dùng như một lớp cơ sở. Các hàng đợi riêng biệt có nguồn gốc từ Queue và thực thi hai hàm này như một điều cần thiết. Nhìn chung các hàng đợi riêng biệt không ghi đè lên hàm recv bởi vì nó đưa ra các hàm enque và deque riêng biệt.

Lớp Queue không chứa nhiều các trạng thái nội bộ. Thông thường những cái đó là các đối tượng kiểm tra đặc biệt. thành phần qlim_ được đặt ra để chỉ định một giới hạn lớn nhất chiếm giữ hàng đợi nhưng lại không chịu ảnh hưởng (không có hiệu lực ) bởi chính lớp Queue, nó được sử dụng bởi các lớp queue phụ riêng biệt nếu thấy cần giá trị này. Thành phần blocked_ là một giá trị logic chỉ định bất cứ khi nào hàng đợi có thể gởi các gói tin ngay tức khắc tới các dòng tải xuống lân cận của nó. Khi một hàng đợi bị khóa, nó có thể cho vào hàng đợi nhưng không gởi chúng.

Một phần của tài liệu TỔNG QUAN ĐÁNH GIÁ HIỆU NĂNG MẠNG (Trang 29 - 30)

Tải bản đầy đủ (PDF)

(75 trang)