Changeset 1074


Ignore:
Timestamp:
2000-04-06T23:11:40+12:00 (24 years ago)
Author:
cs025
Message:

Corba improvements; tidied client initialisation in corbaproto and also
added a number of changes to the main trunk which somehow had not made
it into the corba branch via update before its instantiation.

Also the dated use of the GSDL_GSDLHOME macro was removed, at the expense
of some particularly poor code in corbaserver where log file creation is
now nowhere near so elegant.

Location:
branches/corba/gsdl
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/corba/gsdl/lib/corbaiface.h

    r1068 r1074  
    130130  CORBA::Boolean isBeta;
    131131  CORBA::ULong buildDate;
     132  corbatext_tarray ccsCols;
    132133  corbatext_tarray languages;
    133134  CORBA::ULong numDocs;
     
    398399  corbaDocFreq_array docFreq;
    399400  corbaMetadataInfo_map metadata;
     401  corbatext_t classifierMetadataType;
     402  CORBA::Long classifierMetadataOffset;
    400403  corbaMetadataInfo_array metaparents;
    401404};
  • branches/corba/gsdl/lib/corbaiface.idl

    r1068 r1074  
    4949  boolean           isBeta;
    5050  unsigned long     buildDate;
     51  corbatext_tarray  ccsCols;        // Added 05/04/2000
    5152  corbatext_tarray  languages;
    5253  unsigned long     numDocs;
     
    172173  corbaDocFreq_array      docFreq;
    173174  corbaMetadataInfo_map   metadata;
     175  corbatext_t             classifierMetadataType;    // Added 05/04/2000
     176  long                    classifierMetadataOffset;  // Added 05/04/2000
    174177  corbaMetadataInfo_array metaparents;
    175178};
  • branches/corba/gsdl/lib/corbaiface.mpp

    r1068 r1074  
    284284  isBeta = ((corbaColInfoResponse&)_s).isBeta;
    285285  buildDate = ((corbaColInfoResponse&)_s).buildDate;
     286  ccsCols = ((corbaColInfoResponse&)_s).ccsCols;
    286287  languages = ((corbaColInfoResponse&)_s).languages;
    287288  numDocs = ((corbaColInfoResponse&)_s).numDocs;
     
    305306  isBeta = ((corbaColInfoResponse&)_s).isBeta;
    306307  buildDate = ((corbaColInfoResponse&)_s).buildDate;
     308  ccsCols = ((corbaColInfoResponse&)_s).ccsCols;
    307309  languages = ((corbaColInfoResponse&)_s).languages;
    308310  numDocs = ((corbaColInfoResponse&)_s).numDocs;
     
    351353    CORBA::_stc_boolean->demarshal( dc, &((_MICO_T*)v)->isBeta ) &&
    352354    CORBA::_stc_ulong->demarshal( dc, &((_MICO_T*)v)->buildDate ) &&
     355    _marshaller__seq_corbatext_t->demarshal( dc, &((_MICO_T*)v)->ccsCols ) &&
    353356    _marshaller__seq_corbatext_t->demarshal( dc, &((_MICO_T*)v)->languages ) &&
    354357    CORBA::_stc_ulong->demarshal( dc, &((_MICO_T*)v)->numDocs ) &&
     
    369372  CORBA::_stc_boolean->marshal( ec, &((_MICO_T*)v)->isBeta );
    370373  CORBA::_stc_ulong->marshal( ec, &((_MICO_T*)v)->buildDate );
     374  _marshaller__seq_corbatext_t->marshal( ec, &((_MICO_T*)v)->ccsCols );
    371375  _marshaller__seq_corbatext_t->marshal( ec, &((_MICO_T*)v)->languages );
    372376  CORBA::_stc_ulong->marshal( ec, &((_MICO_T*)v)->numDocs );
     
    11601164  docFreq = ((corbaResultDocInfo&)_s).docFreq;
    11611165  metadata = ((corbaResultDocInfo&)_s).metadata;
     1166  classifierMetadataType = ((corbaResultDocInfo&)_s).classifierMetadataType;
     1167  classifierMetadataOffset = ((corbaResultDocInfo&)_s).classifierMetadataOffset;
    11621168  metaparents = ((corbaResultDocInfo&)_s).metaparents;
    11631169}
     
    11771183  docFreq = ((corbaResultDocInfo&)_s).docFreq;
    11781184  metadata = ((corbaResultDocInfo&)_s).metadata;
     1185  classifierMetadataType = ((corbaResultDocInfo&)_s).classifierMetadataType;
     1186  classifierMetadataOffset = ((corbaResultDocInfo&)_s).classifierMetadataOffset;
    11791187  metaparents = ((corbaResultDocInfo&)_s).metaparents;
    11801188  return *this;
     
    12191227    CORBA::_stcseq_long->demarshal( dc, &((_MICO_T*)v)->docFreq ) &&
    12201228    _marshaller_corbaMetadataInfo_map->demarshal( dc, &((_MICO_T*)v)->metadata ) &&
     1229    _marshaller_corbatext_t->demarshal( dc, &((_MICO_T*)v)->classifierMetadataType ) &&
     1230    CORBA::_stc_long->demarshal( dc, &((_MICO_T*)v)->classifierMetadataOffset ) &&
    12211231    _marshaller__seq_corbaMetadataInfo->demarshal( dc, &((_MICO_T*)v)->metaparents ) &&
    12221232    dc.struct_end();
     
    12331243  CORBA::_stcseq_long->marshal( ec, &((_MICO_T*)v)->docFreq );
    12341244  _marshaller_corbaMetadataInfo_map->marshal( ec, &((_MICO_T*)v)->metadata );
     1245  _marshaller_corbatext_t->marshal( ec, &((_MICO_T*)v)->classifierMetadataType );
     1246  CORBA::_stc_long->marshal( ec, &((_MICO_T*)v)->classifierMetadataOffset );
    12351247  _marshaller__seq_corbaMetadataInfo->marshal( ec, &((_MICO_T*)v)->metaparents );
    12361248  ec.struct_end();
  • branches/corba/gsdl/src/colservr/Makefile.in

    r1067 r1074  
    4747RANLIB = @RANLIB@
    4848LDFLAGS = @LDFLAGS@
    49 LIBS = -lgdbm -lstdc++ -lm
     49LIBS = @LIBS@
    5050
    5151GSDLOS = @gsdlos@
  • branches/corba/gsdl/src/colservr/corbaServer.mpp

    r1068 r1074  
    1010// library headers
    1111#include "fileutil.h"
    12 #include "gsdlhome.h"
     12//#include "gsdlhome.h"
    1313
    1414// greenstone headers
     
    2525void corbaresponse_resultDocInfoToCorba(ResultDocInfo_tarray docinfo, corbaResultDocInfo_array &corbainfo);
    2626
    27 void corbaresponse_termInfoToCorba(TermInfo_tarray terminfo, corbaTermInfo_array &corbainfo)
    28 {
     27void corbaresponse_termInfoToCorba(TermInfo_tarray terminfo, corbaTermInfo_array &corbainfo) {
    2928  TermInfo_tarray::iterator here = terminfo.begin();
    3029  TermInfo_tarray::iterator end  = terminfo.end();
    3130  unsigned int i;
    32 
     31   
    3332  i = 0;
    3433
    35   while (here != end)
     34  while (here != end) 
    3635    {
    3736      corbainfo.length(i+1);
     
    6867  text_tarray collections;
    6968  recptproto *protocol;
     69  text_t      gsdlhome;
    7070public:
    71   corbaServer(recptproto *protocol)
    72   {
    73     cout << GSDL_GSDLHOME << endl;
    74     if (!read_dir (GSDL_GSDLHOME "/collect", collections)) exit (1);
     71  corbaServer(recptproto *protocol, text_t home)
     72  {
     73    text_t dirname;
     74    char * cdirname;
     75    this->gsdlhome = home;
     76    cout << gsdlhome.getcstr() << endl;
     77    dirname = filename_cat(gsdlhome, "/collect");
     78    cdirname = dirname.getcstr();
     79    if (!read_dir (cdirname, collections)) exit (1);
     80    delete cdirname;
     81
    7582    cout << "Constructing set list server" << endl;
    7683    this->protocol = protocol;
    7784  }
    7885
    79   CORBA::Boolean init()
    80     {
    81       ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     86  CORBA::Boolean init()
     87  {
     88      char *cfname;
     89      text_t fname;
     90      fname = filename_cat(gsdlhome, "/etc/corbaout.txt");
     91      cfname = fname.getcstr();
     92      ofstream    logout(cfname);
     93      delete cfname;
     94
    8295      int         reply;
    8396
     
    104117    bool    _has;
    105118    comerror_t err;
    106     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     119
     120    char *   cfname;
     121    text_t   fname;
     122    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     123    cfname = fname.getcstr();
     124    ofstream logout(cfname);
     125    delete   cfname;
    107126
    108127    cct = new corbaconv_text_t(corbaCollect);
     
    129148
    130149  CORBA::Boolean ping(const struct corbatext_t &corbaCollect, corbaComError &corbaError)
    131     {
    132       text_t collection;
    133       bool   success;
    134       comerror_t error;
    135       ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
    136 
    137 
    138       corbaconv_text_t::setCorbatext(collection,corbaCollect);
    139       protocol->ping(collection, success, error, logout);
    140 
    141       corbaError = (corbaComError) error;
    142       logout.close();
    143 
    144       return success;
    145     }
     150  {
     151    text_t collection;
     152    bool   success;
     153    comerror_t error;
     154
     155    char *   cfname;
     156    text_t   fname;
     157    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     158    cfname = fname.getcstr();
     159    ofstream logout(cfname);
     160    delete   cfname;
     161
     162    corbaconv_text_t::setCorbatext(collection,corbaCollect);
     163    protocol->ping(collection, success, error, logout);
     164
     165    corbaError = (corbaComError) error;
     166    logout.close();
     167
     168    return success;
     169  }
    146170
    147171  void filter(const struct corbatext_t &corbaCollect,
     
    155179    comerror_t       error = noError;
    156180    text_t           collection;
    157     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     181
     182    char *   cfname;
     183    text_t   fname;
     184    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     185    cfname = fname.getcstr();
     186    ofstream logout(cfname);
     187    delete   cfname;
    158188
    159189    // copy collection id
     
    191221    comerror_t       error;
    192222    text_t           collection;
    193     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     223
     224    char *   cfname;
     225    text_t   fname;
     226    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     227    cfname = fname.getcstr();
     228    ofstream logout(cfname);
     229    delete   cfname;
    194230
    195231    corbaconv_text_t::setCorbatext(collection,corbaCollect);
     
    200236    corbaResponse.buildDate = response.buildDate;
    201237    corbatext_arrayToCorbaArray(response.languages, &corbaResponse.languages);
     238    corbatext_arrayToCorbaArray(response.ccsCols, &corbaResponse.ccsCols);
    202239    corbaResponse.numDocs  = response.numDocs;
    203240    corbaResponse.numBytes  = response.numWords;
     
    222259    InfoFilterOptionsResponse_t response;
    223260    comerror_t error;
    224     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
    225261    unsigned int i;
     262
     263    char *   cfname;
     264    text_t   fname;
     265    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     266    cfname = fname.getcstr();
     267    ofstream logout(cfname);
     268    delete   cfname;
    226269
    227270    corbaconv_text_t::setCorbatext(collection,corbaCollect);
     
    265308    text_t collection;   
    266309    InfoFiltersResponse_t response;
    267     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     310
     311    char *   cfname;
     312    text_t   fname;
     313    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     314    cfname = fname.getcstr();
     315    ofstream logout(cfname);
     316    delete   cfname;
    268317
    269318    corbaconv_text_t::setCorbatext(collection,corbaCollect);
     
    283332    comerror_t         error = noError;
    284333    text_t             collection;
    285     ofstream           logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     334
     335    char *   cfname;
     336    text_t   fname;
     337    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     338    cfname = fname.getcstr();
     339    ofstream logout(cfname);
     340    delete   cfname;
    286341
    287342    // set up request
     
    309364    text_tarray collist;
    310365    comerror_t  err;
    311     ofstream    logout(GSDL_GSDLHOME "/etc/corbaout.txt");
     366
     367    char *   cfname;
     368    text_t   fname;
     369    fname  = filename_cat(gsdlhome, "/etc/corbaout.txt");
     370    cfname = fname.getcstr();
     371    ofstream logout(cfname);
     372    delete   cfname;
    312373
    313374    protocol->get_collection_list(collist, err, logout);
     
    353414  cout << "Initialised ORB and BOA" << endl;
    354415
    355   corbaServer* server = new corbaServer(&protocol);
     416  corbaServer* server = new corbaServer(&protocol, gsdlhome);
    356417  CORBA::String_var ref = orb->object_to_string( server );
    357418
     
    362423  out << ref << endl;
    363424  out.close ();
     425
     426  cout << "Corba string is " << ref << endl;
    364427
    365428  // indicate readiness and run
  • branches/corba/gsdl/src/colservr/queryfilter.cpp

    r990 r1074  
    2828/*
    2929   $Log$
     30   Revision 1.22.2.1  2000/04/06 11:11:37  cs025
     31   Corba improvements; tidied client initialisation in corbaproto and also
     32   added a number of changes to the main trunk which somehow had not made
     33   it into the corba branch via update before its instantiation.
     34
     35   Also the dated use of the GSDL_GSDLHOME macro was removed, at the expense
     36   of some particularly poor code in corbaserver where log file creation is
     37   now nowhere near so elegant.
     38
    3039   Revision 1.22  2000/02/29 01:35:56  sjboddie
    3140   tidied up endianness and fastcgi
     
    706715  vector<queryparamclass> queryfilterparams;
    707716  parse_query_params (request, queryfilterparams, startresults,
    708               endresults, phrasematch, logout); 
     717              endresults, phrasematch, logout);
    709718 
    710719  // do query
  • branches/corba/gsdl/src/recpt/Makefile.in

    r1067 r1074  
    4747RANLIB = @RANLIB@
    4848LDFLAGS = @LDFLAGS@
    49 LIBS = -lgdbm -lstdc++ -lm -lcrypt
     49LIBS = @LIBS@
    5050
    5151GSDLOS = @gsdlos@
     
    158158all: $(EXEC)
    159159
     160distclean:
     161    rm -f $(OBJECTS) $(EXEC) Makefile
     162
    160163clean:
    161164    rm -f $(OBJECTS) $(EXEC)
  • branches/corba/gsdl/src/recpt/corbaclient.mpp

    r1068 r1074  
    5959#include "htmlbrowserclass.h"
    6060
    61 #include "gsdlhome.h"
     61// #include "gsdlhome.h"
     62#include "recptconfig.h"
    6263
    6364int main () {
    6465  receptionist recpt;
    65   corbaproto nproto;
     66  corbaproto   nproto;
     67  text_t       gsdlhome;
     68
     69  site_cfg_read(gsdlhome);
    6670
    6771//  cout << "GRB 0" << endl;
     
    7882
    7983  mapinconvertclass gbinconvert;
    80   gbinconvert.setmapfile (GSDL_GSDLHOME, "gbku", 0x25a1);
     84  gbinconvert.setmapfile (gsdlhome, "gbku", 0x25a1);
    8185  mapoutconvertclass gboutconvert;
    82   gboutconvert.setmapfile (GSDL_GSDLHOME, "ugbk", 0xa1f5);
     86  gboutconvert.setmapfile (gsdlhome, "ugbk", 0xa1f5);
    8387  recpt.add_converter ("g", &gbinconvert, &gboutconvert);
    8488
     
    138142  recpt.add_browser (&ahtmlbrowserclass);
    139143
    140 //  cout << "GRB 4" << endl;
    141 
    142144  cgiwrapper (recpt, "");
    143145
  • branches/corba/gsdl/src/recpt/corbaproto.h

    r1068 r1074  
    3434
    3535class corbaproto : public recptproto {
    36 protected:
     36 private:
     37  corbaiface_var getCorbaClient();
     38 protected:
    3739  collectservermapclass cservers;
    3840  corbaiface_var        client;
     
    4042  CORBA::BOA_var        boa;
    4143  CORBA::Object_var     obj;
    42 public:
     44 public:
    4345  virtual ~corbaproto() {}
    4446  corbaproto();
  • branches/corba/gsdl/src/recpt/corbaproto.mpp

    r1068 r1074  
    22 *
    33 * corbaproto.cpp --
    4  * Copyright (C) 1999 The New Zealand Digital Library Project
     4 * Copyright (C) 2000 The New Zealand Digital Library Project
    55 *
    66 * A component of the Greenstone digital library software
     
    158158      fi ++;
    159159    }
     160
    160161      // copy the MetadataInfo map
    161162      MetadataInfo_tmap::iterator mhere = here->metadata.begin();
     
    191192      mi ++;
    192193    }
     194
     195      // Copy the classifier variables
     196      corbaconv_text_t::getCorbatext(here->classifier_metadata_type, corbainfo[i].classifierMetadataType);
     197      corbainfo[i].classifierMetadataOffset = here->classifier_metadata_offset;
    193198
    194199      // Get next Docinfo item
     
    262267      //      doc.metadata
    263268
     269      // convert metadata classifer information
     270      corbaconv_text_t::setCorbatext(doc.classifier_metadata_type,corbainfo[i].classifierMetadataType);
     271      doc.classifier_metadata_offset = corbainfo[i].classifierMetadataOffset;
     272
    264273      docinfo.push_back(doc);
    265274    }
     
    286295}
    287296
     297corbaiface_var corbaproto::getCorbaClient()
     298{
     299  char *dummyv[1] = {""};
     300  int   dummyc = 0;
     301  // CORBA variables
     302  static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
     303  static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
     304
     305  // Get ref from "naming service"
     306  ifstream in ("/tmp/account.objid");
     307  char ref[1000];
     308  in >> ref;
     309  in.close ();
     310
     311  // startup corba
     312  static CORBA::Object_var obj = orb->string_to_object (ref);
     313
     314  return corbaiface::_narrow( obj );
     315}
     316
    288317
    289318// this configure will configure each of the collection servers
     
    293322  // created
    294323
    295   //  cout << "Corbaproto::Configure" << endl;
    296 
    297   char *dummyv[1] = {""};
    298   int   dummyc = 0;
    299   // CORBA variables
    300   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    301   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    302 
    303   // Get ref from "naming service"
    304   ifstream in ("/tmp/account.objid");
    305   char ref[1000];
    306   in >> ref;
    307   in.close ();
    308 
    309   // startup corba
    310   static CORBA::Object_var obj = orb->string_to_object (ref);
    311 
    312   corbaiface_var lclient = corbaiface::_narrow( obj );
    313 
     324  // cout << "Corbaproto::Configure" << endl;
    314325  corbatext_t      corbaKey;
    315326  corbatext_tarray corbaCfgline;
    316327
     328  // get the corba client reference
     329  corbaiface_var lclient = this->getCorbaClient();
     330
     331  // convert all the requisite structures into their CORBA form
    317332  corbaconv_text_t::getCorbatext(key,corbaKey);
    318333  corbatext_arrayToCorbaArray(cfgline, &corbaCfgline);
    319334
     335  // execute the corba transaction
    320336  lclient->configure(corbaKey, corbaCfgline); 
    321337}
     
    323339// this init will configure and init each of the collection servers
    324340bool corbaproto::init (ostream &logout) {
    325   //  cout << "Corbaproto::Init" << endl;
    326 
    327   char *dummyv[1] = {""};
    328   int   dummyc = 0;
    329   // CORBA variables
    330   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    331   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    332 
    333   // Get ref from "naming service"
    334   ifstream in ("/tmp/account.objid");
    335   char ref[1000];
    336   in >> ref;
    337   in.close ();
    338 
    339   // startup corba
    340   static CORBA::Object_var obj = orb->string_to_object (ref);
    341 
    342   corbaiface_var lclient = corbaiface::_narrow( obj );
    343 
     341//  cout << "Corbaproto::Init" << endl;
     342
     343  // get the corba client reference
     344  corbaiface_var lclient = this->getCorbaClient();
     345
     346  // execute the corba transaction
    344347  return lclient->init();
    345348}
     
    353356                     ostream &/*logout*/) {
    354357
    355   //  cout << "Corbaproto::Collection list" << endl;
     358  cout << "Corbaproto::Collection list" << endl;
    356359
    357360  corbatext_tarray corba_collist;
    358   corbatext_t      collection;
    359361  text_tarray      tcollist;
    360362
    361   /*  collist.erase(collist.begin(),collist.end());
    362   err = noError;
    363 
    364   collectservermapclass::iterator here = cservers.begin();
    365   collectservermapclass::iterator end = cservers.end();
    366   while (here != end) {
    367     assert ((*here).second.c != NULL);
    368     if ((*here).second.c != NULL) {
    369       collist.push_back ((*here).second.c->get_collection_name());
    370     }
    371     here++;
    372   }
    373   */
    374   char *dummyv[1] = {""};
    375   int   dummyc = 0;
    376   // CORBA variables
    377   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    378   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    379 
    380   // Get ref from "naming service"
    381   ifstream in ("/tmp/account.objid");
    382   char ref[1000];
    383   in >> ref;
    384   in.close ();
    385 
    386   // startup corba
    387   static CORBA::Object_var obj = orb->string_to_object (ref);
    388 
    389   corbaiface_var lclient = corbaiface::_narrow( obj );
    390 
     363  // get the corba client reference
     364  corbaiface_var lclient = this->getCorbaClient();
     365
     366  // execute the corba transaction
    391367  lclient->collectionList(corba_collist);
    392368
     369  // convert the response back to normal form
    393370  corbatext_corbaArrayToArray(corba_collist, &tcollist);
    394371  collist = tcollist;
     
    399376void corbaproto::has_collection (const text_t &collection, bool &hascollection,
    400377                comerror_t &err, ostream &/*logout*/) {
    401   //  cout << "Corbaproto::Has collection" << endl;
    402 
    403   /*  hascollection = (cservers.getcollectserver(collection) != NULL);
    404   err = noError;
    405   return;*/
    406 
    407   char *dummyv[1] = {""};
    408   int   dummyc = 0;
    409   corbatext_t_var corbaCollectPtr;
     378  // cout << "Corbaproto::Has collection" << endl;
     379
    410380  corbatext_t     corbaCollection;
    411381  corbaComError corbaError;
    412382  CORBA::Boolean corbaHas;
    413383
    414   // CORBA variables
    415   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    416   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    417 
    418   // Get ref from "naming service"
    419   ifstream in ("/tmp/account.objid");
    420   char ref[1000];
    421   in >> ref;
    422   in.close ();
    423 
    424   // startup corba
    425   static CORBA::Object_var obj = orb->string_to_object (ref);
    426 
    427   corbaiface_var lclient = corbaiface::_narrow( obj );
    428 
    429   // corbaCollectPtr = &corbaCollection;
    430   //corbatext_corbatext(collection, corbaCollectPtr);
     384  // get the corba client reference
     385  corbaiface_var lclient = this->getCorbaClient();
     386
     387  // convert all the requisite structures into their CORBA form
    431388  corbaconv_text_t::getCorbatext(collection,corbaCollection);
    432389 
     390  // execute the corba transaction
    433391  lclient->hasCollection(corbaCollection, corbaHas, corbaError);
    434392
     393  // convert the response back to normal form
    435394  hascollection = (corbaHas != 0);
    436395  err = noError;
    437 
    438396}
    439397
     
    442400  //  cout << "Corbaproto::Ping" << endl;
    443401
    444   char *dummyv[1] = {""};
    445   int   dummyc = 0;
    446   // CORBA variables
    447   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    448   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    449 
    450   // Get ref from "naming service"
    451   ifstream in ("/tmp/account.objid");
    452   char ref[1000];
    453   in >> ref;
    454   in.close ();
    455 
    456   // startup corba
    457   static CORBA::Object_var obj = orb->string_to_object (ref);
    458 
    459   corbaiface_var lclient = corbaiface::_narrow( obj );
    460 
    461402  corbatext_t corbaCollect;
    462403  corbaComError corbaError;
    463404  bool success;
    464405
     406  // get the corba client reference
     407  corbaiface_var lclient = this->getCorbaClient();
     408
     409  // convert all the requisite structures into their CORBA form
    465410  corbaconv_text_t::getCorbatext(collection,corbaCollect);
     411
     412  // execute the corba transaction
    466413  success = lclient->ping(corbaCollect, corbaError);
    467414 
    468   wassuccess = success;
    469   /* 
    470   wassuccess = (cservers.getcollectserver(collection) != NULL);
    471   err = noError;
    472   */
     415  // convert the response back to normal form
     416  wassuccess = (success != 0);
    473417}
    474418
     
    478422  //  cout << "Corbaproto::Collectinfo" << endl;
    479423
    480   char *dummyv[1] = {""};
    481   int   dummyc = 0;
    482 
    483   // CORBA variables
    484   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    485   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    486 
    487   // Get ref from "naming service"
    488   ifstream in ("/tmp/account.objid");
    489   char ref[1000];
    490   in >> ref;
    491   in.close ();
    492 
    493   // startup corba
    494   static CORBA::Object_var obj = orb->string_to_object (ref);
    495 
    496   corbaiface_var lclient = corbaiface::_narrow( obj );
    497 
    498424  corbatext_t          corbaCollection;
    499425  corbaComError        corbaError;
    500426  corbaColInfoResponse corbaCollectInfo;
    501427
     428  // get the corba client reference
     429  corbaiface_var lclient = this->getCorbaClient();
     430
     431  // convert all the requisite structures into their CORBA form
    502432  corbaconv_text_t::getCorbatext(collection,corbaCollection);
     433
     434  // execute the corba transaction
    503435  lclient->getCollectInfo(corbaCollection, corbaCollectInfo, corbaError);
    504436
     437  // convert the response back to normal form
    505438  collectinfo.isPublic = corbaCollectInfo.isPublic;
    506439  collectinfo.isBeta   = corbaCollectInfo.isBeta;
    507440  collectinfo.buildDate = corbaCollectInfo.buildDate;
     441  corbatext_corbaArrayToArray(corbaCollectInfo.ccsCols, &collectinfo.ccsCols);
    508442  corbatext_corbaArrayToArray(corbaCollectInfo.languages, &collectinfo.languages);
    509443  collectinfo.numDocs   = corbaCollectInfo.numDocs;
     
    516450
    517451  err = (comerror_t) corbaError; 
    518   /* 
    519   collectserver *cserver = cservers.getcollectserver (collection);
    520   if (cserver != NULL) cserver->get_collectinfo (collectinfo, err, logout);
    521   else err = protocolError;
    522   */
    523452}
    524453
     
    529458  //  cout << "Corbaproto::Filterinfo" << endl;
    530459
    531   char *dummyv[1] = {""};
    532   int   dummyc = 0;
    533   // CORBA variables
    534   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    535   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    536 
    537   // Get ref from "naming service"
    538   ifstream in ("/tmp/account.objid");
    539   char ref[1000];
    540   in >> ref;
    541   in.close ();
    542 
    543   // startup corba
    544   static CORBA::Object_var obj = orb->string_to_object (ref);
    545 
    546   corbaiface_var lclient = corbaiface::_narrow( obj );
    547 
    548460  corbatext_t corbaCollection;
    549461  corbatext_tset corbaResponse;
    550462  corbaComError corbaError;
    551463 
     464  // get the corba client reference
     465  corbaiface_var lclient = this->getCorbaClient();
     466
     467  // convert all the requisite structures into their CORBA form
    552468  corbaconv_text_t::getCorbatext(collection,corbaCollection);
    553469
     470  // execute the corba transaction
    554471  lclient->getFilterInfo(corbaCollection, corbaResponse, corbaError);
    555472
     473  // convert the response back to normal form
    556474  corbatext_corbaArrayToSet(corbaResponse, &response.filterNames);
    557475
    558476  err = (comerror_t) corbaError;
    559 
    560   /*
    561   collectserver *cserver = cservers.getcollectserver (collection);
    562   if (cserver != NULL) cserver->get_filterinfo (response, err, logout);
    563   else err = protocolError;
    564   */
    565477}
    566478
     
    570482                   comerror_t &err, ostream &logout) {
    571483  //  cout << "Corbaproto::Filteroptions" << endl;
    572 
    573   char *dummyv[1] = {""};
    574   int   dummyc = 0;
    575   // CORBA variables
    576   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    577   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    578 
    579   // Get ref from "naming service"
    580   ifstream in ("/tmp/account.objid");
    581   char ref[1000];
    582   in >> ref;
    583   in.close ();
    584 
    585   // startup corba
    586   static CORBA::Object_var obj = orb->string_to_object (ref);
    587 
    588   corbaiface_var lclient = corbaiface::_narrow( obj );
    589484
    590485  corbatext_t corbaCollection;
     
    596491  FilterOption_t *option;
    597492
     493  // get the corba client reference
     494  corbaiface_var lclient = this->getCorbaClient();
     495
     496  // convert all the requisite structures into their CORBA form
    598497  corbaconv_text_t::getCorbatext(collection,corbaCollection);
    599498  corbaconv_text_t::getCorbatext(request.filterName,filterName);
    600499
     500  // execute the corba transaction
    601501  lclient->getFilterOptions(corbaCollection, filterName, corbaResponse, corbaError);
    602502
     503  // convert the response back to normal form
    603504  for (i = 0; i < corbaResponse.names.length(); i ++)
    604505    {
     
    616517
    617518  err =  (comerror_t) corbaError;
    618   /*
    619   collectserver *cserver = cservers.getcollectserver (collection);
    620   if (cserver != NULL) cserver->get_filteroptions (request, response, err, logout);
    621   else err = protocolError;
    622   */
    623519}
    624520
     
    631527  corbaFilterRequest corbaRequest;
    632528  corbaFilterResponse corbaResponse;
    633 
    634   char *dummyv[1] = {""};
    635   int   dummyc = 0;
    636   corbatext_t_var corbaCollectPtr;
    637529  corbatext_t     corbaCollection;
    638530  corbaComError corbaError;
    639531
    640   // CORBA variables
    641   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    642   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    643 
    644   // Get ref from "naming service"
    645   ifstream in ("/tmp/account.objid");
    646   char ref[1000];
    647   in >> ref;
    648   in.close ();
    649 
    650   // startup corba
    651   static CORBA::Object_var obj = orb->string_to_object (ref);
    652 
    653   corbaiface_var lclient = corbaiface::_narrow( obj );
    654 
    655   corbaconv_text_t::fillUsString(collection,&corbaCollection.text);
    656 
    657   corbaconv_text_t::fillUsString(request.filterName,&corbaRequest.filter.text);
     532  // get the corba client reference
     533  corbaiface_var lclient = this->getCorbaClient();
     534
     535  // convert all the requisite structures into their CORBA form
     536  corbaconv_text_t::getCorbatext(collection,corbaCollection);
     537  corbaconv_text_t::getCorbatext(request.filterName,corbaRequest.filter);
    658538  corbatext_optionValueArrayToCorba(request.filterOptions, corbaRequest.filterOptions);
    659539  corbatext_arrayToCorbaArray(request.docSet, &corbaRequest.docSet);
     
    667547  corbaresponse_resultDocInfoToCorba(response.docInfo, corbaResponse.docInfo);
    668548
     549  // execute the corba transaction
    669550  lclient->filter (corbaCollection, corbaRequest, corbaResponse, corbaError);
    670551
     552  // convert the response back to normal form
    671553  response.numDocs = corbaResponse.numDocs;
    672554  response.isApprox = corbaResponse.isApprox;
     
    674556
    675557  err = (comerror_t) corbaError;
    676   /*
    677   collectserver *cserver = cservers.getcollectserver (collection);
    678   if (cserver != NULL) cserver->filter (request, response, err, logout);
    679   else err = protocolError;
    680   */
    681558  //  cout << "Corbaproto::Filter" << endl;
    682559
     
    689566  //  cout << "Corbaproto::Get Document" << endl;
    690567
    691   /*  collectserver *cserver = cservers.getcollectserver (collection);
    692   if (cserver != NULL) cserver->get_document (request, response, err, logout);
    693   else err = protocolError;
    694   */
    695 
    696   char *dummyv[1] = {""};
    697   int   dummyc = 0;
    698 
    699   // CORBA variables
    700   static CORBA::ORB_var orb = CORBA::ORB_init( dummyc , dummyv, "mico-local-orb" );
    701   static CORBA::BOA_var boa = orb->BOA_init( dummyc , dummyv, "mico-local-boa" );
    702 
    703   // Get ref from "naming service"
    704   ifstream in ("/tmp/account.objid");
    705   char ref[1000];
    706   in >> ref;
    707   in.close ();
    708 
    709   // startup corba
    710   static CORBA::Object_var obj = orb->string_to_object (ref);
    711 
    712   corbaiface_var lclient = corbaiface::_narrow( obj );
    713 
    714568  corbatext_t      corbaCollect;
    715569  corbaDocRequest  corbaRequest;
     
    717571  corbaComError    corbaError;
    718572
     573  // get the corba client reference
     574  corbaiface_var lclient = this->getCorbaClient();
     575
     576  // convert all the requisite structures into their CORBA form
    719577  corbaconv_text_t::getCorbatext(collection,corbaCollect);
    720578  corbaconv_text_t::getCorbatext(request.OID,corbaRequest.OID);
     
    722580  corbaconv_text_t::getCorbatext(request.docFormat,corbaRequest.docFormat);
    723581
     582  // execute the corba transaction
    724583  lclient->getDocument(corbaCollect, corbaRequest, corbaResponse, corbaError);
     584
     585  // convert the response back to normal form
    725586  corbaconv_text_t::setCorbatext(response.doc,corbaResponse.doc);
    726587
    727588  err = (comerror_t) corbaError;
    728589}
     590
  • branches/corba/gsdl/src/recpt/recptconfig.cpp

    r1067 r1074  
    2828/*
    2929   $Log$
     30   Revision 1.6.2.2  2000/04/06 11:11:40  cs025
     31   Corba improvements; tidied client initialisation in corbaproto and also
     32   added a number of changes to the main trunk which somehow had not made
     33   it into the corba branch via update before its instantiation.
     34
     35   Also the dated use of the GSDL_GSDLHOME macro was removed, at the expense
     36   of some particularly poor code in corbaserver where log file creation is
     37   now nowhere near so elegant.
     38
    3039   Revision 1.6.2.1  2000/04/04 15:02:38  cs025
    3140   Corba first commit
     
    134143    }
    135144    confin.close ();
    136 
    137     cout << "GRB: " << maxrequests << endl;
    138145
    139146    return true;
Note: See TracChangeset for help on using the changeset viewer.