Sha256: 185a455fab2e9e06782ba96459ef493e01a6e5527199d5e8bf460a4a7f807b49
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 KB
Contents
#include <new> #include "marisa/agent.h" #include "marisa/grimoire/trie.h" namespace marisa { Agent::Agent() : query_(), key_(), state_() {} Agent::~Agent() {} void Agent::set_query(const char *str) { MARISA_THROW_IF(str == NULL, MARISA_NULL_ERROR); if (state_.get() != NULL) { state_->reset(); } query_.set_str(str); } void Agent::set_query(const char *ptr, std::size_t length) { MARISA_THROW_IF((ptr == NULL) && (length != 0), MARISA_NULL_ERROR); if (state_.get() != NULL) { state_->reset(); } query_.set_str(ptr, length); } void Agent::set_query(std::size_t key_id) { if (state_.get() != NULL) { state_->reset(); } query_.set_id(key_id); } void Agent::init_state() { MARISA_THROW_IF(state_.get() != NULL, MARISA_STATE_ERROR); state_.reset(new (std::nothrow) grimoire::State); MARISA_THROW_IF(state_.get() == NULL, MARISA_MEMORY_ERROR); } void Agent::clear() { Agent().swap(*this); } void Agent::swap(Agent &rhs) { query_.swap(rhs.query_); key_.swap(rhs.key_); state_.swap(rhs.state_); } } // namespace marisa
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
melisa-0.1.0 | ext/marisa/lib/marisa/agent.cc |