aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/on_disk/chunks
diff options
context:
space:
mode:
authoryoda <yoda@yandex-team.ru>2022-02-10 16:50:00 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:50:00 +0300
commit86ac2045bfe9733d3396425a6ecade74c11ac489 (patch)
tree5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/on_disk/chunks
parentddd64736134d6d92b80a934c8cf8228944ee4236 (diff)
downloadydb-86ac2045bfe9733d3396425a6ecade74c11ac489.tar.gz
Restoring authorship annotation for <yoda@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/on_disk/chunks')
-rw-r--r--library/cpp/on_disk/chunks/chunked_helpers.cpp96
-rw-r--r--library/cpp/on_disk/chunks/chunked_helpers.h34
2 files changed, 65 insertions, 65 deletions
diff --git a/library/cpp/on_disk/chunks/chunked_helpers.cpp b/library/cpp/on_disk/chunks/chunked_helpers.cpp
index b3aa5c8234..b7adba2753 100644
--- a/library/cpp/on_disk/chunks/chunked_helpers.cpp
+++ b/library/cpp/on_disk/chunks/chunked_helpers.cpp
@@ -9,59 +9,59 @@ TBlob GetBlock(const TBlob& blob, size_t index) {
size_t begin = (const char*)reader.GetBlock(index) - (const char*)blob.Data();
return blob.SubBlob(begin, begin + reader.GetBlockLen(index));
}
-
-/*************************** TNamedChunkedDataReader ***************************/
-
+
+/*************************** TNamedChunkedDataReader ***************************/
+
static const char* NamedChunkedDataMagic = "NamedChunkedData";
-
+
TNamedChunkedDataReader::TNamedChunkedDataReader(const TBlob& blob)
: TChunkedDataReader(blob)
-{
- if (TChunkedDataReader::GetBlocksCount() < 1)
- throw yexception() << "Too few blocks";
-
- size_t block = TChunkedDataReader::GetBlocksCount() - 1;
- size_t magicLen = strlen(NamedChunkedDataMagic);
- if (GetBlockLen(block) < magicLen || memcmp(GetBlock(block), NamedChunkedDataMagic, magicLen) != 0)
- throw yexception() << "Not a valid named chunked data file";
-
+{
+ if (TChunkedDataReader::GetBlocksCount() < 1)
+ throw yexception() << "Too few blocks";
+
+ size_t block = TChunkedDataReader::GetBlocksCount() - 1;
+ size_t magicLen = strlen(NamedChunkedDataMagic);
+ if (GetBlockLen(block) < magicLen || memcmp(GetBlock(block), NamedChunkedDataMagic, magicLen) != 0)
+ throw yexception() << "Not a valid named chunked data file";
+
TMemoryInput input(static_cast<const char*>(GetBlock(block)) + magicLen, GetBlockLen(block) - magicLen);
- Load(&input, Names);
-
- size_t index = 0;
+ Load(&input, Names);
+
+ size_t index = 0;
for (TVector<TString>::const_iterator it = Names.begin(); it != Names.end(); ++it, ++index) {
- if (!it->empty())
- NameToIndex[*it] = index;
- }
-}
-
-/*************************** TNamedChunkedDataWriter ***************************/
-
+ if (!it->empty())
+ NameToIndex[*it] = index;
+ }
+}
+
+/*************************** TNamedChunkedDataWriter ***************************/
+
TNamedChunkedDataWriter::TNamedChunkedDataWriter(IOutputStream& slave)
- : TChunkedDataWriter(slave)
-{
-}
-
+ : TChunkedDataWriter(slave)
+{
+}
+
TNamedChunkedDataWriter::~TNamedChunkedDataWriter() {
-}
-
-void TNamedChunkedDataWriter::NewBlock() {
- NewBlock("");
-}
-
+}
+
+void TNamedChunkedDataWriter::NewBlock() {
+ NewBlock("");
+}
+
void TNamedChunkedDataWriter::NewBlock(const TString& name) {
- if (!name.empty()) {
- if (NameToIndex.count(name) != 0)
- throw yexception() << "Block name is not unique";
- NameToIndex[name] = Names.size();
- }
- Names.push_back(name);
- TChunkedDataWriter::NewBlock();
-}
-
-void TNamedChunkedDataWriter::WriteFooter() {
- NewBlock("");
- Write(NamedChunkedDataMagic);
- Save(this, Names);
- TChunkedDataWriter::WriteFooter();
-}
+ if (!name.empty()) {
+ if (NameToIndex.count(name) != 0)
+ throw yexception() << "Block name is not unique";
+ NameToIndex[name] = Names.size();
+ }
+ Names.push_back(name);
+ TChunkedDataWriter::NewBlock();
+}
+
+void TNamedChunkedDataWriter::WriteFooter() {
+ NewBlock("");
+ Write(NamedChunkedDataMagic);
+ Save(this, Names);
+ TChunkedDataWriter::WriteFooter();
+}
diff --git a/library/cpp/on_disk/chunks/chunked_helpers.h b/library/cpp/on_disk/chunks/chunked_helpers.h
index a20bed1f62..5fa96afdca 100644
--- a/library/cpp/on_disk/chunks/chunked_helpers.h
+++ b/library/cpp/on_disk/chunks/chunked_helpers.h
@@ -453,34 +453,34 @@ void WriteBlock(TChunkedDataWriter& writer, T& t) {
t.Save(writer);
}
-// Extends TChunkedDataWriter, allowing user to name blocks with arbitrary strings.
-class TNamedChunkedDataWriter: public TChunkedDataWriter {
+// Extends TChunkedDataWriter, allowing user to name blocks with arbitrary strings.
+class TNamedChunkedDataWriter: public TChunkedDataWriter {
public:
TNamedChunkedDataWriter(IOutputStream& slave);
~TNamedChunkedDataWriter() override;
-
+
// Start a new unnamed block, overrides TChunkedDataReader::NewBlock().
void NewBlock();
-
+
// Start a new block with given name (possibly empty, in which case block is unnamed).
// Throws an exception if name is a duplicate.
void NewBlock(const TString& name);
-
+
void WriteFooter();
-
+
private:
TVector<TString> Names;
THashMap<TString, size_t> NameToIndex;
-};
-
+};
+
class TNamedChunkedDataReader: public TChunkedDataReader {
public:
TNamedChunkedDataReader(const TBlob& blob);
-
+
inline bool HasBlock(const char* name) const {
return NameToIndex.find(name) != NameToIndex.end();
}
-
+
inline size_t GetIndexByName(const char* name) const {
THashMap<TString, size_t>::const_iterator it = NameToIndex.find(name);
if (it == NameToIndex.end())
@@ -488,31 +488,31 @@ public:
else
return it->second;
}
-
+
// Returns number of blocks written to the file by user of TNamedChunkedDataReader.
inline size_t GetBlocksCount() const {
// Last block is for internal usage
return TChunkedDataReader::GetBlocksCount() - 1;
}
-
+
inline const char* GetBlockName(size_t index) const {
Y_ASSERT(index < GetBlocksCount());
return Names[index].data();
}
-
+
inline const void* GetBlockByName(const char* name) const {
return GetBlock(GetIndexByName(name));
}
-
+
inline size_t GetBlockLenByName(const char* name) const {
return GetBlockLen(GetIndexByName(name));
}
-
+
inline TBlob GetBlobByName(const char* name) const {
size_t id = GetIndexByName(name);
return TBlob::NoCopy(GetBlock(id), GetBlockLen(id));
}
-
+
inline bool GetBlobByName(const char* name, TBlob& blob) const {
THashMap<TString, size_t>::const_iterator it = NameToIndex.find(name);
if (it == NameToIndex.end())
@@ -524,7 +524,7 @@ public:
private:
TVector<TString> Names;
THashMap<TString, size_t> NameToIndex;
-};
+};
template <class T>
struct TSaveLoadVectorNonPodElement {