]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commit
From: Sebastian Harl sh tokkee.org
authorTobias Oetiker <tobi@oetiker.ch>
Sun, 8 Jun 2008 15:55:09 +0000 (15:55 +0000)
committerTobias Oetiker <tobi@oetiker.ch>
Sun, 8 Jun 2008 15:55:09 +0000 (15:55 +0000)
commitb8c8cf9faaabadca6dec27ac4d7c718cfa2b5ce4
treec00e4cede888cfc660dee6892f9b9714486bca48
parent0f7b61175aa83d26558c9c813281039b51875d56
From: Sebastian Harl sh tokkee.org
Date: Sun, 8 Jun 2008 15:01:05 +0200
Subject: [PATCH] Cleanup the symbols exported by librrd.

Up to know librrd exported a lot of symbols, most of which are to be
regarded as private symbols. This somewhat pollutes the API as the symbols
could, in theory, be used by external software and, more importantly,
makes symbol based dependencies (as recently introduced in e.g. Debian)
somewhat harder to implement.

This patch does a somewhat large-scale cleanup of the exported symbols:

 * Introduced a librrd.sym file which contains all symbols that are to be
   exported. This file is then passed to libtool using the -export-symbols
   option which tells the linker to export the given symbols only (note:
   according to the libtool manual, this has no effect on some
   architectures - however, I assume that most architectures in use today
   do support it).

   librrd.sym contains all symbols originally defined in rrd.h sans
   LockRRD() (which has been moved to rrd_tool.h). The following functions
   have been added to rrd.h and the list of exported symbols (some of them
   have been renamed, see below):
   - rrd_info()
   - rrd_info_free()
   - rrd_info_print()
   - rrd_info_push()
   - rrd_lastupdate()
   - rrd_update_v()
   - rrd_strerror()

 * Prefixed all public functions and types with "rrd_" to avoid name
   clashes with other libraries. Also, while I was at it, I introduced
   typedefs for all custom types and prefixed the time names with "_t" to
   improve consistency:
   - enum info_type -> rrd_info_type_t
   - enum timetype -> rrd_timetype_t

   - union infoval -> rrd_infoval_t

   - struct info_t -> rrd_info_t
   - struct rrd_context -> rrd_context_t
   - struct rrd_time_value -> rrd_time_value_t

   - info_free() -> rrd_info_free()
   - info_free() -> rrd_info_free()
   - info_print() -> rrd_info_print()
   - info_push() -> rrd_info_push()
   - LockRRD() -> rrd_lock() (not public though)
   - parsetime() -> rrd_parsetime()
     (and: src/parsetime.c -> src/rrd_parsetime.c)
   - proc_start_end() -> rrd_proc_start_end()
   - set_to_DINF() -> rrd_set_to_DINF()
   - set_to_DNAN() -> rrd_set_to_DNAN()

 * Moved readfile() from rrd_open.c to rrd_cgi.c and declared it static.
   This function is used in rrd_cgi.c only.

 * rrd_lock() (f.k.a. LockRRD()) now accepts a rrd_file_t pointer instead
   of an integer to increase encapsulation.

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1405 a5681a0c-68f1-0310-ab6d-d61299d08faa
31 files changed:
bindings/perl-shared/RRDs.xs
bindings/python/rrdtoolmodule.c
bindings/ruby/main.c
bindings/tcl/tclrrd.c
doc/rrdthreads.pod
netware/Makefile
src/Makefile.am
src/librrd.sym [new file with mode: 0644]
src/rrd.h
src/rrd_cgi.c
src/rrd_create.c
src/rrd_error.c
src/rrd_fetch.c
src/rrd_graph.c
src/rrd_graph.h
src/rrd_graph_helper.c
src/rrd_info.c
src/rrd_nan_inf.c
src/rrd_not_thread_safe.c
src/rrd_open.c
src/rrd_parsetime.c [moved from src/parsetime.c with 98% similarity]
src/rrd_parsetime.h [moved from src/parsetime.h with 100% similarity]
src/rrd_resize.c
src/rrd_thread_safe.c
src/rrd_thread_safe_nt.c
src/rrd_tool.c
src/rrd_tool.h
src/rrd_update.c
src/rrd_xport.c
win32/rrd.dsp
win32/rrd.vcproj