source: branches/port5/SL/AW_NAME/AW_rename.hxx

Last change on this file was 4706, checked in by westram, 18 years ago
  • added AWTC_create_numbered_suffix()
  • AWTC_pars_names() got extra result-parameter indicating duplicated species
  • function renamed
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1#ifndef AW_RENAME_HXX
2#define AW_RENAME_HXX
3
4#define AWT_RENAME_USE_ADVICE "awt_rename/use_advice"
5#define AWT_RENAME_SAVE_DATA  "awt_rename/save_data"
6
7#define AWAR_NAMESERVER_ADDID "nt/nameserver_addid"
8
9#ifndef AW_RENAME_SKIP_GUI
10
11void       AWTC_create_rename_awars(AW_root *root,AW_default db1);
12AW_window *AWTC_create_rename_window(AW_root *root, AW_CL gb_main);
13void       awt_rename_cb(AW_window *aww,GBDATA *gb_main);
14
15void       AW_create_namesadmin_awars(AW_root *aw_root, GBDATA *gb_main);
16AW_window *AW_create_namesadmin_window(AW_root *aw_root, AW_CL cl_gb_main);
17
18GB_ERROR AW_select_nameserver(GBDATA *gb_main, GBDATA *gb_other_main);
19
20#endif // AW_RENAME_SKIP_GUI
21
22char     *AWTC_create_numbered_suffix(GB_HASH *species_name_hash, const char *shortname, GB_ERROR& warning);
23GB_ERROR  AWTC_pars_names(GBDATA *gb_main, int update_status = 0, bool *isWarning = 0);
24GB_ERROR  AWTC_generate_one_name(GBDATA *gb_main, const char *full_name, const char *acc, const char *addid, char*& new_name, bool openstatus, bool showstatus);
25GB_ERROR  AWTC_recreate_name(GBDATA *gb_main, bool update_status);
26
27// return name of additional field used for species identification
28// (-> para 'addid' in AWTC_generate_one_name)
29const char *AW_get_nameserver_addid(GBDATA *gb_main);
30
31GB_ERROR AW_test_nameserver(GBDATA *gb_main); // create a test link to the nameserver
32
33class UniqueNameDetector {
34    // Note: If you add new items to the DB while one instance of this class exists,
35    //       you have to call add_name() for these new species!
36
37    GB_HASH *hash;
38public:
39    UniqueNameDetector(GBDATA *gb_item_data, int additionalEntries = 0);
40    ~UniqueNameDetector();
41
42    bool name_known(const char *name) { return GBS_read_hash(hash, name) == 1; }
43    void add_name(const char *name) { GBS_write_hash(hash, name, 1); }
44};
45
46char *AWTC_makeUniqueShortName(const char *prefix, UniqueNameDetector& existingNames);
47char *AWTC_generate_random_name(UniqueNameDetector& existingNames);
48
49struct PersistantNameServerConnection {
50    // create a PersistantNameServerConnection instance while calling AWTC_generate_one_name
51    // to avoid repeated re-connections to name server
52    bool dummy;
53    PersistantNameServerConnection();
54    ~PersistantNameServerConnection();
55};
56
57int AWTC_name_quality(const char *short_name); 
58
59#else
60#error AW_rename.hxx included twice
61#endif
Note: See TracBrowser for help on using the repository browser.