示例#1
0
	//////////////////////////////////////////////////////////////////////////
	// Main API functions
	InvertedDocument::InvertedDocument(bool index, const char* root, int splits , int buffer_size)
		:totalSplits(splits), rootDir(root), indexMode(index),rootDirPath(root), buffer(buffer_size),
		totalDocuments(0){
			corpusMaster = chunkRelink = corpusSentMaster = NULL;
			if(exists(rootDirPath)){ // Check directory exist
				if(indexMode){
					P_FATAL("The directory for indexing \"%s\" already exists! Cowardly refuse to overwrite it. Quitting",rootDir.c_str());
				}
				boost::filesystem::path rel = rootDirPath / "maxsplit";
				ifstream ifs(rel.string().c_str());
				if(!ifs){
					P_FATAL("The directory does not contain required maxsplit file. Quitting");
				}
				ifs >> totalSplits;
				ifs.close();
				if(totalSplits != splits){
					P_INFO("The directory shows the number of splits is %d instead of specified (or default) %d",totalSplits,splits);
				}
				rel = rootDirPath / "dict";
				ifstream idic(rel.string().c_str());
				C_FATAL(idic);
				qbuffer.LoadLexicon(idic);
				idic.close();
				chunkRelink = OpenFile("crl");
				C_FATAL(chunkRelink);
				qbuffer.LoadChunkRelink(chunkRelink);
				fclose(chunkRelink);
				chunkRelink = NULL;
				corpusMaster = OpenFile("corpus/master");
				C_FATAL(corpusMaster);
				qbuffer.LoadCorpusBounds(corpusMaster);
				fclose(corpusMaster);
			}else{
				if(!indexMode){
示例#2
0
文件: sapp.cpp 项目: irengine/people
truefalse CRunner::do_init()
{
  CCfg * l_obj = CCfgX::instance();
  g_term_sns = &m_term_SNs;

  if (!m_pg.login_to_db())
  {
    C_FATAL("fail to connect to database. quitting...\n");
    return C_BAD;
  }
  if (!m_pg.load_term_SNs(&m_term_SNs))
  {
    C_FATAL("fail to get term sn from db. quitting...\n");
    return C_BAD;
  }

  if (l_obj->handleout())
  {
    add_component(m_ping_container = new CPingContainer(this));
    add_component(m_d2m_container = new CD2MContainer(this));
  }
  if (l_obj->pre())
  {
    add_component(m_position_container = new CPositionContainer(this));
    add_component(m_balance_container = new CBalanceContainer(this));
    add_component(m_bs_req_container = new CBsReqContainer(this));
  }
  return C_OK;
}