gnBaseHeader.h Source File

Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# gnBaseHeader.h

Go to the documentation of this file.

    00001 /////////////////////////////////////////////////////////////////////////////
    00002 // File:            gnBaseHeader.h
    00003 // Purpose:         abstract Header class
    00004 // Description:     Provides an interface for Headers in memory and on disk.
    00005 // Changes:
    00006 // Version:         libGenome 0.5.1
    00007 // Author:          Aaron Darling
    00008 // Modified by:
    00009 // Copyright:       (c) Aaron Darling
    00010 // Licenses:        See COPYING file for details
    00011 /////////////////////////////////////////////////////////////////////////////
    00012 #ifndef _gnBaseHeader_h_
    00013 #define _gnBaseHeader_h_
    00014
    00015 #include "gn/gnDefs.h"
    00016
    00017 #include <string>
    00018 #include "gn/gnClone.h"
    00019 #include "gn/gnLocation.h"
    00020
    00021 /**
    00022  * This class provides a general interface to sequence related headers.
    00023  * Headers commonly precede sequence data in several file formats.  In
    00024  * FastA files, the header is on the > line before a contig.
    00025  * In GenBank files, each contig has headers describing authors and other
    00026  * information.  In GenBank files, the header name corresponds to the
    00027  * name of the header field.  A few genBank header names are: DEFINITION
    00028  * ACCESSION, VERSION, KEYWORDS, SEGMENT, SOURCE, REFERENCE, and COMMENT.
    00029  * Eventually, individual classes may be implemented for each header type.
    00030  */
    00031 class GNDLLEXPORT gnBaseHeader : public gnClone
    00032 {
    00033 public:
    00034         gnBaseHeader(){}
    00035         virtual ~gnBaseHeader(){}
    00036         virtual gnBaseHeader* Clone() const = 0;
    00037         /**
    00038          * Get the header.
    00039          * @return The header as a string.
    00040          */
    00041         virtual string GetHeader() const = 0;
    00042         /**
    00043          * Get the header's name, if any.
    00044          * @return The header name as a string.
    00045          */
    00046         virtual string GetHeaderName() const = 0;
    00047         /**
    00048          * Get the header's length in bytes.
    00049          * @return The length of the header.
    00050          */
    00051         virtual uint32 GetLength() const = 0;
    00052 private:
    00053 }; //class gnBaseHeader
    00054
    00055 #endif
    00056         // _gnBaseHeader_h_
    00057