7 #ifndef _MIMETIC_CODEC_CODE_H_
8 #define _MIMETIC_CODEC_CODE_H_
9 #include <mimetic/codec/codec_base.h>
10 #include <mimetic/codec/codec_chain.h>
11 #include <mimetic/codec/other_codecs.h>
12 #include <mimetic/utils.h>
19 template<
typename InIt,
typename OutIt,
typename Codec>
20 void code(InIt beg, InIt end, Codec& cc, OutIt out)
22 typedef typename Codec::codec_type codec_type;
23 code(beg, end, cc, out, codec_type());
27 template<
typename InIt,
typename OutIt,
typename Codec>
28 void code(InIt beg, InIt end, Codec& cc, OutIt out,
const buffered_codec_type_tag&)
30 for(; beg != end; ++beg)
31 cc.process(*beg, out);
36 template<
typename InIt,
typename OutIt,
typename Codec>
37 void code(InIt beg, InIt end,Codec& codec,OutIt out,
const unbuffered_codec_type_tag&)
39 for(; beg != end; ++beg)
40 codec.process(*beg, out);
44 template<
typename InIt,
typename OutIt,
typename Codec,
typename Next>
45 void code(InIt beg, InIt end,
const codec_chain<Codec,Next>& cc, OutIt out)
47 typedef codec_chain<Codec,Next> Node1;
48 typedef codec_chain< oiterator_wrapper<OutIt> >
50 typedef typename push_back_node<Node1, TailNode>::node_type
53 oiterator_wrapper<OutIt> oiw(out);
54 codec_chain_type chain = build_push_back_node<Node1,TailNode>(cc,TailNode(oiw));
56 for(; beg != end; ++beg)
78 template<
typename InIt,
typename OutIt,
typename Codec>
79 void encode(InIt beg, InIt end, Codec& cc, OutIt out)
81 code(beg, end, cc, out);
89 template<
typename InIt,
typename OutIt,
typename Codec>
90 void decode(InIt beg, InIt end, Codec& cc, OutIt out)
92 code(beg, end, cc, out);
96 template<
typename InIt,
typename OutIt,
typename Codec,
typename Next>
97 void encode(InIt beg, InIt end,
const codec_chain<Codec,Next>& cc, OutIt out)
102 template<
typename InIt,
typename OutIt,
typename Codec,
typename Next>
103 void decode(InIt beg, InIt end,
const codec_chain<Codec,Next>& cc, OutIt out)
105 code(beg,end,cc,out);
void encode(InIt beg, InIt end, Codec &cc, OutIt out)
Encodes (beg, end] using cc codec.
Definition: code.h:79
void decode(InIt beg, InIt end, Codec &cc, OutIt out)
decodes (beg, end] using cc codec and write any
Definition: code.h:90