GNSS-SDR  0.0.21
An Open Source GNSS Software Defined Receiver
signal_source_interface.h
1 /*!
2  * \signal_source_interface.h
3  * \brief Header file of the interface to a signal_source GNSS block.
4  * \author Jim Melton, 2020. jim.melton(at)sncorp.com
5  *
6  * This header file contains the interface to an abstract class for
7  * signal sources. Since all its methods are virtual, this class
8  * cannot be instantiated directly, and a subclass can only be
9  * instantiated directly if all inherited pure virtual methods have
10  * been implemented by that class or a parent class.
11  *
12  * -----------------------------------------------------------------------------
13  *
14  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
15  *
16  * GNSS-SDR is a software defined Global Navigation
17  * Satellite Systems receiver
18  *
19  * This file is part of GNSS-SDR.
20  *
21  * SPDX-License-Identifier: GPL-3.0-or-later
22  *
23  * -----------------------------------------------------------------------------
24  */
25 
26 #ifndef GNSS_SDR_SIGNAL_SOURCE_INTERFACE_H
27 #define GNSS_SDR_SIGNAL_SOURCE_INTERFACE_H
28 
29 #include "gnss_block_interface.h"
30 
31 #if USE_GLOG_AND_GFLAGS
32 #include <glog/logging.h>
33 #else
34 #include <absl/log/log.h>
35 #endif
36 
37 /** \addtogroup Core
38  * \{ */
39 /** \addtogroup GNSS_Block_Interfaces GNSS block interfaces
40  * GNSS block interfaces.
41  * \{ */
42 
43 /*! \brief This abstract class represents an interface to signal_source GNSS block.
44  *
45  * Abstract class for signal sources. Since all its methods are virtual,
46  * this class cannot be instantiated directly, and a subclass can only be
47  * instantiated directly if all inherited pure virtual methods have been
48  * implemented by that class or a parent class.
49  */
50 
52 {
53 public:
54  virtual size_t getRfChannels() const = 0;
55 
56 protected:
58  {
59  VLOG(1) << "SignalSourceInterface: " << this << " ctor";
60  }
61 
62 public: // required for polymorphic destruction
64  {
65  VLOG(1) << "SignalSourceInterface: " << this << " dtor";
66  }
67 };
68 
69 
70 #endif
This abstract class represents an interface to signal_source GNSS block.
This interface represents a GNSS block.
This abstract class represents an interface to GNSS blocks.