1
// MeCab -- Yet Another Part-of-Speech and Morphological Analyzer
4
// Copyright(C) 2001-2006 Taku Kudo <taku@chasen.org>
5
// Copyright(C) 2004-2006 Nippon Telegraph and Telephone Corporation
6
#ifndef MECAB_CONNECTOR_H
7
#define MECAB_CONNECTOR_H
14
template <class T> class Mmap;
20
unsigned short lsize_;
21
unsigned short rsize_;
26
bool open(const Param ¶m);
30
const char *what() { return what_.str(); }
32
size_t left_size() const { return static_cast<size_t>(lsize_); }
33
size_t right_size() const { return static_cast<size_t>(rsize_); }
35
void set_left_size(size_t lsize) { lsize_ = lsize; }
36
void set_right_size(size_t rsize) { rsize_ = rsize; }
38
inline int cost(const Node *lNode, const Node *rNode) const {
39
return matrix_[ lNode->rcAttr + lsize_ * rNode->lcAttr ] + rNode->wcost;
42
// access to raw matrix
43
short *mutable_matrix() { return &matrix_[0]; }
44
const short *matrix() const { return &matrix_[0]; }
46
bool openText(const char *filename);
47
bool open(const char *filename, const char *mode = "r");
49
bool is_valid(size_t lid, size_t rid) const {
50
return (lid >= 0 && lid < rsize_ && rid >= 0 && rid < lsize_);
53
static bool compile(const char *, const char *);
56
cmmap_(0), matrix_(0), lsize_(0), rsize_(0) {}
58
virtual ~Connector() { this->close(); }