Ignore:
Timestamp:
2012-01-20T20:48:26+13:00 (12 years ago)
Author:
ak19
Message:

Second commit to do with Greenstone's support for RSS. Has been tested on Linux, and works if zextra.dm and base.dm are setup properly and if the rss-items.rdf file generated by the update to BasePlugout is moved to the index folder. Modified Dr Bainbridge's code to make the way that rssaction.cpp accesses the rss-items.rdf file independent of where the GS server is located, by adding a new method to get the rss-items.rdf file's contents to the recptproto protocol class and implementing it in nullproto. The method is also mirrored in corba/corbaproto, however compilation with corba fails in a part of the code that I've not modified.

Location:
main/trunk/greenstone2/runtime-src/src/corba
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/runtime-src/src/corba/corbaServer.mpp

    r15459 r24959  
    397397  }
    398398
     399  void getRssItems (const struct corbatext_t &corbaCollect,
     400          const struct corbatext_t &corbaGsdlHome,
     401          const struct corbatext_t &corbaRssItems,
     402          enum corbaComError &corbaError)
     403  {   
     404    text_t collection;
     405    text_t gsdlhome;
     406    text_t rss_items;
     407    comerror_t error = noError;
     408    ofstream logout;
     409
     410    this->openLogfile("/etc/corbaout.txt", logout);
     411
     412    corbaconv_text_t::setCorbatext(collection,corbaCollect);
     413    corbaconv_text_t::setCorbatext(gsdlhome,corbaGsdlHome);
     414
     415    // do actual operation
     416    protocol->get_rss_items(collection, gsdlhome, rss_items, error, logout);
     417    corbaconv_text_t::getCorbatext(rss_items,corbaRssItems);
     418
     419    // decode response
     420    corbaError = (corbaComError) error;
     421
     422    logout.close();
     423  }
     424
    399425  void collectionList(corbatext_tarray &corbalist, corbaComError &error)
    400426  {
  • main/trunk/greenstone2/runtime-src/src/corba/corbaproto.h

    r15471 r24959  
    8686              InfoFilterOptionsResponse_t &response,
    8787              comerror_t &err, ostream &logout);
     88
     89  // returns the contents of a collection's rss-items.rdf file (generated by BasePlugout)
     90  void get_rss_items (const text_t &collection,
     91              const text_t &gsdlhome,
     92              text_t &rss_items,
     93              comerror_t &err,
     94              ostream &logout);
     95
    8896  void filter (const text_t &collection,
    8997           FilterRequest_t &request,
  • main/trunk/greenstone2/runtime-src/src/corba/corbaproto.mpp

    r15471 r24959  
    673673}
    674674
     675// returns the contents of a collection's rss-items.rdf file (generated by BasePlugout)
     676void corbaproto::get_rss_items (const text_t &collection,
     677                const text_t &gsdlhome,
     678                text_t &rss_items,
     679                comerror_t &err,
     680                ostream &logout) {
     681
     682  corbatext_t     corbaCollection;
     683  corbatext_t     corbaGsdlHome;
     684  corbatext_t     corbaRssItems;
     685  corbaComError   corbaError = corbaNoError;
     686
     687  // convert all the requisite structures into their CORBA form
     688  corbaconv_text_t::getCorbatext(collection,corbaCollection);
     689  corbaconv_text_t::getCorbatext(collection,corbaGsdlHome);
     690  corbaconv_text_t::getCorbatext(collection,corbaRssItems);
     691
     692  // get the corba client reference
     693  // corbaiface_var lclient = this->getCorbaClient(); // ****
     694  corbaiface_var lclient = client;
     695
     696  // execute the corba transaction
     697  lclient->get_rss_items (corbaCollection, corbaGsdlHome, corbaRssItems, corbaError);
     698
     699  // convert the response back to normal form
     700  rss_items = corbaRssItems;
     701
     702  //  text_t rss_filename = filename_cat(gsdlhome,"collect",collection,"index","rss-items.rdf");
     703  //if (!read_file(rss_filename,rss_items)) { // read contents of file rss_filename into the string rss_items
     704  //  err = protocolError; // else an error occurred
     705  //}
     706}
    675707
    676708void corbaproto::filter (const text_t &collection,
Note: See TracChangeset for help on using the changeset viewer.