// BamHttp_p.h (c) 2011 Derek Barnett
// Marth Lab, Department of Biology, Boston College
// ---------------------------------------------------------------------------
-// Last modified: 7 November 2011 (DB)
+// Last modified: 10 November 2011 (DB)
// ---------------------------------------------------------------------------
// Provides reading/writing of BAM files on HTTP server
// ***************************************************************************
// IBamIODevice implementation
public:
void Close(void);
- bool IsOpen(void) const ;
+ bool IsOpen(void) const;
bool IsRandomAccess(void) const;
bool Open(const IBamIODevice::OpenMode mode);
int64_t Read(char* data, const unsigned int numBytes);
- bool Seek(const int64_t& position);
+ bool Seek(const int64_t& position, const int origin = SEEK_SET);
int64_t Tell(void) const;
int64_t Write(const char* data, const unsigned int numBytes);
// internal methods
private:
+ void ClearResponse(void);
bool ConnectSocket(void);
+ void DisconnectSocket(void);
bool EnsureSocketConnection(void);
void ParseUrl(const std::string& url);
int64_t ReadFromSocket(char* data, const unsigned int numBytes);
bool ReceiveResponse(void);
- bool SendRequest(const size_t numBytes = 0);
+ bool SendGetRequest(const size_t numBytes = 0x10000);
+ bool SendHeadRequest(void);
int64_t WriteToSocket(const char* data, const unsigned int numBytes);
// data members
// file position
int64_t m_filePosition;
- int64_t m_endRangeFilePosition;
+ int64_t m_fileEndPosition;
+ int64_t m_rangeEndPosition;
};
} // namespace Internal