[Xapian-tickets] [Xapian] #63: Improve visibility annotations for the library
Xapian
nobody at xapian.org
Sun Nov 8 05:37:40 GMT 2015
#63: Improve visibility annotations for the library
-------------------------+------------------------------
Reporter: olly | Owner: olly
Type: enhancement | Status: assigned
Priority: low | Milestone: 1.3.5
Component: Library API | Version: SVN trunk
Severity: minor | Resolution:
Keywords: | Blocked By:
Blocking: | Operating System: Linux
-------------------------+------------------------------
Comment (by olly):
Looking at where `XAPIAN_VISIBILITY_DEFAULT` is used outside of
`include/xapian/' in xapian-core:
* api/replication.h: Replication was originally an external API, but we
weren't entirely happy with it. Perhaps whatever that was ought to be
sorted out and these made external API features. `DatabaseMaster` and
`DatabaseReplica` need to be visible for `xapian-replicate` and `xapian-
replicate-server`. `ReplicationInfo` is entirely defined within the
header, so probably doesn't need to be marked with
`XAPIAN_VISIBILITY_DEFAULT`.
* backends/chert/: `ChertCursor` and `ChertTable` used by `xapian-
inspect`. The `xapian-inspect` tool is really more of a development aid
than a user tool, so perhaps it shouldn't be installed, just built in-tree
and statically link the bits of the backend it needs.
* common/stringutils.h: Tables for C locale versions of `isalpha()`, etc,
`tolower()` and `toupper()`. Perhaps these functions should be available
in the API.
* net/: `RemoteServer`, `RemoteTcpServer`: Used by `xapian-progsrv` and
`xapian-tcpsrv`. Perhaps ought to be available via the API to allow other
forms of remote server.
* net/: `ReplicateTcpClient`, `ReplicateTcpServer`: Used by `xapian-
replicate` and `xapian-replicate-server`. It seems silly we need these as
well as the (originally public) API above - I guess it's for the TCP
support code.
* net/serialise.h: `serialise_error()` and `unserialise_error()` - used
in testcases in `tests/internaltest.cc`. Perhaps could be moved to
`tests/unittest.cc` to avoid needing these outside the library.
* net/tcpserver.h: `TcpServer`, referenced in `bin/xapian-tcpsrv.cc` as a
hook for setting a `Registry` (for adding custom weighting schemes, etc)
but this is actually the wrong class!
--
Ticket URL: <http://trac.xapian.org/ticket/63#comment:21>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list