diff --git a/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.cc b/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.cc index 238867a73b3bd..9bf5d4f6ab687 100644 --- a/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.cc +++ b/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.cc @@ -31,6 +31,8 @@ namespace arrow::matlab::io::ipc::proxy { RecordBatchFileWriter::RecordBatchFileWriter(std::shared_ptr writer) : writer{std::move(writer)} { REGISTER_METHOD(RecordBatchFileWriter, writeBatch); + REGISTER_METHOD(RecordBatchFileWriter, close); + } libmexclass::proxy::MakeResult RecordBatchFileWriter::make( @@ -79,4 +81,12 @@ libmexclass::proxy::MakeResult RecordBatchFileWriter::make( MATLAB_ERROR_IF_NOT_OK_WITH_CONTEXT(writer->WriteRecordBatch(*record_batch), context, "arrow:matlab:writefailed"); } + + void RecordBatchFileWriter::close(libmexclass::proxy::method::Context& context) { + namespace mda = ::matlab::data; + using RecordBatchProxy = ::arrow::matlab::tabular::proxy::RecordBatch; + + MATLAB_ERROR_IF_NOT_OK_WITH_CONTEXT(writer->Close(), context, "arrow:matlab:ipc:close"); + + } } // namespace arrow::matlab::io::ipc::proxy \ No newline at end of file diff --git a/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.h b/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.h index 9052662f628ed..efbba21757de7 100644 --- a/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.h +++ b/matlab/src/cpp/arrow/matlab/io/ipc/proxy/record_batch_file_writer.h @@ -34,8 +34,11 @@ class RecordBatchFileWriter : public libmexclass::proxy::Proxy { protected: void writeBatch(libmexclass::proxy::method::Context& context); - + + void close(libmexclass::proxy::method::Context& context); + std::shared_ptr writer; + }; } // namespace arrow::matlab::io::ipc::proxy \ No newline at end of file diff --git a/matlab/src/matlab/+arrow/+io/+ipc/RecordBatchFileWriter.m b/matlab/src/matlab/+arrow/+io/+ipc/RecordBatchFileWriter.m index f11a887ec9ede..a1daf0931f9df 100644 --- a/matlab/src/matlab/+arrow/+io/+ipc/RecordBatchFileWriter.m +++ b/matlab/src/matlab/+arrow/+io/+ipc/RecordBatchFileWriter.m @@ -46,6 +46,13 @@ function write(obj, recordBatch) obj.Proxy.writeBatch(args); end + function close(obj) + arguments + obj(1, 1) arrow.io.ipc.RecordBatchFileWriter + end + obj.Proxy.close(); + end + end end \ No newline at end of file