18 #include "GlfRefSection.h"
19 #include "GlfException.h"
20 #include "StringBasics.h"
22 GlfRefSection::GlfRefSection()
29 GlfRefSection::~GlfRefSection()
54 if(
this == &refSection)
62 myRefName = refSection.myRefName;
63 myRefLen = refSection.myRefLen;
83 int32_t refNameLen = 0;
84 int byteLen =
sizeof(int32_t);
85 numRead =
ifread(filePtr, &refNameLen, byteLen);
86 if(numRead != byteLen)
91 if((numRead == 0) &&
ifeof(filePtr))
97 "Failed to read the length of the reference sequence name (";
99 errorMsg +=
" bytes). Only read ";
101 errorMsg +=
" bytes.";
102 std::string errorString = errorMsg.c_str();
108 numRead = myRefName.readFromFile(filePtr, refNameLen);
109 if(numRead != refNameLen)
111 String errorMsg =
"Failed to read the reference sequence name (";
112 errorMsg += refNameLen;
113 errorMsg +=
" bytes). Only read ";
115 errorMsg +=
" bytes.";
116 std::string errorString = errorMsg.c_str();
122 byteLen =
sizeof(uint32_t);
123 numRead =
ifread(filePtr, &myRefLen, byteLen);
124 if(numRead != byteLen)
126 String errorMsg =
"Failed to read the reference sequence length (";
128 errorMsg +=
" bytes). Only read ";
130 errorMsg +=
" bytes.";
131 std::string errorString = errorMsg.c_str();
144 int refNameLen = myRefName.length();
145 int byteLen =
sizeof(int32_t);
146 int numWrite =
ifwrite(filePtr, &refNameLen, byteLen);
147 if(numWrite != byteLen)
150 "Failed to write the length of the reference sequence name (";
152 errorMsg +=
" bytes). Only wrote ";
153 errorMsg += numWrite;
154 errorMsg +=
" bytes.";
155 std::string errorString = errorMsg.c_str();
160 numWrite =
ifwrite(filePtr, myRefName.c_str(), refNameLen);
161 if(numWrite != refNameLen)
163 String errorMsg =
"Failed to write the reference sequence name (";
164 errorMsg += refNameLen;
165 errorMsg +=
" bytes). Only wrote ";
166 errorMsg += numWrite;
167 errorMsg +=
" bytes.";
168 std::string errorString = errorMsg.c_str();
174 byteLen =
sizeof(uint32_t);
175 numWrite =
ifwrite(filePtr, &myRefLen, byteLen);
176 if(numWrite != byteLen)
178 String errorMsg =
"Failed to write the reference sequence length (";
180 errorMsg +=
" bytes). Only wrote ";
181 errorMsg += numWrite;
182 errorMsg +=
" bytes.";
183 std::string errorString = errorMsg.c_str();
195 name = myRefName.c_str();
222 std::cout <<
"l_name: " << myRefName.length()
223 <<
"; name: " << myRefName.c_str()
224 <<
"; ref_len: " << myRefLen