serializable.cpp

来自「ncbi源码」· C++ 代码 · 共 144 行

CPP
144
字号
/* * =========================================================================== * PRODUCTION $Log: serializable.cpp,v $ * PRODUCTION Revision 1000.2  2004/06/01 19:41:46  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6 * PRODUCTION * =========================================================================== *//*  $Id: serializable.cpp,v 1000.2 2004/06/01 19:41:46 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author:  Michael Kholodov** File Description:*   General serializable interface for different output formats** ---------------------------------------------------------------------------* $Log: serializable.cpp,v $* Revision 1000.2  2004/06/01 19:41:46  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6** Revision 1.6  2004/05/17 21:03:03  gorelenk* Added include of PCH ncbi_pch.hpp** Revision 1.5  2004/01/16 22:10:44  ucko* Tweak to use a proxy class to avoid clashing with new support for* feeding CSerialObject to streams.** Revision 1.4  2003/03/10 18:54:26  gouriano* use new structured exceptions (based on CException)** Revision 1.3  2001/05/21 14:38:32  kholodov* Added: method WriteAsString() for string representation of an object.** Revision 1.2  2001/04/17 04:08:27  vakatov* Redesigned from a pure interface (ISerializable) into a regular* base class (CSerializable) to make its usage safer, more formal and* less bulky.** Revision 1.1  2001/04/12 17:01:11  kholodov* General serializable interface for different output formats** ===========================================================================*/#include <ncbi_pch.hpp>#include <serial/serializable.hpp>#include <serial/exception.hpp>BEGIN_NCBI_SCOPEvoid CSerializable::WriteAsFasta(ostream& /*out*/)    const{    NCBI_THROW(CSerialException,eNotImplemented,        "CSerializable::WriteAsFasta: not implemented");}void CSerializable::WriteAsAsnText(ostream& /*out*/)    const{    NCBI_THROW(CSerialException,eNotImplemented,                 "CSerializable::WriteAsAsnText: not implemented");}void CSerializable::WriteAsAsnBinary(ostream& /*out*/)    const{    NCBI_THROW(CSerialException,eNotImplemented,                 "CSerializable::WriteAsAsnBinary: not implemented");}void CSerializable::WriteAsXML(ostream& /*out*/)    const{    NCBI_THROW(CSerialException,eNotImplemented,                 "CSerializable::WriteAsXML: not implemented");}void CSerializable::WriteAsString(ostream& /*out*/)    const{    NCBI_THROW(CSerialException,eNotImplemented,                 "CSerializable::WriteAsString: not implemented");}ostream& operator << (ostream& out, const CSerializable::CProxy& src) {    switch ( src.m_OutputType ) {    case CSerializable::eAsFasta:        src.m_Obj.WriteAsFasta(out);        break;    case CSerializable::eAsAsnText:        src.m_Obj.WriteAsAsnText(out);        break;    case CSerializable::eAsAsnBinary:        src.m_Obj.WriteAsAsnBinary(out);        break;    case CSerializable::eAsXML:        src.m_Obj.WriteAsXML(out);        break;    case CSerializable::eAsString:        src.m_Obj.WriteAsString(out);        break;    default:        NCBI_THROW(CSerialException,eFail,                   "operator<<(ostream&,CSerializable::CProxy&):"                   " wrong output type");    }    return out;};END_NCBI_SCOPE

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?