codec.h

00001 /*
00002  * codec.h
00003  * This file is part of dbPager Classes Library (DCL)
00004  *
00005  * Copyright (c) 2008 Dennis Prochko <wolfsoft@mail.ru>
00006  *
00007  * DCL is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation version 3.
00010  *
00011  * DCL is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with DCL; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor,
00019  * Boston, MA  02110-1301  USA
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 }} // namespace
00081 
00082 #endif /*_CODEC_H_*/
00083 

 
Support This Project
SourceForge.net Logo