@@ -116,6 +116,7 @@ namespace xt
116116 xchunk_store_manager& operator =(xchunk_store_manager&&) = default ;
117117
118118 const shape_type& shape () const noexcept ;
119+ const shape_type& chunk_shape () const noexcept ;
119120
120121 template <class ... Idxs>
121122 reference operator ()(Idxs... idxs);
@@ -149,8 +150,8 @@ namespace xt
149150 IP& get_index_path ();
150151 void flush ();
151152
152- template <class C >
153- void configure_format (C& config );
153+ template <class FC , class IOC >
154+ void configure (FC& format_config, IOC& io_config );
154155
155156 template <class I >
156157 reference map_file_array (I first, I last);
@@ -179,6 +180,7 @@ namespace xt
179180 using index_pool_type = std::vector<shape_type>;
180181
181182 shape_type m_shape;
183+ shape_type m_chunk_shape;
182184 chunk_pool_type m_chunk_pool;
183185 index_pool_type m_index_pool;
184186 std::size_t m_unload_index;
@@ -318,6 +320,7 @@ namespace xt
318320 std::size_t pool_size,
319321 layout_type chunk_memory_layout)
320322 : m_shape(shape)
323+ , m_chunk_shape(chunk_shape)
321324 , m_unload_index(0u )
322325 {
323326 initialize (shape, chunk_shape, directory, false , 0 , pool_size, chunk_memory_layout);
@@ -332,6 +335,7 @@ namespace xt
332335 const T& init_value,
333336 layout_type chunk_memory_layout)
334337 : m_shape(shape)
338+ , m_chunk_shape(chunk_shape)
335339 , m_unload_index(0u )
336340 {
337341 initialize (shape, chunk_shape, directory, true , init_value, pool_size, chunk_memory_layout);
@@ -375,6 +379,12 @@ namespace xt
375379 return m_shape;
376380 }
377381
382+ template <class EC , class IP >
383+ inline auto xchunk_store_manager<EC, IP>::chunk_shape() const noexcept -> const shape_type&
384+ {
385+ return m_chunk_shape;
386+ }
387+
378388 template <class EC , class IP >
379389 template <class ... Idxs>
380390 inline auto xchunk_store_manager<EC, IP>::operator ()(Idxs... idxs) -> reference
@@ -474,12 +484,12 @@ namespace xt
474484 }
475485
476486 template <class EC , class IP >
477- template <class C >
478- void xchunk_store_manager<EC, IP>::configure_format(C& config )
487+ template <class FC , class IOC >
488+ void xchunk_store_manager<EC, IP>::configure(FC& format_config, IOC& io_config )
479489 {
480490 for (auto & chunk: m_chunk_pool)
481491 {
482- chunk.configure_format (config );
492+ chunk.configure (format_config, io_config );
483493 }
484494 }
485495
0 commit comments