GNU Radio C++ API Reference: file_sink_base.h Source File

| GNU Radio C++ API Reference 3.10.12.0 The Free & Open Software Radio Ecosystem |

Loading...
Searching...
No Matches
file_sink_base.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2004,2007,2008,2013 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * SPDX-License-Identifier: GPL-3.0-or-later
8 *
9 */
10
11#ifndef INCLUDED_GR_FILE_SINK_BASE_H
12#define INCLUDED_GR_FILE_SINK_BASE_H
13
14#include <gnuradio/blocks/api.h>
15#include <gnuradio/logger.h>
16#include <gnuradio/thread/thread.h>
17#include <cstdio>
18
19namespace gr {
20namespace blocks {
21
22/*!
23 * \brief Common base class for file sinks
24 */
25 class BLOCKS_API file_sink_base
26{
27protected:
28 FILE* d_fp; // current FILE pointer
29 FILE* d_new_fp; // new FILE pointer
30 bool d_updated; // is there a new FILE pointer?
31 bool d_is_binary;
32 gr::thread::mutex d_mutex;
33 bool d_unbuffered;
34 bool d_append;
35 gr::logger_ptr d_base_logger;
36 gr::logger_ptr d_base_debug_logger;
37
38protected:
39 file_sink_base(const char* filename, bool is_binary, bool append);
40
41public:
42 file_sink_base() {}
43 ~file_sink_base();
44
45 /*!
46 * \brief Open filename and begin output to it.
47 */
48 bool open(const char* filename);
49
50 /*!
51 * \brief Close current output file.
52 *
53 * Closes current output file and ignores any output until
54 * open is called to connect to another file.
55 */
56 void close();
57
58 /*!
59 * \brief if we've had an update, do it now.
60 */
61 void do_update();
62
63 /*!
64 * \brief turn on unbuffered writes for slower outputs
65 */
66 void set_unbuffered(bool unbuffered);
67};
68
69} /* namespace blocks */
70} /* namespace gr */
71
72#endif /* INCLUDED_GR_FILE_SINK_BASE_H */
gr::blocks::file_sink_base::d_updated
bool d_updated
Definition file_sink_base.h:30
gr::blocks::file_sink_base::open
bool open(const char *filename)
Open filename and begin output to it.
gr::blocks::file_sink_base::d_base_debug_logger
gr::logger_ptr d_base_debug_logger
Definition file_sink_base.h:36
gr::blocks::file_sink_base::close
void close()
Close current output file.
gr::blocks::file_sink_base::set_unbuffered
void set_unbuffered(bool unbuffered)
turn on unbuffered writes for slower outputs
gr::blocks::file_sink_base::d_fp
FILE * d_fp
Definition file_sink_base.h:28
gr::blocks::file_sink_base::d_unbuffered
bool d_unbuffered
Definition file_sink_base.h:33
gr::blocks::file_sink_base::d_is_binary
bool d_is_binary
Definition file_sink_base.h:31
gr::blocks::file_sink_base::d_mutex
gr::thread::mutex d_mutex
Definition file_sink_base.h:32
gr::blocks::file_sink_base::d_base_logger
gr::logger_ptr d_base_logger
Definition file_sink_base.h:35
gr::blocks::file_sink_base::file_sink_base
file_sink_base()
Definition file_sink_base.h:42
gr::blocks::file_sink_base::~file_sink_base
~file_sink_base()
gr::blocks::file_sink_base::file_sink_base
file_sink_base(const char *filename, bool is_binary, bool append)
gr::blocks::file_sink_base::d_new_fp
FILE * d_new_fp
Definition file_sink_base.h:29
gr::blocks::file_sink_base::d_append
bool d_append
Definition file_sink_base.h:34
gr::blocks::file_sink_base::do_update
void do_update()
if we've had an update, do it now.
api.h
BLOCKS_API
#define BLOCKS_API
Definition gr-blocks/include/gnuradio/blocks/api.h:18
logger.h
gr::blocks
Definition abs_blk.h:20
gr::thread::mutex
boost::mutex mutex
Definition thread.h:37
gr
GNU Radio logging wrapper.
Definition basic_block.h:29
gr::logger_ptr
std::shared_ptr< logger > logger_ptr
Definition logger.h:250
thread.h