trellis_permutation.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef INCLUDED_TRELLIS_PERMUTATION_H
00025 #define INCLUDED_TRELLIS_PERMUTATION_H
00026
00027 #include <vector>
00028 #include <gr_sync_block.h>
00029
00030 class trellis_permutation;
00031 typedef boost::shared_ptr<trellis_permutation> trellis_permutation_sptr;
00032
00033 trellis_permutation_sptr trellis_make_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES_INOUT);
00034
00041 class trellis_permutation : public gr_sync_block
00042 {
00043 private:
00044 friend trellis_permutation_sptr trellis_make_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES_INOUT);
00045 int d_K;
00046 std::vector<int> d_TABLE;
00047 int d_SYMS_PER_BLOCK;
00048 size_t d_NBYTES_INOUT;
00049 trellis_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES);
00050
00051 public:
00052 int K () const { return d_K; }
00053 const std::vector<int> & TABLE () const { return d_TABLE; }
00054 int SYMS_PER_BLOCK () const { return d_SYMS_PER_BLOCK; }
00055 size_t NBYTES_INOUT () const { return d_NBYTES_INOUT; }
00056
00057 int work (int noutput_items,
00058 gr_vector_const_void_star &input_items,
00059 gr_vector_void_star &output_items);
00060 };
00061
00062 #endif