BIND 10 #2980: Implement Hooks Framework (part 2) - library loading and unloading
BIND 10 Development
do-not-reply at isc.org
Tue Jun 25 14:05:56 UTC 2013
#2980: Implement Hooks Framework (part 2) - library loading and unloading
-------------------------------------+-------------------------------------
Reporter: stephen | Owner:
Type: enhancement | UnAssigned
Priority: medium | Status:
Component: Unclassified | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-DHCP-20130703
Sub-Project: DHCP | Resolution:
Estimated Difficulty: 0 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by stephen):
* owner: stephen => UnAssigned
* status: accepted => reviewing
Comment:
Ready to review. This is a bit larger than anticipated (and may look a bit
daunting), so I suggest the following be done first:
* The first commit on this branch,
7ef14b47d3bd773155e4b6d9c5a739b0213e8f28, is purely concerned with moving
files to the hooks directory. Minor changes (such as fixing up include
file references) were done here.
* An overview of the hooks framework for BIND 10 developers who wish to
use hooks in a BIND 10 component is in
hooks/hooks_component_developer.dox. I suggest that you run doxygen and
read the formatted output.
For the rest of the code in hooks, the following review order is
suggested, as each item uses the functions of previous ones:
* First review the differences in server_hooks.{cc,h}. These are a
follow-on from the previous hooks ticket (#2974) and involve making the
!ServerHooks object a singleton.
* callout_handle.* contain only minor changes. These allow a callout to
get the name of the hook from which it is being called, and store a
pointer to a library collection object for lifetime purposes (described in
the .dox file).
* The largest change to callout_manager.h is an expansion of the
documentation describing how it treats callouts and the valid values of
library index. The .cc file has fewer changes.
* Look at library_manager.*, library_manager_collection.* and
hooks_manager.* in that order. The first handles the loading and unloading
of a user library, the second handles the fact that there can be multiple
libraries, and the last collects all the disparate hooks framework objects
in one place and provides an easy interface for BIND 10 component
developers.
* The changes to library_handle.* are minor and are related to providing a
way for the server to register its own callouts (as desribed in the dox
file).
* hooks_log.*/hooks_messages.mes are standard logging and message files.
In the test directories:
* The *library.cc files are each compiled into a separate shared library.
These contain relatively simple code and are loaded and unloaded during
the unit tests.
* common_test_class.h provides common test functionality for a number of
test files.
The remaining files should be reasonably well documented.
--
Ticket URL: <http://bind10.isc.org/ticket/2980#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list