Home
News
FAQ
Download Development
Contact
|
This section is intended to be a clearinghouse of
ideas for inclusion in the project. If you have a suggestion for a
cool new feature or capability, please don't hesitate to contact me.
- Filter module. This is a critical section of the
project, on which much of the design is based. I include it here because
its final interface hasn't been decided yet. A filter is a C++ object
which can take a Packet object and either block or modify the Packet in the
packet stream. Blocking filters are "const" filters (they do not modify
their packets).
The work is in how exactly to define the base Filter class and derived classes
(I currently have ConstFilter and ModFilter), what a group of filters would
look like, and how to execute the filter group. My initial thoughts
were to have either a stack or tree of Filter objects. If a filter
was a blocking filter and returned 'block' for a packet, the filters below
would be skipped.
- Dynamic module loader. This project is difficult
because dynamically loadable modules (e.g. DLLs and shared objects) are highly
platform-specific. Also, the modules would contain C++ code, which
is something of a bear to deal with when a function can be overloaded. The
benefit is the ability to replace portions of QtChat while the program is
running, on any platform. An update for the Yahoo YMSG protocol becomes
available? Download it and voila, the system deletes the old one and
uses the new one (probably after closing all chat sessions first). Less
integral modules could be added with less disruption of the running chat
session, of course; the protocol is key to everything.
|