コード例 #1
0
	ERMsg CShapeFileIndex::Write(const string& filePath)const
	{
		ERMsg msg;

		ofStream file;
		msg = file.open(filePath, ios::out | ios::binary);
		if (msg)
		{
			try
			{
				// write map instance to archive
				boost::archive::binary_oarchive io(file, boost::archive::no_header);
				m_header.WriteHeader(io);

				ASSERT((m_header.GetFileLength() - 50) % 4 == 0);

				int nbRecord = (int)m_recordsInfo.size();
				for (int i = 0; i < nbRecord; i++)
				{
					WriteBigEndian(io, m_recordsInfo[i].m_offset);
					WriteBigEndian(io, m_recordsInfo[i].m_recordLength);
				}
			}
			catch (boost::archive::archive_exception e)
			{
				msg.ajoute(e.what());
			}

			file.close();
		}


		return msg;
	}
コード例 #2
0
bool OutputStream::writeIntBigEndian(int value) {
  unsigned int v;
  char pInt[sizeof(v)];
  WriteBigEndian(pInt, (unsigned int)value);
  return write(pInt, 4);
}
コード例 #3
0
bool OutputStream::writeInt64BigEndian(int64 value) {
  uint64 v;
  char pUint64[sizeof(v)];
  WriteBigEndian(pUint64, (uint64)value);
  return write(pUint64, 8);
}
コード例 #4
0
bool OutputStream::writeShortBigEndian(short value) {
  unsigned short v;
  char pShort[sizeof(v)];
  WriteBigEndian(pShort, (unsigned short)value);
  return write(pShort, 2);
}