GNU Radio Manual and C++ API Reference 3.10.5.1
The Free & Open Software Radio Ecosystem
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>
17#include <cstdio>
18
19namespace gr {
20namespace blocks {
21
22/*!
23 * \brief Common base class for file sinks
24 */
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?
37
38protected:
39 file_sink_base(const char* filename, bool is_binary, bool append);
40
41public:
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 */
Common base class for file sinks.
Definition: file_sink_base.h:26
bool d_updated
Definition: file_sink_base.h:30
bool open(const char *filename)
Open filename and begin output to it.
gr::logger_ptr d_base_debug_logger
Definition: file_sink_base.h:36
void close()
Close current output file.
void set_unbuffered(bool unbuffered)
turn on unbuffered writes for slower outputs
FILE * d_fp
Definition: file_sink_base.h:28
bool d_unbuffered
Definition: file_sink_base.h:33
bool d_is_binary
Definition: file_sink_base.h:31
gr::thread::mutex d_mutex
Definition: file_sink_base.h:32
gr::logger_ptr d_base_logger
Definition: file_sink_base.h:35
file_sink_base()
Definition: file_sink_base.h:42
file_sink_base(const char *filename, bool is_binary, bool append)
FILE * d_new_fp
Definition: file_sink_base.h:29
bool d_append
Definition: file_sink_base.h:34
void do_update()
if we've had an update, do it now.
#define BLOCKS_API
Definition: gr-blocks/include/gnuradio/blocks/api.h:18
boost::mutex mutex
Definition: thread.h:37
GNU Radio logging wrapper.
Definition: basic_block.h:29
std::shared_ptr< logger > logger_ptr
Definition: logger.h:225