source: branches/profile/NALIGNER/ali_arbdb.hxx

Last change on this file was 7623, checked in by westram, 13 years ago
  • merge from dev [7450] [7452] [7456] [7457] [7458] [7459] [7460] [7461] [7464] [7465] [7466] [7467] [7468] [7469] [7482]
    • tweaked compiler options
      • activated -Weffc++
        • postfilter warnings where Scott Meyers' advices are too general.
          • base classes should not always have virtual destructors, since that renders tiny classes useless and
          • members should not always be initialized via initialization list, since that often violates the DRY principle
        • fix gcc's inability to detect that Noncopyable implements a private copy-ctor and op=
        • this slows down complete ARB recompilation by ~5%
    • added -Wold-style-cast (inactive)
    • removed -Wno-non-template-friend added in [7447]
  • postcompile.pl
    • added option —original to show unmodified compiler output
  • declared op= for classes which had a copy-ctor
  • moved op= macros to arbtools.h
  • derived classes containing pointers from Noncopyable (use Noncopyable virtually) or
  • made them copyable if needed (awt_mask_item, KnownDB, Code, AWT_registered_itemtype, GEN_gene, PosGene, PartialSequence, PlugIn, Range, Convaln_exception)
  • other related changes
    • user mask destruction working now
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.5 KB
Line 
1// =============================================================== //
2//                                                                 //
3//   File      : ali_arbdb.hxx                                     //
4//   Purpose   :                                                   //
5//                                                                 //
6//   Institute of Microbiology (Technical University Munich)       //
7//   http://www.arb-home.de/                                       //
8//                                                                 //
9// =============================================================== //
10
11#ifndef ALI_ARBDB_HXX
12#define ALI_ARBDB_HXX
13
14#include "ali_other_stuff.hxx"
15
16class ALI_SEQUENCE;
17
18// Class for accessing the database
19class ALI_ARBDB : virtual Noncopyable {
20private:
21    char *alignment;
22
23public:
24    GBDATA *gb_main;
25
26    ALI_ARBDB() {
27        alignment = 0;
28        gb_main = 0;
29    }
30    ~ALI_ARBDB();
31
32    int open(char *name, char *use_alignment = 0);
33    void close();
34
35    void begin_transaction() {
36        GB_begin_transaction(gb_main);
37    }
38    void commit_transaction() {
39        GB_commit_transaction(gb_main);
40    }
41
42    char *get_sequence_string(char *name, int and_mark = 0);
43    ALI_SEQUENCE *get_sequence(char *name, int and_mark = 0);
44    char *get_SAI(char *name);
45    int put_sequence_string(char *name, char *sequence);
46    int put_sequence(char *name, ALI_SEQUENCE *sequence);
47    int put_SAI(const char *name, char *sequence);
48};
49
50#else
51#error ali_arbdb.hxx included twice
52#endif // ALI_ARBDB_HXX
Note: See TracBrowser for help on using the repository browser.