diff options
author | Marcus Müller <mmueller@gnuradio.org> | 2019-08-07 21:45:12 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2019-08-09 23:04:28 +0200 |
commit | f7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch) | |
tree | e09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-blocks/lib/file_descriptor_source_impl.cc | |
parent | 78431dc6941e3acc67c858277dfe4a0ed583643c (diff) |
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-blocks/lib/file_descriptor_source_impl.cc')
-rw-r--r-- | gr-blocks/lib/file_descriptor_source_impl.cc | 175 |
1 files changed, 86 insertions, 89 deletions
diff --git a/gr-blocks/lib/file_descriptor_source_impl.cc b/gr-blocks/lib/file_descriptor_source_impl.cc index 575681ba9b..de47bb85a3 100644 --- a/gr-blocks/lib/file_descriptor_source_impl.cc +++ b/gr-blocks/lib/file_descriptor_source_impl.cc @@ -40,117 +40,114 @@ #endif namespace gr { - namespace blocks { - - file_descriptor_source::sptr - file_descriptor_source::make(size_t itemsize, int fd, bool repeat) - { - return gnuradio::get_initial_sptr - (new file_descriptor_source_impl(itemsize, fd, repeat)); - } - - file_descriptor_source_impl::file_descriptor_source_impl(size_t itemsize, - int fd, - bool repeat) - : sync_block("file_descriptor_source", - io_signature::make(0, 0, 0), - io_signature::make(1, 1, itemsize)), - d_itemsize(itemsize), d_fd(fd), d_repeat(repeat), - d_residue(new unsigned char[itemsize]), d_residue_len (0) - { - } - - file_descriptor_source_impl::~file_descriptor_source_impl() - { - close(d_fd); - delete [] d_residue; - } - - int - file_descriptor_source_impl::read_items(char *buf, int nitems) - { - assert(nitems > 0); - assert(d_residue_len < d_itemsize); - - int nbytes_read = 0; - - if(d_residue_len > 0) { +namespace blocks { + +file_descriptor_source::sptr +file_descriptor_source::make(size_t itemsize, int fd, bool repeat) +{ + return gnuradio::get_initial_sptr( + new file_descriptor_source_impl(itemsize, fd, repeat)); +} + +file_descriptor_source_impl::file_descriptor_source_impl(size_t itemsize, + int fd, + bool repeat) + : sync_block("file_descriptor_source", + io_signature::make(0, 0, 0), + io_signature::make(1, 1, itemsize)), + d_itemsize(itemsize), + d_fd(fd), + d_repeat(repeat), + d_residue(new unsigned char[itemsize]), + d_residue_len(0) +{ +} + +file_descriptor_source_impl::~file_descriptor_source_impl() +{ + close(d_fd); + delete[] d_residue; +} + +int file_descriptor_source_impl::read_items(char* buf, int nitems) +{ + assert(nitems > 0); + assert(d_residue_len < d_itemsize); + + int nbytes_read = 0; + + if (d_residue_len > 0) { memcpy(buf, d_residue, d_residue_len); nbytes_read = d_residue_len; d_residue_len = 0; - } + } - int r = read(d_fd, buf + nbytes_read, - nitems * d_itemsize - nbytes_read); - if(r <= 0) { + int r = read(d_fd, buf + nbytes_read, nitems * d_itemsize - nbytes_read); + if (r <= 0) { handle_residue(buf, nbytes_read); return r; - } + } - r = handle_residue(buf, r + nbytes_read); + r = handle_residue(buf, r + nbytes_read); - if(r == 0) // block until we get something + if (r == 0) // block until we get something return read_items(buf, nitems); - return r; - } + return r; +} - int - file_descriptor_source_impl::handle_residue(char *buf, int nbytes_read) - { - assert(nbytes_read >= 0); - int nitems_read = nbytes_read / d_itemsize; - d_residue_len = nbytes_read % d_itemsize; - if(d_residue_len > 0) { +int file_descriptor_source_impl::handle_residue(char* buf, int nbytes_read) +{ + assert(nbytes_read >= 0); + int nitems_read = nbytes_read / d_itemsize; + d_residue_len = nbytes_read % d_itemsize; + if (d_residue_len > 0) { // fprintf (stderr, "handle_residue: %d\n", d_residue_len); memcpy(d_residue, buf + nbytes_read - d_residue_len, d_residue_len); - } - return nitems_read; } + return nitems_read; +} - int - file_descriptor_source_impl::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - assert(noutput_items > 0); +int file_descriptor_source_impl::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + assert(noutput_items > 0); - char *o = (char*)output_items[0]; - int nread = 0; + char* o = (char*)output_items[0]; + int nread = 0; - while(1) { + while (1) { int r = read_items(o, noutput_items - nread); - if(r == -1) { - if(errno == EINTR) - continue; - else { - perror("file_descriptor_source[read]"); - return -1; - } - } - else if(r == 0) { // end of file - if(!d_repeat) - break; - else { - flush_residue(); - if(lseek(d_fd, 0, SEEK_SET) == -1) { - perror("file_descriptor_source[lseek]"); - return -1; + if (r == -1) { + if (errno == EINTR) + continue; + else { + perror("file_descriptor_source[read]"); + return -1; } - } - } - else { - o += r * d_itemsize; - nread += r; - break; + } else if (r == 0) { // end of file + if (!d_repeat) + break; + else { + flush_residue(); + if (lseek(d_fd, 0, SEEK_SET) == -1) { + perror("file_descriptor_source[lseek]"); + return -1; + } + } + } else { + o += r * d_itemsize; + nread += r; + break; } - } + } - if(nread == 0) // EOF + if (nread == 0) // EOF return -1; - return nread; - } + return nread; +} - } /* namespace blocks */ +} /* namespace blocks */ } /* namespace gr */ |