GNU Radio 3.7.1 C++ API
vector_map.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2012,2013 Free Software Foundation, Inc.
4
*
5
* This file is part of GNU Radio
6
*
7
* GNU Radio 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
* GNU Radio 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 GNU Radio; 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
#ifndef INCLUDED_GR_VECTOR_MAP_H
24
#define INCLUDED_GR_VECTOR_MAP_H
25
26
#include <
gnuradio/blocks/api.h
>
27
#include <vector>
28
#include <
gnuradio/sync_block.h
>
29
30
namespace
gr {
31
namespace
blocks {
32
33
/*!
34
* \brief Maps elements from a set of input vectors to a set of output vectors.
35
* \ingroup stream_operators_blk
36
*
37
* \details
38
* If in[i] is the input vector in the i'th stream then the output
39
* vector in the j'th stream is:
40
*
41
* out[j][k] = in[mapping[j][k][0]][mapping[j][k][1]]
42
*
43
* That is mapping is of the form (out_stream1_mapping,
44
* out_stream2_mapping, ...) and out_stream1_mapping is of the
45
* form (element1_mapping, element2_mapping, ...) and
46
* element1_mapping is of the form (in_stream, in_element).
47
*/
48
class
BLOCKS_API
vector_map
:
virtual
public
sync_block
49
{
50
public
:
51
// gr::blocks::vector_map::sptr
52
typedef
boost::shared_ptr<vector_map>
sptr
;
53
54
/*!
55
* Build a vector map block.
56
*
57
* \param item_size (integer) size of vector elements
58
* \param in_vlens (vector of integers) number of elements in each
59
* input vector
60
* \param mapping (vector of vectors of vectors of integers) how to
61
* map elements from input to output vectors
62
*/
63
static
sptr
make(
size_t
item_size, std::vector<size_t> in_vlens,
64
std::vector< std::vector< std::vector<size_t> > > mapping);
65
66
virtual
void
set_mapping(std::vector< std::vector< std::vector<size_t> > > mapping) = 0;
67
};
68
69
}
/* namespace blocks */
70
}
/* namespace gr */
71
72
#endif
/* INCLUDED_GR_VECTOR_MAP_H */
gr-blocks
include
gnuradio
blocks
vector_map.h
Generated on Wed Oct 2 2013 01:55:47 for GNU Radio 3.7.1 C++ API by
1.8.4