codec.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _CODEC_H_
00023 #define _CODEC_H_
00024
00025 #include <iostream>
00026
00027 #include <dcl/exception.h>
00028
00029 namespace dbp {
00030 namespace codec {
00031
00033
00036 class codec_exception: public dbp::exception {
00037 public:
00039 codec_exception(const std::string &msg): exception(msg) { };
00040 };
00041
00043
00046 class encoder {
00047 public:
00049 virtual ~encoder() { }
00051
00055 virtual void encode(std::istream &in, std::ostream &out) = 0;
00056 };
00057
00059
00062 class decoder {
00063 public:
00065 virtual ~decoder() { }
00067
00071 virtual void decode(std::istream &in, std::ostream &out) = 0;
00072 };
00073
00075
00078 class codec: public encoder, public decoder { };
00079
00080 }}
00081
00082 #endif
00083