[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
  * 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/>

More information about the Xapian-tickets mailing list