source: main/trunk/greenstone2/common-src/src/lib/cnfgator.cpp@ 22737

Last change on this file since 22737 was 22737, checked in by mdewsnip, 14 years ago

Added copyright header to common-src/src/lib/cnfgable.cpp, common-src/src/lib/cnfgable.h, common-src/src/lib/cnfgator.cpp, common-src/src/lib/cnfgator.h.

  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1/**********************************************************************
2 *
3 * cnfgator.cpp --
4 *
5 * Copyright (C) 2001-2010 The New Zealand Digital Library Project
6 *
7 * A component of the Greenstone digital library software
8 * from the New Zealand Digital Library Project at the
9 * University of Waikato, New Zealand.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 *********************************************************************/
26
27#if defined(GSDL_USE_OBJECTSPACE)
28# include <ospace/std/iostream>
29# include <ospace/std/fstream>
30#elif defined(GSDL_USE_IOS_H)
31# include <iostream.h>
32# include <fstream.h>
33#else
34# include <iostream>
35# include <fstream>
36#endif
37
38#include "cnfgator.h"
39
40configurator::configurator(configurable *configureobject) {
41 configureobjs.push_back(configureobject);
42}
43
44void configurator::add_configurable(configurable *configureobject) {
45 configureobjs.push_back(configureobject);
46}
47
48bool configurator::configure(const text_t &filename) {
49 // read in the build configuration file
50 text_t key;
51 text_tarray cfgline;
52 char *cstr = filename.getcstr();
53 ifstream confin (cstr);
54 delete []cstr;
55
56 if (confin) {
57 while (read_cfg_line(confin, cfgline) >= 0) {
58 if (cfgline.size () >= 2) {
59 key = cfgline[0];
60 cfgline.erase(cfgline.begin());
61
62 // configure the configurables
63 configurable *configureObject;
64 vector<configurable *>::iterator configureIter = configureobjs.begin();
65
66 while (configureIter != configureobjs.end()) {
67 configureObject = *configureIter;
68 ++configureIter;
69
70 configureObject->configure (key, cfgline);
71 }
72 }
73 }
74 confin.close ();
75 return true;
76 }
77 return false;
78}
Note: See TracBrowser for help on using the repository browser.