blob: 31fd7d9476d63b77c4aafd8404d758b9c96cbfa0 [file] [log] [blame]
Roman Khassraf5bd14f22015-06-24 17:59:13 +02001/* -*- c++ -*- */
2/*
3 * @file
Piotr Krysika6268a52017-08-23 16:02:19 +02004 * @author (C) 2015 by Roman Khassraf <rkhassraf@gmail.com>
Roman Khassraf5bd14f22015-06-24 17:59:13 +02005 * @section LICENSE
6 *
7 * Gr-gsm is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * Gr-gsm is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with gr-gsm; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23
24#ifndef INCLUDED_GSM_EXTRACT_IMMEDIATE_ASSIGNMENT_H
25#define INCLUDED_GSM_EXTRACT_IMMEDIATE_ASSIGNMENT_H
26
27#include <grgsm/api.h>
28#include <gnuradio/block.h>
Roman Khassraf95c6f9d2015-07-12 19:02:32 +020029#include <vector>
Roman Khassraf5bd14f22015-06-24 17:59:13 +020030
31namespace gr {
32 namespace gsm {
Roman Khassraf5bd14f22015-06-24 17:59:13 +020033 /*!
34 * \brief <+description of block+>
35 * \ingroup gsm
36 *
37 */
Piotr Krysikaf8ad5d2016-05-29 13:05:48 +020038 class GRGSM_API extract_immediate_assignment : virtual public gr::block
Roman Khassraf5bd14f22015-06-24 17:59:13 +020039 {
40 public:
41 typedef boost::shared_ptr<extract_immediate_assignment> sptr;
42
43 /*!
44 * \brief Return a shared_ptr to a new instance of gsm::extract_immediate_assignment.
45 *
46 * To avoid accidental use of raw pointers, gsm::extract_immediate_assignment's
47 * constructor is in a private implementation
48 * class. gsm::extract_immediate_assignment::make is the public interface for
49 * creating new instances.
50 */
Roman Khassraf1669e932015-07-13 11:18:22 +020051 static sptr make(bool print_immediate_assignments=false, bool ignore_gprs=false, bool unique_references=false);
Roman Khassraf95c6f9d2015-07-12 19:02:32 +020052 virtual std::vector<int> get_frame_numbers() = 0;
53 virtual std::vector<std::string> get_channel_types() = 0;
54 virtual std::vector<int> get_timeslots() = 0;
55 virtual std::vector<int> get_subchannels() = 0;
56 virtual std::vector<int> get_hopping() = 0;
57 virtual std::vector<int> get_maios() = 0;
58 virtual std::vector<int> get_hsns() = 0;
59 virtual std::vector<int> get_arfcns() = 0;
60 virtual std::vector<int> get_timing_advances() = 0;
61 virtual std::vector<std::string> get_mobile_allocations() = 0;
Roman Khassraf5bd14f22015-06-24 17:59:13 +020062 };
63 } // namespace gsm
64} // namespace gr
65
66#endif /* INCLUDED_GSM_EXTRACT_IMMEDIATE_ASSIGNMENT_H */