ccsoft  0.0.0
Convolutional codes library with soft decision decoding
ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag > Class Template Reference

An edge of the code tree. More...

#include <CC_TreeEdge.h>

Collaboration diagram for ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >:

List of all members.

Public Member Functions

 CC_TreeEdge (unsigned int _id, const T_IOSymbol &_in_symbol, const T_IOSymbol &_out_symbol, float _metric, CC_TreeNode< T_IOSymbol, T_Register, T_EdgeTag > *_p_origin)
 ~CC_TreeEdge ()
void set_p_destination (CC_TreeNode< T_IOSymbol, T_Register, T_EdgeTag > *_p_destination)
const T_IOSymbol & get_in_symbol () const
const T_IOSymbol & get_out_symbol () const
float get_metric () const
CC_TreeNode< T_IOSymbol,
T_Register, T_EdgeTag > * 
get_p_origin ()
CC_TreeNode< T_IOSymbol,
T_Register, T_EdgeTag > * 
get_p_destination ()
const T_EdgeTag & get_edge_tag () const
T_EdgeTag & get_edge_tag ()

Protected Attributes

unsigned int id
 Edge's unique ID.
T_IOSymbol in_symbol
 Input symbol corresponding to the edge.
T_IOSymbol out_symbol
 Output symbol corresponding to the edge.
float metric
 Metric of the edge.
CC_TreeNode< T_IOSymbol,
T_Register, T_EdgeTag > * 
p_origin
 Pointer to the edge origin node.
CC_TreeNode< T_IOSymbol,
T_Register, T_EdgeTag > * 
p_destination
 Pointer to the edge destination node.
T_EdgeTag edge_tag
 Optional and versatile class to tag the edge.

Detailed Description

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
class ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >

An edge of the code tree.

Template Parameters:
T_IOSymbolType of the input and output symbols
T_RegisterType of the encoder internal registers
T_EdgeTagType of the edge tag

Constructor & Destructor Documentation

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::CC_TreeEdge ( unsigned int  _id,
const T_IOSymbol &  _in_symbol,
const T_IOSymbol &  _out_symbol,
float  _metric,
CC_TreeNode< T_IOSymbol, T_Register, T_EdgeTag > *  _p_origin 
) [inline]

Constructor

Parameters:
_idUnique ID of the edge
_in_symbolInput symbol corresponding to the edge
_out_symbolOutput symbol corresponding to the edge
_metricMetric of the edge
_p_originPointer to the edge origin node
                                                                       :
                id(_id),
                in_symbol(_in_symbol),
                out_symbol(_out_symbol),
                metric(_metric),
                p_origin(_p_origin),
                p_destination(0)
    {}
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::~CC_TreeEdge ( ) [inline]

Destructor. Destroys the destination node

    {
        if (p_destination)
        {
            delete p_destination;
            p_destination = 0;
        }
    }

Member Function Documentation

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
const T_EdgeTag& ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_edge_tag ( ) const [inline]

R/O reference to edge tag

    {
        return edge_tag;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
T_EdgeTag& ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_edge_tag ( ) [inline]

R/W reference to edge tag

    {
        return edge_tag;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
const T_IOSymbol& ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_in_symbol ( ) const [inline]

Input symbol getter

    {
        return in_symbol;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
float ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_metric ( ) const [inline]

Metric getter

    {
        return metric;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
const T_IOSymbol& ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_out_symbol ( ) const [inline]

Output symbol getter

    {
        return out_symbol;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
CC_TreeNode<T_IOSymbol, T_Register, T_EdgeTag>* ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_p_destination ( ) [inline]

Destination pointer getter

    {
        return p_destination;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
CC_TreeNode<T_IOSymbol, T_Register, T_EdgeTag>* ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::get_p_origin ( ) [inline]

Origin pointer getter

    {
        return p_origin;
    }
template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
void ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::set_p_destination ( CC_TreeNode< T_IOSymbol, T_Register, T_EdgeTag > *  _p_destination) [inline]

Edge node destination setter

    {
        p_destination = _p_destination;
    }

Member Data Documentation

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
T_EdgeTag ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::edge_tag [protected]

Optional and versatile class to tag the edge.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
unsigned int ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::id [protected]

Edge's unique ID.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
T_IOSymbol ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::in_symbol [protected]

Input symbol corresponding to the edge.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
float ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::metric [protected]

Metric of the edge.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
T_IOSymbol ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::out_symbol [protected]

Output symbol corresponding to the edge.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
CC_TreeNode<T_IOSymbol, T_Register, T_EdgeTag>* ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::p_destination [protected]

Pointer to the edge destination node.

template<typename T_IOSymbol, typename T_Register, typename T_EdgeTag>
CC_TreeNode<T_IOSymbol, T_Register, T_EdgeTag>* ccsoft::CC_TreeEdge< T_IOSymbol, T_Register, T_EdgeTag >::p_origin [protected]

Pointer to the edge origin node.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines