From 15054341d8d9a36cb68042f88624b6aed4ae1b25 Mon Sep 17 00:00:00 2001 From: Smith Cruise Date: Sat, 21 Jun 2025 10:44:15 +0800 Subject: [PATCH 1/3] [C++] Add get_metadata api in DataFileReaderBase Signed-off-by: Smith Cruise --- lang/c++/include/avro/DataFile.hh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lang/c++/include/avro/DataFile.hh b/lang/c++/include/avro/DataFile.hh index 8ff5d88c614..9c9eac470f5 100644 --- a/lang/c++/include/avro/DataFile.hh +++ b/lang/c++/include/avro/DataFile.hh @@ -54,6 +54,11 @@ const int SyncSize = 16; */ typedef std::array DataFileSync; +/** + * The avro metadata. + */ +typedef std::map> Metadata; + /** * Type-independent portion of DataFileWriter. * At any given point in time, at most one file can be written using @@ -71,8 +76,6 @@ class AVRO_DECL DataFileWriterBase { const DataFileSync sync_; int64_t objectCount_; - typedef std::map> Metadata; - Metadata metadata_; int64_t lastSync_; @@ -212,7 +215,6 @@ class AVRO_DECL DataFileReaderBase { ValidSchema dataSchema_; DecoderPtr dataDecoder_; std::unique_ptr dataStream_; - typedef std::map> Metadata; Metadata metadata_; DataFileSync sync_{}; @@ -306,6 +308,11 @@ public: * Return the last synchronization point before our current position. */ int64_t previousSync() const; + + /** + * Return avro's metadata + */ + Metadata &metadata() { return metadata_; } }; /** From 3d1b1fe38208a0a115f76be9d096170a4ad25795 Mon Sep 17 00:00:00 2001 From: Smith Cruise Date: Sun, 22 Jun 2025 14:54:42 +0800 Subject: [PATCH 2/3] improve Signed-off-by: Smith Cruise --- lang/c++/include/avro/DataFile.hh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lang/c++/include/avro/DataFile.hh b/lang/c++/include/avro/DataFile.hh index 9c9eac470f5..dba82a50514 100644 --- a/lang/c++/include/avro/DataFile.hh +++ b/lang/c++/include/avro/DataFile.hh @@ -54,11 +54,6 @@ const int SyncSize = 16; */ typedef std::array DataFileSync; -/** - * The avro metadata. - */ -typedef std::map> Metadata; - /** * Type-independent portion of DataFileWriter. * At any given point in time, at most one file can be written using @@ -76,6 +71,8 @@ class AVRO_DECL DataFileWriterBase { const DataFileSync sync_; int64_t objectCount_; + typedef std::map> Metadata; + Metadata metadata_; int64_t lastSync_; @@ -215,6 +212,7 @@ class AVRO_DECL DataFileReaderBase { ValidSchema dataSchema_; DecoderPtr dataDecoder_; std::unique_ptr dataStream_; + typedef std::map> Metadata; Metadata metadata_; DataFileSync sync_{}; @@ -312,7 +310,7 @@ public: /** * Return avro's metadata */ - Metadata &metadata() { return metadata_; } + const Metadata &metadata() { return metadata_; } }; /** From e1fc6a03a96c795a7c3a52673dc7f2c7c2c419f3 Mon Sep 17 00:00:00 2001 From: Smith Cruise Date: Sun, 22 Jun 2025 14:56:06 +0800 Subject: [PATCH 3/3] improve Signed-off-by: Smith Cruise --- lang/c++/include/avro/DataFile.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/c++/include/avro/DataFile.hh b/lang/c++/include/avro/DataFile.hh index dba82a50514..bcb512eaf47 100644 --- a/lang/c++/include/avro/DataFile.hh +++ b/lang/c++/include/avro/DataFile.hh @@ -310,7 +310,7 @@ public: /** * Return avro's metadata */ - const Metadata &metadata() { return metadata_; } + const Metadata &metadata() const { return metadata_; } }; /**