diff options
Diffstat (limited to 'gr-blocks/lib/file_sink_impl.cc')
-rw-r--r-- | gr-blocks/lib/file_sink_impl.cc | 81 |
1 files changed, 37 insertions, 44 deletions
diff --git a/gr-blocks/lib/file_sink_impl.cc b/gr-blocks/lib/file_sink_impl.cc index ab36dcd4e6..0f49138359 100644 --- a/gr-blocks/lib/file_sink_impl.cc +++ b/gr-blocks/lib/file_sink_impl.cc @@ -29,62 +29,55 @@ #include <stdexcept> namespace gr { - namespace blocks { +namespace blocks { - file_sink::sptr - file_sink::make(size_t itemsize, const char *filename, bool append) - { - return gnuradio::get_initial_sptr - (new file_sink_impl(itemsize, filename, append)); - } +file_sink::sptr file_sink::make(size_t itemsize, const char* filename, bool append) +{ + return gnuradio::get_initial_sptr(new file_sink_impl(itemsize, filename, append)); +} - file_sink_impl::file_sink_impl(size_t itemsize, const char *filename, bool append) - : sync_block("file_sink", - io_signature::make(1, 1, itemsize), - io_signature::make(0, 0, 0)), - file_sink_base(filename, true, append), - d_itemsize(itemsize) - { - } +file_sink_impl::file_sink_impl(size_t itemsize, const char* filename, bool append) + : sync_block( + "file_sink", io_signature::make(1, 1, itemsize), io_signature::make(0, 0, 0)), + file_sink_base(filename, true, append), + d_itemsize(itemsize) +{ +} - file_sink_impl::~file_sink_impl() - { - } +file_sink_impl::~file_sink_impl() {} - int - file_sink_impl::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - char *inbuf = (char*)input_items[0]; - int nwritten = 0; +int file_sink_impl::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + char* inbuf = (char*)input_items[0]; + int nwritten = 0; - do_update(); // update d_fp is reqd + do_update(); // update d_fp is reqd - if(!d_fp) - return noutput_items; // drop output on the floor + if (!d_fp) + return noutput_items; // drop output on the floor - while(nwritten < noutput_items) { + while (nwritten < noutput_items) { int count = fwrite(inbuf, d_itemsize, noutput_items - nwritten, d_fp); - if(count == 0) { - if(ferror(d_fp)) { - std::stringstream s; - s << "file_sink write failed with error " << fileno(d_fp) << std::endl; - throw std::runtime_error(s.str()); - } - else { // is EOF - break; - } + if (count == 0) { + if (ferror(d_fp)) { + std::stringstream s; + s << "file_sink write failed with error " << fileno(d_fp) << std::endl; + throw std::runtime_error(s.str()); + } else { // is EOF + break; + } } nwritten += count; inbuf += count * d_itemsize; - } + } - if(d_unbuffered) - fflush (d_fp); + if (d_unbuffered) + fflush(d_fp); - return nwritten; - } + return nwritten; +} - } /* namespace blocks */ +} /* namespace blocks */ } /* namespace gr */ |