Changeset 1327

Show
Ignore:
Timestamp:
02.08.2000 14:05:36 (19 years ago)
Author:
kjm18
Message:

incorporated support for mgpp collections. searchclass and queryfilter type (mg/mgpp)
for a collection are determined on basis of buildtype field in build.cfg.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/librarymain.cpp

    r1285 r1327  
    3030#include "filter.h" 
    3131#include "browsefilter.h" 
    32 #include "queryfilter.h" 
     32#include "mgqueryfilter.h" 
     33#include "mgppqueryfilter.h" 
    3334#include "infodbclass.h" 
     35#include "mggdbmsource.h" 
    3436#include "mgsearch.h" 
    35 #include "mggdbmsource.h" 
     37#include "mgppsearch.h" 
    3638#include "fileutil.h" 
    3739#include <assert.h> 
     
    6264  receptionist recpt; 
    6365  nullproto nproto; 
     66 
    6467  text_tarray collections; 
    6568 
     
    6972  text_t collectdir = filename_cat (gsdlhome, "collect"); 
    7073  read_dir (collectdir, collections); 
    71  
     74   
    7275  text_tarray::const_iterator thiscol = collections.begin(); 
    7376  text_tarray::const_iterator endcol = collections.end(); 
     
    7679     
    7780    // ignore the modelcol 
    78     if (*thiscol == "modelcol") {thiscol ++; continue;} 
    79      
     81 
     82    if (*thiscol == "modelcol") { 
     83      thiscol ++; 
     84      continue; 
     85    } 
     86     
     87    // read config file to see if built with mg or mgpp 
     88    text_t buildtype = "mg"; // mg is default 
     89    text_tarray cfgline; 
     90    text_t key; 
     91    text_t filename = filename_cat(collectdir, *thiscol, "index/build.cfg"); 
     92    ifstream confin(filename.getcstr()); 
     93 
     94    if (confin) { 
     95      while (read_cfg_line(confin, cfgline) >= 0) { 
     96    if (cfgline.size() ==2 ) { 
     97      key = cfgline[0]; 
     98      cfgline.erase(cfgline.begin()); 
     99      if (key =="buildtype") { 
     100        buildtype = cfgline[0]; 
     101        break; 
     102      } 
     103    } 
     104      } 
     105    } 
     106     
     107    confin.close(); 
     108 
    80109    // this memory is created but never destroyed 
    81110    // we're also not doing any error checking to make sure we didn't 
     
    83112    collectserver *cserver = new collectserver(); 
    84113    gdbmclass *gdbmhandler = new gdbmclass(); 
    85     mgsearchclass *mgsearch = new mgsearchclass(); 
    86      
     114 
    87115    // add a null filter 
    88116    filterclass *filter = new filterclass (); 
     
    92120    browsefilterclass *browsefilter = new browsefilterclass(); 
    93121    browsefilter->set_gdbmptr (gdbmhandler); 
    94     cserver->add_filter (browsefilter); 
    95      
    96     // add a query filter 
    97     queryfilterclass *queryfilter = new queryfilterclass(); 
    98     queryfilter->set_gdbmptr (gdbmhandler); 
    99     queryfilter->set_mgsearchptr (mgsearch); 
    100     cserver->add_filter (queryfilter); 
    101      
    102     // add a mg and gdbm source 
    103     mggdbmsourceclass *mggdbmsource = new mggdbmsourceclass (); 
    104     mggdbmsource->set_gdbmptr (gdbmhandler); 
    105     mggdbmsource->set_mgsearchptr (mgsearch); 
    106     cserver->add_source (mggdbmsource); 
     122    cserver->add_filter (browsefilter);   
     123  
     124    if (buildtype == "mg") { 
     125       mgsearchclass *mgsearch = new mgsearchclass(); 
     126  
     127       // add a query filter 
     128       mgqueryfilterclass *queryfilter = new mgqueryfilterclass(); 
     129       queryfilter->set_gdbmptr (gdbmhandler); 
     130       queryfilter->set_mgsearchptr (mgsearch); 
     131       cserver->add_filter (queryfilter); 
     132        
     133       // add a mg and gdbm source 
     134       mggdbmsourceclass *mggdbmsource = new mggdbmsourceclass (); 
     135       mggdbmsource->set_gdbmptr (gdbmhandler); 
     136       mggdbmsource->set_mgsearchptr (mgsearch); 
     137       cserver->add_source (mggdbmsource); 
     138    
     139    } 
     140    else if (buildtype == "mgpp") { 
     141       
     142      mgppsearchclass *mgsearch = new mgppsearchclass(); 
     143 
     144      // add a query filter 
     145      mgppqueryfilterclass *queryfilter = new mgppqueryfilterclass(); 
     146      queryfilter->set_gdbmptr (gdbmhandler); 
     147      queryfilter->set_mgsearchptr (mgsearch); 
     148      cserver->add_filter (queryfilter); 
     149       
     150      // add a mg and gdbm source 
     151      mggdbmsourceclass *mggdbmsource = new mggdbmsourceclass (); 
     152      mggdbmsource->set_gdbmptr (gdbmhandler); 
     153      mggdbmsource->set_mgsearchptr (mgsearch); 
     154      cserver->add_source (mggdbmsource); 
     155    
     156    } 
    107157     
    108158    // inform collection server and everything it contains about its