|
xapian-core
2.0.0
|
Registry for user subclasses. More...
#include <registry.h>
Collaboration diagram for Xapian::Registry:Classes | |
| class | Internal |
Public Member Functions | |
| Registry (const Registry &other) | |
| Copy constructor. More... | |
| Registry & | operator= (const Registry &other) |
| Assignment operator. More... | |
| Registry (Registry &&other) | |
| Move constructor. More... | |
| Registry & | operator= (Registry &&other) |
| Move assignment operator. More... | |
| Registry () | |
| Default constructor. More... | |
| ~Registry () | |
| void | register_weighting_scheme (const Xapian::Weight &wt) |
| Register a weighting scheme. More... | |
| const Xapian::Weight * | get_weighting_scheme (std::string_view name) const |
| Get the weighting scheme given a name. More... | |
| void | register_posting_source (const Xapian::PostingSource &source) |
| Register a user-defined posting source class. More... | |
| const Xapian::PostingSource * | get_posting_source (std::string_view name) const |
| Get a posting source given a name. More... | |
| void | register_match_spy (const Xapian::MatchSpy &spy) |
| Register a user-defined match spy class. More... | |
| const Xapian::MatchSpy * | get_match_spy (std::string_view name) const |
| Get a match spy given a name. More... | |
| void | register_lat_long_metric (const Xapian::LatLongMetric &metric) |
| Register a user-defined lat-long metric class. More... | |
| const Xapian::LatLongMetric * | get_lat_long_metric (std::string_view name) const |
| Get a lat-long metric given a name. More... | |
| void | register_key_maker (Xapian::KeyMaker *keymaker) |
| Register a user-defined KeyMaker subclass. More... | |
| const Xapian::KeyMaker * | get_key_maker (std::string_view name) const |
| Get a KeyMaker given a name. More... | |
Private Attributes | |
| Xapian::Internal::intrusive_ptr_nonnull< Internal > | internal |
Registry for user subclasses.
This class provides a way for the remote server to look up user subclasses when unserialising.
Definition at line 47 of file registry.h.
| Xapian::Registry::Registry | ( | const Registry & | other | ) |
Copy constructor.
The internals are reference counted, so copying is cheap.
| other | The object to copy. |
Definition at line 274 of file registry.cc.
References LOGCALL_CTOR.
|
default |
Move constructor.
| other | The object to move. |
| Xapian::Registry::Registry | ( | ) |
Default constructor.
The registry will contain all standard subclasses of user-subclassable classes.
Definition at line 293 of file registry.cc.
References LOGCALL_CTOR.
| Xapian::Registry::~Registry | ( | ) |
Definition at line 299 of file registry.cc.
References LOGCALL_DTOR.
| const Xapian::KeyMaker * Xapian::Registry::get_key_maker | ( | std::string_view | name | ) | const |
Get a KeyMaker given a name.
| name | The name of the KeyMaker to find. |
Definition at line 373 of file registry.cc.
References internal, Xapian::Registry::Internal::key_makers, LOGCALL, lookup_object(), and RETURN.
Referenced by RemoteServer::msg_query().
| const Xapian::LatLongMetric * Xapian::Registry::get_lat_long_metric | ( | std::string_view | name | ) | const |
Get a lat-long metric given a name.
The returned metric is owned by the registry object.
Returns NULL if the metric could not be found.
Definition at line 359 of file registry.cc.
References internal, Xapian::Registry::Internal::lat_long_metrics, LOGCALL, lookup_object(), and RETURN.
Referenced by DEFINE_TESTCASE(), and Xapian::LatLongDistancePostingSource::unserialise_with_registry().
| const Xapian::MatchSpy * Xapian::Registry::get_match_spy | ( | std::string_view | name | ) | const |
Get a match spy given a name.
| name | The name of the match spy to find. |
Definition at line 345 of file registry.cc.
References internal, LOGCALL, lookup_object(), Xapian::Registry::Internal::matchspies, and RETURN.
Referenced by DEFINE_TESTCASE(), and RemoteServer::msg_query().
| const Xapian::PostingSource * Xapian::Registry::get_posting_source | ( | std::string_view | name | ) | const |
Get a posting source given a name.
| name | The name of the posting source to find. |
Definition at line 331 of file registry.cc.
References internal, LOGCALL, lookup_object(), Xapian::Registry::Internal::postingsources, and RETURN.
Referenced by DEFINE_TESTCASE(), and Xapian::Query::Internal::unserialise().
| const Xapian::Weight * Xapian::Registry::get_weighting_scheme | ( | std::string_view | name | ) | const |
Get the weighting scheme given a name.
| name | The name of the weighting scheme to find. |
Definition at line 317 of file registry.cc.
References internal, LOGCALL, lookup_object(), RETURN, and Xapian::Registry::Internal::wtschemes.
Referenced by Xapian::Weight::create(), DEFINE_TESTCASE(), and RemoteServer::msg_query().
Assignment operator.
The internals are reference counted, so assignment is cheap.
| other | The object to copy. |
Definition at line 281 of file registry.cc.
Move assignment operator.
| other | The object to move. |
| void Xapian::Registry::register_key_maker | ( | Xapian::KeyMaker * | keymaker | ) |
Register a user-defined KeyMaker subclass.
| keymaker | The KeyMaker subclass to register. The clean up of this object is handled via Xapian's optional reference counting. The simplest way to do so is to allocate it with new and call release() on it before passing it to this method to tell Xapian to manage its lifetime. The alternative approach is for the caller to ensure the KeyMaker object remains valid for the lifetime of the Registry object. |
Definition at line 366 of file registry.cc.
References internal, Xapian::Registry::Internal::key_makers, LOGCALL_VOID, Xapian::KeyMaker::name(), and register_object().
| void Xapian::Registry::register_lat_long_metric | ( | const Xapian::LatLongMetric & | metric | ) |
Register a user-defined lat-long metric class.
Definition at line 352 of file registry.cc.
References internal, Xapian::Registry::Internal::lat_long_metrics, LOGCALL_VOID, Xapian::LatLongMetric::name(), and register_object().
| void Xapian::Registry::register_match_spy | ( | const Xapian::MatchSpy & | spy | ) |
Register a user-defined match spy class.
| spy | The match spy to register. |
Definition at line 338 of file registry.cc.
References internal, LOGCALL_VOID, Xapian::Registry::Internal::matchspies, Xapian::MatchSpy::name(), and register_object().
Referenced by DEFINE_TESTCASE().
| void Xapian::Registry::register_posting_source | ( | const Xapian::PostingSource & | source | ) |
Register a user-defined posting source class.
| source | The posting source to register. |
Definition at line 324 of file registry.cc.
References internal, LOGCALL_VOID, Xapian::PostingSource::name(), Xapian::Registry::Internal::postingsources, and register_object().
Referenced by DEFINE_TESTCASE().
| void Xapian::Registry::register_weighting_scheme | ( | const Xapian::Weight & | wt | ) |
Register a weighting scheme.
| wt | The weighting scheme to register. |
Definition at line 310 of file registry.cc.
References internal, LOGCALL_VOID, Xapian::Weight::name(), register_object(), and Xapian::Registry::Internal::wtschemes.
Referenced by DEFINE_TESTCASE().
|
private |
Reference counted internals.
Definition at line 54 of file registry.h.
Referenced by get_key_maker(), get_lat_long_metric(), get_match_spy(), get_posting_source(), get_weighting_scheme(), operator=(), register_key_maker(), register_lat_long_metric(), register_match_spy(), register_posting_source(), and register_weighting_scheme().