Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

na_traits.h

Go to the documentation of this file.
00001 #ifndef _NA_TRAITS_H
00002 #define _NA_TRAITS_H
00003 
00004 #include "bit_char_traits.h"
00015 namespace bioinfo 
00016 {
00017 
00030   template<size_t NB>
00031   class na_min_traits : public std::char_traits<std::bitset<NB> > {
00032   public:
00033     typedef typename std::char_traits<std::bitset<NB> >::char_type char_type;
00034     typedef typename std::char_traits<char>::char_type basic_char_type;
00035     static std::size_t 
00036     bit_size() { 
00037       return 2;
00038     }
00039     inline static basic_char_type char_code(char_type);
00040     inline static std::size_t bit_code(basic_char_type);
00041     inline static bool valid_code(basic_char_type);
00042   };
00043 
00044 
00055   template<size_t NB>
00056   class na_nmer_overlap : public na_min_traits<NB> {
00057   };
00058 }
00059 
00063 namespace std
00064 {
00066   template <class _CharT, class _Traits, typename _NaTraits, size_t _Nb>
00067   basic_ostream<_CharT, _Traits>&
00068     operator<<(basic_ostream<_CharT, _Traits>&, const basic_string<bitset<_Nb>, _NaTraits>&);
00069 
00070   template<class _CharT, class _Traits, class _NaTraits, size_t _Nb>
00071   basic_istream<_CharT, _Traits>&
00072   operator>>(basic_istream<_CharT, _Traits>&, basic_string<bitset<_Nb>, _NaTraits>&); 
00073 
00075   template<class _CharT, class _Traits, size_t __Nb>
00076   basic_istream<_CharT, _Traits>&
00077   operator>>(basic_istream<_CharT, _Traits>&, basic_string<bitset<__Nb>, bioinfo::na_nmer_overlap<__Nb> >&);
00078 
00079   template <class _CharT, class _Traits, size_t _Nb>
00080   basic_ostream<_CharT, _Traits>&
00081   operator<<(basic_ostream<_CharT, _Traits>&, const basic_string<bitset<_Nb>, bioinfo::na_nmer_overlap<_Nb> >&);
00082 
00083   template<size_t __Nb>
00084   bool
00085   operator==(const basic_string<bitset<__Nb>, bioinfo::na_nmer_overlap<__Nb> >&, const string&);
00086 }
00087 
00088 
00089 #include "impl/na_traits.hpp"
00090 #include "impl/na_nmer_overlap_stream.hpp"
00091 
00092 #endif // _NA_TRAITS_H