Changeset 418 for trunk/gsdl/src/recpt


Ignore:
Timestamp:
1999-07-30T14:13:10+12:00 (25 years ago)
Author:
sjboddie
Message:

-added collectinfo argument to some functions
-made some function prototypes virtual

Location:
trunk/gsdl/src/recpt
Files:
2 edited

Legend:

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

    r388 r418  
    1212/*
    1313   $Log$
     14   Revision 1.20  1999/07/30 02:13:09  sjboddie
     15   -added collectinfo argument to some functions
     16   -made some function prototypes virtual
     17
    1418   Revision 1.19  1999/07/15 06:02:05  rjmcnab
    1519   Moved the setting of argsinfo into the constructor. Added the configuration
     
    264268      text_t filename = filename_cat (thecollectdir, "etc");
    265269      filename = filename_cat (filename, "collect.cfg");
     270
    266271      if (!file_exists(filename)) thecollectdir = configinfo.gsdlhome;
    267272    }
     
    507512  if (a != NULL) {
    508513    if (a->uses_display(args)) prepare_page (a, args, collectproto, (*outconverter), logout);
    509     if (!a->do_action (args, collectproto, disp, (*outconverter), contentout, logout))
     514    if (!a->do_action (args, collectinfo, collectproto, disp,
     515               (*outconverter), contentout, logout))
    510516      return false;
    511517
     
    643649}
    644650
    645 // prepare_page sets up page parameters, sets display macros
    646 // and opens the page ready for output
     651// prepare_page sets up page parameters, sets display macros,
     652// gets format information and opens the page ready for output
    647653void receptionist::prepare_page (action *a, cgiargsclass &args, recptproto *collectproto,
    648654                 outconvertclass &outconvert, ostream &logout) {
    649655  // set up page parameters
    650656  text_t pageparams;
     657  text_t &collection = args["c"];
    651658
    652659  bool first = true;
    653   if (!args["c"].empty()) {
    654     pageparams +=  "collection=" + args["c"]; first = false;}
     660  if (!collection.empty()) {
     661    pageparams +=  "collection=" + collection; first = false;}
    655662  if (args.getintarg("u") == 1)
    656663    if (first) {pageparams += "style=htmlonly"; first = false;}
     
    666673    else pageparams += ",language=" + args["l"];
    667674 
     675  // get collection information
     676  collectinfo.clear();
     677  if (!collection.empty()) {
     678    comerror_t err;
     679    collectproto->get_collectinfo (collection, collectinfo, err, logout);
     680    if (err != noError) collectinfo.clear();
     681  }
     682
    668683  // open the page
    669684  disp.openpage(pageparams, MACROPRECEDENCE);
     
    681696    assert ((*actionhere).second.a != NULL);
    682697    if ((*actionhere).second.a != NULL)
    683       (*actionhere).second.a->define_external_macros (disp, args, collectproto, logout);
     698      (*actionhere).second.a->define_external_macros (collectinfo, disp, args, collectproto, logout);
    684699    actionhere++;
    685700  }
    686701
    687 
    688702  // define internal macros for the current action
    689   a->define_internal_macros (disp, args, collectproto, logout);
     703  a->define_internal_macros (collectinfo, disp, args, collectproto, logout);
    690704}
    691705
  • trunk/gsdl/src/recpt/receptionist.h

    r388 r418  
    4848  displayclass disp;
    4949  convertinfoclass converters;
     50  ColInfoResponse_t collectinfo;
    5051 
    5152  // prepare_page sets up page parameters, sets display macros
    5253  // and opens the page ready for output
    53   void prepare_page (action *a, cgiargsclass &args, recptproto *collectproto,
    54              outconvertclass &outconvert, ostream &logout);
    55   void define_general_macros (cgiargsclass &args, outconvertclass &outconvert,
    56                   ostream &logout);
     54  virtual void prepare_page (action *a, cgiargsclass &args, recptproto *collectproto,
     55                 outconvertclass &outconvert, ostream &logout);
     56  virtual void define_general_macros (cgiargsclass &args, outconvertclass &outconvert,
     57                      ostream &logout);
    5758
    5859public:
     
    8687  // it contains. The configuration should take place after everything
    8788  // has been added but before the initialisation.
    88   void configure (const text_t &key, const text_tarray &cfgline);
    89   void configure (const text_t &key, const text_t &value);
     89  virtual void configure (const text_t &key, const text_tarray &cfgline);
     90  virtual void configure (const text_t &key, const text_t &value);
    9091  const recptconf &get_configinfo () {return configinfo;}
    9192  cgiargsinfoclass *get_cgiargsinfo_ptr () {return &argsinfo;}
     
    99100  // meaningless output), instead an error page should be
    100101  // produced by the calling code.
    101   bool init (ostream &logout);
     102  virtual bool init (ostream &logout);
    102103 
    103104  // There are two ways to produce a page. You can either call parse_cgi_args,
     
    110111  // This function should be called for each page request. It returns false
    111112  // if there was a major problem with the cgi arguments.
    112   bool parse_cgi_args (const text_t &argstr, cgiargsclass &args, ostream &logout);
     113  virtual bool parse_cgi_args (const text_t &argstr, cgiargsclass &args, ostream &logout);
    113114
    114115  // produce_cgi_page will call get_cgihead_info and
     
    116117  // the page content (if needed). If a page could not be created it
    117118  // will return false
    118   bool produce_cgi_page (cgiargsclass &args, ostream &contentout,
    119                      ostream &logout);
     119  virtual bool produce_cgi_page (cgiargsclass &args, ostream &contentout,
     120                 ostream &logout);
    120121
    121122  // get_cgihead_info determines the cgi header information for
     
    124125  // contains content then reponse_data contains the content-type.
    125126  // Note that images can now be produced by the receptionist.
    126   void get_cgihead_info (cgiargsclass &args, response_t &response,
    127             text_t &response_data, ostream &logout);
     127  virtual void get_cgihead_info (cgiargsclass &args, response_t &response,
     128                text_t &response_data, ostream &logout);
    128129
    129130  // produce the page content
    130   bool produce_content (cgiargsclass &args, ostream &contentout,
    131             ostream &logout);
     131  virtual bool produce_content (cgiargsclass &args, ostream &contentout,
     132                ostream &logout);
    132133
    133134  // returns the compressed argument ("e") corresponding to the argument
     
    139140  // error message will be written to logout and the method will
    140141  // return false.
    141   bool read_macrofiles (ostream &logout);
     142  virtual bool read_macrofiles (ostream &logout);
    142143 
    143144  // check_mainargs will check all the main arguments. If a major
Note: See TracChangeset for help on using the changeset viewer.