source: branches/profile/PRIMER_DESIGN/PRD_Item.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.2 KB
Line 
1#ifndef PRD_ITEM_HXX
2#define PRD_ITEM_HXX
3
4#include <cstdio>
5#ifndef   PRD_GLOBALS_HXX
6#include "PRD_Globals.hxx"
7#endif
8
9struct Item : virtual Noncopyable {
10    PRD_Sequence_Pos end_pos;
11    PRD_Sequence_Pos start_pos;           // index in sequence (or -1 if not yet calculated)
12    PRD_Sequence_Pos offset;              // index of base in sequence : left = index of first base of primer, right = index of last base of primer
13    int              length;              // count of bases in primer
14
15    int              GC_ratio;            // GC-ratio of primer
16    int              temperature;         // temperature of primer
17
18    Item *next;
19
20    Item (PRD_Sequence_Pos pos_, PRD_Sequence_Pos offset_, int length_, int ratio_, int temperature_, Item *next_);
21    Item ();
22    ~Item () {};
23
24    void  print             (const char *prefix_, const char *suffix_);   // print Items's values
25    int   sprint            (char *buf, const char *prefix_, const char *suffix_,   int max_primer_length, int max_position_length, int max_length_length);
26    char* getPrimerSequence (const char *sequence_);              // return the string the Item describes
27};
28
29#else
30#error PRD_Item.hxx included twice
31#endif // PRD_ITEM_HXX
Note: See TracBrowser for help on using the repository browser.