diff options
author | Mikhail Gorbushin <m.gorbushin@corp.mail.ru> | 2018-09-04 16:28:01 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <bykoianko@gmail.com> | 2018-09-05 13:34:30 +0300 |
commit | 7af77c0e44ef6040effe9c6b5aff31dc2a8d0717 (patch) | |
tree | 254a0a952b9d8305e35bc2ebacecab234e079f05 /coding | |
parent | 3c31b8bcf3bc5f8b963516bc93137837972bd5eb (diff) |
[routing] Add speed camera section + tests for it.
Diffstat (limited to 'coding')
-rw-r--r-- | coding/byte_stream.hpp | 14 | ||||
-rw-r--r-- | coding/coding_tests/varint_test.cpp | 3 | ||||
-rw-r--r-- | coding/file_container.cpp | 12 | ||||
-rw-r--r-- | coding/file_writer.cpp | 6 | ||||
-rw-r--r-- | coding/file_writer.hpp | 11 |
5 files changed, 30 insertions, 16 deletions
diff --git a/coding/byte_stream.hpp b/coding/byte_stream.hpp index 9d145b6a4c..4f54d427e3 100644 --- a/coding/byte_stream.hpp +++ b/coding/byte_stream.hpp @@ -1,9 +1,9 @@ #pragma once -#include "base/base.hpp" -#include "std/vector.hpp" -#include "std/cstring.hpp" +#include "base/base.hpp" +#include <cstddef> +#include <cstring> class ArrayByteSource { @@ -21,9 +21,9 @@ public: m_p += size; } - inline const void * Ptr() const { return m_p; } - inline const unsigned char * PtrUC() const { return m_p; } - inline const char * PtrC() const { return static_cast<char const *>(Ptr()); } + inline void const * Ptr() const { return m_p; } + inline unsigned char const * PtrUC() const { return m_p; } + inline char const * PtrC() const { return static_cast<char const *>(Ptr()); } void Advance(size_t size) { @@ -31,7 +31,7 @@ public: } private: - const unsigned char * m_p; + unsigned char const * m_p; }; template <class StorageT> class PushBackByteSink diff --git a/coding/coding_tests/varint_test.cpp b/coding/coding_tests/varint_test.cpp index 8bcb1e5b51..102f5694f1 100644 --- a/coding/coding_tests/varint_test.cpp +++ b/coding/coding_tests/varint_test.cpp @@ -6,6 +6,9 @@ #include "base/macros.hpp" #include "base/stl_add.hpp" +#include <vector> + +using namespace std; namespace { diff --git a/coding/file_container.cpp b/coding/file_container.cpp index e00912d843..62a30d6dc1 100644 --- a/coding/file_container.cpp +++ b/coding/file_container.cpp @@ -409,23 +409,27 @@ FileWriter FilesContainerW::GetWriter(Tag const & tag) if (m_needRewrite) { m_needRewrite = false; + ASSERT(!m_info.empty(), ()); uint64_t const curr = m_info.back().m_offset + m_info.back().m_size; FileWriter writer(m_name, FileWriter::OP_WRITE_EXISTING, true); writer.Seek(curr); writer.WritePaddingByPos(kSectionAlignment); - m_info.push_back(Info(tag, writer.Pos())); - ASSERT(m_info.back().m_offset % kSectionAlignment == 0, ()); + + m_info.emplace_back(tag, writer.Pos()); + ASSERT_EQUAL(m_info.back().m_offset % kSectionAlignment, 0, ()); return writer; } else { SaveCurrentSize(); + FileWriter writer(m_name, FileWriter::OP_APPEND); writer.WritePaddingByPos(kSectionAlignment); - m_info.push_back(Info(tag, writer.Pos())); - ASSERT(m_info.back().m_offset % kSectionAlignment == 0, ()); + + m_info.emplace_back(tag, writer.Pos()); + ASSERT_EQUAL(m_info.back().m_offset % kSectionAlignment, 0, ()); return writer; } } diff --git a/coding/file_writer.cpp b/coding/file_writer.cpp index 4b95804fd7..b8f44298f9 100644 --- a/coding/file_writer.cpp +++ b/coding/file_writer.cpp @@ -1,6 +1,9 @@ #include "coding/file_writer.hpp" #include "coding/internal/file_data.hpp" +#include <vector> + +using namespace std; FileWriter::FileWriter(FileWriter && rhs) : m_pFileData(move(rhs.m_pFileData)), m_bTruncOnClose(rhs.m_bTruncOnClose) @@ -8,7 +11,8 @@ FileWriter::FileWriter(FileWriter && rhs) } FileWriter::FileWriter(string const & fileName, FileWriter::Op op, bool bTruncOnClose) -: m_pFileData(new fdata_t(fileName, static_cast<fdata_t::Op>(op))), m_bTruncOnClose(bTruncOnClose) + : m_pFileData(make_unique<my::FileData>(fileName, static_cast<my::FileData::Op>(op))) + , m_bTruncOnClose(bTruncOnClose) { } diff --git a/coding/file_writer.hpp b/coding/file_writer.hpp index 5b3ade04fd..a35d889621 100644 --- a/coding/file_writer.hpp +++ b/coding/file_writer.hpp @@ -1,7 +1,10 @@ #pragma once + #include "coding/writer.hpp" + #include "base/base.hpp" -#include "std/unique_ptr.hpp" + +#include <memory> namespace my { class FileData; } @@ -17,8 +20,10 @@ public: // Create an empty file for writing. If a file with the same name already exists // its content is erased and the file is treated as a new empty file. OP_WRITE_TRUNCATE = 1, + // Open a file for update. The file is created if it does not exist. OP_WRITE_EXISTING = 2, + // Append to a file. Writing operations append data at the end of the file. // The file is created if it does not exist. // Seek should not be called, if file is opened for append. @@ -48,10 +53,8 @@ public: string const & GetName() const; private: - typedef my::FileData fdata_t; - void WritePadding(uint64_t offset, uint64_t factor); - unique_ptr<fdata_t> m_pFileData; + std::unique_ptr<my::FileData> m_pFileData; bool m_bTruncOnClose; }; |