diff options
author | João Valverde <j@v6e.pt> | 2021-09-28 00:37:18 +0100 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-10-05 05:40:16 +0000 |
commit | 6898210ded332dc58514f3a714a67a51ada7229f (patch) | |
tree | 6942f4559df16a60d8fb042d09778fdd78acf5fb /doc/README.developer | |
parent | f51510f40183fdd4e6d45f1e44b92abb875a80d5 (diff) |
docs: Add section about architecture to README.developer
Diffstat (limited to 'doc/README.developer')
-rw-r--r-- | doc/README.developer | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/doc/README.developer b/doc/README.developer index 270e7713d4..043be091d5 100644 --- a/doc/README.developer +++ b/doc/README.developer @@ -755,7 +755,26 @@ to avoid warnings at all. The compiler flags in the Makefiles are set to "treat warnings as errors", so your code won't even compile when warnings occur. -7. Miscellaneous notes +7. General observatons about architecture + +One day we might conceivably wish to load dissectors on demand and do other +more sophisticated kinds of unit test. Plus other scenarios not immediately +obvious. For this to be possible it is important that the code in epan/ does +not depend on code in epan/dissectors, i.e it is possible to compile epan +without linking with dissector code. It helps to view dissectors as clients +of an API provided by epan (libwireshark being constituted by two distinct +components "epan" and "dissectors" bundled together, plus other bits and +pieces). The reverse is ǹot* true; epan should not be the client of an API +provided by dissectors. + +The main way this separation of concerns is achieved is by using runtime +registration interfaces in epan for dissectors, preferences, etc. that are +dynamic and do not have any dissector routines hard coded. Naturally this +is also an essential component of a plugin system (libwireshark has plugins +for taps, dissectors and an experimental interface to augment dissection with +new extension languages). + +8. Miscellaneous notes Each commit in your branch corresponds to a different VCSVERSION string automatically defined in the header 'vcs_version.h' during the build. If you happen |