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