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

gnSourceHeader.h

Go to the documentation of this file.
00001 /////////////////////////////////////////////////////////////////////////////
00002 // File:            gnSourceHeader.h
00003 // Purpose:         Source Header class
00004 // Description:     Provides an interface for Headers 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 _gnSourceHeader_h_
00013 #define _gnSourceHeader_h_
00014 
00015 #include "gn/gnDefs.h"
00016 
00017 #include <string>
00018 #include "gn/gnBaseHeader.h"
00019 #include "gn/gnBaseSource.h"
00020 
00021 #include <utility>
00022 
00023 /**
00024  * gnSourceHeader is used to store a sequence header which resides in another source.
00025  * gnSourceHeaders are created by gnSEQSource and other sources and placed into a spec.
00026  */
00027 class GNDLLEXPORT gnSourceHeader : public gnBaseHeader
00028 {
00029 public:
00030         /**
00031          * Empty constructor.
00032          */
00033         gnSourceHeader();
00034         /**
00035          * Constructor, records the header's name and byte offset in the source.
00036          * @param source The source which contains the header.
00037          * @param name The name of the header.
00038          * @param begin The offset into the source where the header starts.
00039          * @param length The length of the header.
00040          */
00041         gnSourceHeader( gnBaseSource* source, const string& name, const uint32 begin, const uint32 length );
00042         /**
00043          * Copy constructor.
00044          * @param s The gnSourceHeader to copy.
00045          */
00046         gnSourceHeader( const gnSourceHeader& s );
00047         /**
00048          * Destructor, frees memory.
00049          */
00050         ~gnSourceHeader();
00051 
00052         gnSourceHeader* Clone() const;
00053 
00054         string GetHeader() const;
00055         string GetHeaderName() const;
00056         /// Not implemented, use gnStringHeader. 
00057 //      void SetHeader(const string& header){};
00058         /// Not implemented, use gnStringHeader. 
00059 //      void SetHeaderName(const string& name){};
00060         
00061         uint32 GetLength() const;
00062         /**
00063          * Get the header's start position within the source.
00064          * @return The byte offset of the header's start position.
00065          */
00066         uint32 GetHeaderStart() const;
00067         /**
00068          * Get the header's start position and length within the source.
00069          * @return The header start position and length as a pair.
00070          */
00071         pair<uint32, uint32> GetHeaderLoc() const;
00072 
00073         /**
00074          * Set the header's start position within the source.
00075          * @param start The header start position.
00076          */
00077         void SetHeaderStart(const uint32 start);
00078         /**
00079          * Get the header's length within the source.
00080          * @param length The header length.
00081          */
00082         void SetHeaderLength(const uint32 length);
00083         /**
00084          * Set the header's start position and length within the source.
00085          * @param startLen The header start position and length as a pair.
00086          */
00087         void SetHeaderLoc(const pair<uint32, uint32> startLen);
00088 
00089 private:
00090         string m_name;
00091         uint32 m_start, m_length;
00092         gnBaseSource *m_source;
00093 }; //class gnSourceHeader
00094 
00095 inline 
00096 gnSourceHeader* gnSourceHeader::Clone() const{
00097         return new gnSourceHeader(*this);
00098 }
00099 inline
00100 string gnSourceHeader::GetHeaderName() const{
00101         return m_name;
00102 }
00103 inline
00104 uint32 gnSourceHeader::GetHeaderStart() const{
00105         return m_start;
00106 }
00107 inline
00108 uint32 gnSourceHeader::GetLength() const{
00109         return m_length;
00110 }
00111 inline
00112 pair<uint32, uint32> gnSourceHeader::GetHeaderLoc() const{
00113         pair<uint32, uint32> p;
00114         p.first = m_start;
00115         p.second = m_length;
00116         return p;
00117 }
00118 inline
00119 void gnSourceHeader::SetHeaderStart(const uint32 start){
00120         m_start = start;
00121 }
00122 inline
00123 void gnSourceHeader::SetHeaderLength(const uint32 length){
00124         m_length = length;
00125 }
00126 inline
00127 void gnSourceHeader::SetHeaderLoc(const pair<uint32, uint32> startLen){
00128         m_start = startLen.first;
00129         m_length = startLen.second;
00130 }
00131 
00132 
00133 #endif
00134         // _gnSourceHeader_h_

Generated on Mon Feb 3 02:34:41 2003 for libGenome by doxygen1.3-rc3