/usr/include/libGenome-1.3/libGenome/gnBaseSource.h is in libgenome-1.3-dev 1.3.1-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | /////////////////////////////////////////////////////////////////////////////
// File: gnBaseSource.h
// Purpose: Abstract source class
// Description: Basic interface to all source objects
// Changes:
// Version: libGenome 0.5.1
// Author: Aaron Darling
// Modified by:
// Copyright: (c) Aaron Darling
// Licenses: See COPYING file for details
/////////////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef _gnBaseSource_h_
#define _gnBaseSource_h_
#include "libGenome/gnDefs.h"
#include <string>
#include "libGenome/gnClone.h"
namespace genome {
class gnGenomeSpec;
class gnFilter;
/**
* gnBaseSource defines a standard interface for derived classes to
* provide access to file, database, and network sources of genetic data.
* First the data source is opened and parsed, using the open() function.
* The source class then creates and a gnGenomeSpec containing references
* to its sequence data. The gnGenomeSpec can then be used by gnSequence
* to give programmer friendly access to the sequence data.
*/
class GNDLLEXPORT gnBaseSource : public gnClone
{
public:
gnBaseSource(){}
/**
* Destructor, frees memory used by this source class.
*/
virtual ~gnBaseSource(){}
virtual gnBaseSource* Clone() const = 0;
/**
* Opens the source given in "openString" for reading.
* @param openString The name of the source (file, network URL, or
* database) to open.
* @throws Will throw a FileNotOpened exception if the file was not found
* or was not accessible. Will propagate a FileUnreadable exception if the
* file format was invalid.
*/
virtual void Open( std::string openString ) = 0;
/**
* Opens this source for reading.
* @throws Will throw a FileNotOpened exception if the file was not found
* or was not accessible.
*/
virtual void Open() = 0;
/**
* Closes the file or connection this source is reading from.
* @throws IOStreamError if an error occurs closing the file.
*/
virtual void Close() = 0;
/**
* Get the location of the source that is being used.
* @return The location std::string describing this source, usually a file
* name.
*/
virtual std::string GetOpenString() const = 0;
/**
* Get the number of sequence contigs in this source.
* @return The number of contigs in this source.
*/
virtual uint32 GetContigListLength() const = 0;
/**
* Looks for a contig by name.
* Returns true if it finds the contig, otherwise false.
* @param name The name of the contig to look for.
* @return True if the named contig exists, false otherwise.
*/
virtual boolean HasContig( const std::string& name ) const = 0;
/**
* Get a contig index by name.
* If the source does not contain a contig by the specified name
* GetContigID returns UINT32_MAX.
* @param name The name of the contig to look for.
* @return The index of the named contig or UINT32_MAX.
*/
virtual uint32 GetContigID( const std::string& name ) const = 0;
/**
* Get the name of the specified contig.
* Returns an empty std::string if the specified contig is out of range.
* @param i The index of the contig or ALL_CONTIGS.
* @return The name of the contig or an empty std::string.
*/
virtual std::string GetContigName( const uint32 i ) const = 0;
/**
* Get the total number of base pairs in the specified contig.
* @param i The index of the contig or ALL_CONTIGS.
* @return The length in base pairs of the specified contig.
*/
virtual gnSeqI GetContigSeqLength( const uint32 i ) const = 0;
/**
* Get the filter currently being used to filter unwanted characters out of read sequences.
* @return A pointer to the gnFilter currently in use.
*/
virtual const gnFilter* GetFilter() const = 0;
/**
* Set the filter that will be used to filter unwanted characters out of the sequence data.
* @param filter The filter to remove unwanted characters from the sequence.
* @throws NullPointer is thrown if the specified filter pointer is null.
*/
virtual void SetFilter( gnFilter* filter ) = 0;
/**
* Gets raw input from this source.
* Read will attempt to read "bufLen" bytes starting at "pos" directly from the source.
* It stores the data in "buf", and returns the actual number of bytes read in bufLen.
* Read will return false if a serious error occurs.
* @param pos The position in the file to start reading.
* @param buf The character array to store data into.
* @param bufLen The number of bytes to read.
* @return True if the operation was successful.
*/
virtual boolean Read( const uint64 pos, char* buf, gnSeqI& bufLen) = 0;
/**
* Gets sequence data from this source.
* SeqRead will attempt to read "bufLen" base pairs starting at "start", an offset into the sequence.
* Reading inside a specific contig can be accomplished by supplying the "contigI" parameter with
* a valid contig index.
* SeqRead stores the sequence data in "buf" and returns the actual number of bases read in "bufLen".
* SeqRead will return false if a serious error occurs.
* @param start The base pair to start reading at.
* @param buf The character array to store base pairs into.
* @param bufLen The number of base pairs to read.
* @param contigI The index of the contig to read or ALL_CONTIGS by default.
* @return True if the operation was successful.
*/
virtual boolean SeqRead( const gnSeqI start, char* buf, gnSeqI& bufLen, const uint32 contigI=ALL_CONTIGS ) = 0;
/**
* Get the annotated sequence data as a gnGenomeSpec.
* GetSpec returns a gnGenomeSpec which contains the sequence, header,
* and feature data contained by this source.
* @return The annotated sequence data.
*/
virtual gnGenomeSpec *GetSpec() const = 0;
private:
};// class gnBaseSource
} // end namespace genome
#endif
// _gnBaseSource_h_
|