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

bio_bit_traits.h

Go to the documentation of this file.
00001 
00004 #ifndef _BIO_BIT_TRAITS_H
00005 #define _BIO_BIT_TRAITS_H
00006 
00007 #include "bit_char_traits.h"
00008 
00009 
00010 namespace bioinfo 
00011 {
00012 
00025   template<size_t NB>
00026   class bio_bit_traits : public std::char_traits<std::bitset<NB> > {
00027   public:
00028     typedef typename std::char_traits<std::bitset<NB> >::char_type char_type; 
00029     typedef typename std::char_traits<char>::char_type basic_char_type; 
00034     static std::size_t 
00035     bit_size() { 
00036       return 2;
00037     }
00038 
00044     inline static basic_char_type char_code(char_type);
00045 
00050     inline static std::size_t bit_code(basic_char_type);
00051 
00056     inline static bool valid_code(basic_char_type);
00057   };
00058 
00059 
00075   template<size_t NB>
00076   class na_nmer_overlap : public bio_bit_traits<NB> {
00077   };
00078 }
00079 
00080 
00084 namespace std
00085 {
00088   template <class _CharT, class _Traits, typename _NaTraits, size_t _Nb>
00089   basic_ostream<_CharT, _Traits>&
00090     operator<<(basic_ostream<_CharT, _Traits>&, const basic_string<bitset<_Nb>, _NaTraits>&);
00091 
00092   template<class _CharT, class _Traits, class _NaTraits, size_t _Nb>
00093   basic_istream<_CharT, _Traits>&
00094   operator>>(basic_istream<_CharT, _Traits>&, basic_string<bitset<_Nb>, _NaTraits>&); 
00095 
00097   template<class _CharT, class _Traits, size_t __Nb>
00098   basic_istream<_CharT, _Traits>&
00099   operator>>(basic_istream<_CharT, _Traits>&, basic_string<bitset<__Nb>, bioinfo::na_nmer_overlap<__Nb> >&);
00100 
00101   template <class _CharT, class _Traits, size_t _Nb>
00102   basic_ostream<_CharT, _Traits>&
00103   operator<<(basic_ostream<_CharT, _Traits>&, const basic_string<bitset<_Nb>, bioinfo::na_nmer_overlap<_Nb> >&);
00104 
00105   template<size_t __Nb>
00106   bool
00107   operator==(const basic_string<bitset<__Nb>, bioinfo::na_nmer_overlap<__Nb> >&, const string&);
00109 }
00110 
00111 
00112 #include "impl/bio_bit_traits.hpp"
00113 #include "impl/na_nmer_overlap_stream.hpp"
00114 
00115 #endif // _BIO_BIT_TRAITS_H