| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- One of the goals of the Net-SNMP v5 development line, is to try and
- clarify the distinction between the "public" library API, and routines
- that are regarded as being more "internal" to the library.
- This doesn't mean that application writers are discouraged from
- making use of such internal routines. There is a strong feeling
- within the development team that as much as possible of the library
- should be made externally visible, to support writing as wide a
- range of applications as possible. To that end, most routines
- will be declared within an installed header file, rather than
- privately within the library code files themselves.
- The public/internal categorisation is rather concerned with issues
- of documentation, stability, and ease of programming. The public
- API routines have been selected as those covering the more common
- requirements (e.g. creating SNMP requests, sending them to other SNMP
- agents, and interpreting the results), together with certain supporting
- activities (e.g. run-time configuration).
- The intention is that these routines should be properly documented,
- and remain relatively stable. We will attempt to avoid changing the
- profile of these interfaces, and would normally provide some mechanism
- to retain backward compatability if need be.
- On the other hand, the internal API routines are regarded as just
- that - "internal" - so may legitimately be changed without providing
- any compatability mechanism. You are perfectly free to make use of
- these routines, but be aware that you do so "at your own risk".
- [This statement is in no way intended to challenge or amend the status
- of the disclaimers in the top-level 'COPYING' file, which remain
- unchanged as the legal basis for using this code]
- There are (currently) eight main "public API" header files, relating
- to various areas of SNMP programming, plus a combined "all-in-one"
- header file (net-snmp-includes.h).
- Currently these simply include the relevant library header files
- following the UCD-SNMP organisation. However, the intention is for
- future releases to declare the public API calls directly within these
- top-level header files, and use the 'library/*.h' files for the more
- internal calls. (i.e. those that are more likely to change over time).
- Until this process can be started, the best approximation to the
- "public API" list is probably those routines that are documented
- in manual pages. Apologies for any confusion, but hopefully this
- process will result in a clearer end result than at present.
- Applications writers are encouraged to start #including the new header
- files as soon as possible - either individually, or using the combined
- wrapper file. Hopefully, with only a handful of top-level files, it
- will be reasonably clear which file(s) might be appropriate for any
- particular programming requirement.
- One final disclaimer: The above description represents my own
- personal aims and understanding of the likely development of the
- library API. While I have every confidence in having the support of
- the other developers (or being able to persuade them of the benefits
- of this approach!), it may turn out that things actually take a different
- route. Anyone wishing to influence the organisation of the eventual
- library API is encouraged to subscribe to the net-snmp-coders mailing
- list, and contribute to the discussions there.
- Dave Shield
- February 2002
|