cmil::tInputIndex< T > Class Template Reference

#include <InputDevice.h>

Inheritance diagram for cmil::tInputIndex< T >:

Inheritance graph
[legend]
Collaboration diagram for cmil::tInputIndex< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 tInputIndex (unsigned int size)
 tInputIndex ()
bool addData (InputData *input)
void fill_indexes (const std::string &device_name, const std::string &input_name, unsigned int num, DeviceInputs &inputs)
unsigned int getSize () const
bool setData (unsigned int i, InputData *input)
 This particular member must be inline for some compilers.
T * getData (unsigned int i) const
std::string getName () const
bool operator== (const tInputIndex< T > &other) const

Private Attributes

std::vector< T * > m_index

Detailed Description

template<typename T>
class cmil::tInputIndex< T >

Definition at line 82 of file InputDevice.h.


Constructor & Destructor Documentation

template<typename T>
cmil::tInputIndex< T >::tInputIndex ( unsigned int  size  )  [inline]

Definition at line 84 of file InputDevice.h.

00084 : m_index(size, NULL) {}; 

template<typename T>
cmil::tInputIndex< T >::tInputIndex (  )  [inline]

Definition at line 85 of file InputDevice.h.

00085 {};


Member Function Documentation

template<typename T>
bool cmil::tInputIndex< T >::addData ( InputData input  ) 

Definition at line 319 of file InputDevice.cpp.

References Logger::log_error(), and cmil::tInputIndex< T >::m_index.

Referenced by cmil::tInputIndex< T >::fill_indexes().

00319                                                                      {
00320     T* tmp_input_type;  
00321 
00322     if(!input) {
00323       log_error("addData(input) failed to add due to null input passed.");
00324       return false;
00325     }
00326     if ( (tmp_input_type = dynamic_cast<T*>(input)) != 0 ) {
00327       m_index.push_back(tmp_input_type);
00328       return true;
00329     }
00330     else {
00331       log_error("addData(input) failed to add due to casting failure.");
00332       return false;
00333     }
00334   } 

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T>
void cmil::tInputIndex< T >::fill_indexes ( const std::string &  device_name,
const std::string &  input_name,
unsigned int  num,
DeviceInputs inputs 
)

Definition at line 336 of file InputDevice.cpp.

References cmil::DeviceInputs::add(), cmil::tInputIndex< T >::addData(), and cmil::tInputIndex< T >::getData().

00339                                                                           {
00340 
00341     std::ostringstream numeral_ss;
00342     T* tmp_input;
00343 
00344     for(unsigned int i = 0; i < num; ++i) {
00345       numeral_ss << input_name << i;
00346       tmp_input = new T(numeral_ss.str());
00347 
00348       inputs.add(device_name, tmp_input);
00349 
00350       addData(tmp_input);
00351 
00352       numeral_ss.str("");
00353     }
00354 
00355     InputData *input_d = NULL;
00356 
00357     for(unsigned int i = 0; i < num; ++i) {
00358       numeral_ss << input_name << i;
00359       input_d = getData(i);
00360       //std::cout << "input named: " << input_d->getName() << " stored in data indexed as:" << numeral_ss.str() <<   std::endl;
00361       numeral_ss.str("");
00362     }
00363   }

Here is the call graph for this function:

template<typename T>
T * cmil::tInputIndex< T >::getData ( unsigned int  i  )  const

Definition at line 369 of file InputDevice.cpp.

References cmil::tInputIndex< T >::m_index.

Referenced by cmil::tInputIndex< T >::fill_indexes().

00369                                                                        {
00370     if(i <= m_index.size())
00371       return m_index[i];
00372     return NULL;
00373   }

Here is the caller graph for this function:

template<typename T>
std::string cmil::tInputIndex< T >::getName (  )  const [virtual]

Implements Logger.

Definition at line 375 of file InputDevice.cpp.

00375                                                                 {
00376     return "tInputIndex";
00377   }

template<typename T>
unsigned int cmil::tInputIndex< T >::getSize (  )  const

Definition at line 365 of file InputDevice.cpp.

References cmil::tInputIndex< T >::m_index.

00365                                                                    {
00366     return m_index.size();
00367   }

template<typename T>
bool cmil::tInputIndex< T >::operator== ( const tInputIndex< T > &  other  )  const

Definition at line 379 of file InputDevice.cpp.

References cmil::tInputIndex< T >::m_index.

00379                                                                                          {
00380     if(m_index.size() != other.m_index.size())
00381       return false;
00382     else 
00383       for(unsigned int i = 0 ; i < m_index.size() ; ++i) 
00384         if( typeid(*(m_index[i])) != typeid(*(other.m_index[i])) ) 
00385           return false;
00386 
00387     return true;
00388   }

template<typename T>
bool cmil::tInputIndex< T >::setData ( unsigned int  i,
InputData input 
) [inline]

This particular member must be inline for some compilers.

Definition at line 95 of file InputDevice.h.

00095                                                      {
00096         T* tmp_input_type;  
00097 
00098         if(m_index.size() >= i)
00099           if ( (tmp_input_type = dynamic_cast<T*>(input)) != 0 ) {
00100             if(m_index[i]) {
00101               log_error("setData() : InputData already present at key index value;  memory will be leaked.");
00102               delete input;
00103 
00104               return false;
00105             }
00106             else
00107               m_index[i] = tmp_input_type;
00108           }
00109           else
00110             return false;
00111 
00112         return true;
00113       }


Member Data Documentation

template<typename T>
std::vector<T* > cmil::tInputIndex< T >::m_index [private]

Definition at line 122 of file InputDevice.h.

Referenced by cmil::tInputIndex< T >::addData(), cmil::tInputIndex< T >::getData(), cmil::tInputIndex< T >::getSize(), cmil::tInputIndex< T >::operator==(), and cmil::tInputIndex< cmil::Hat >::setData().


The documentation for this class was generated from the following files:
(c) 2006-2007 John P. Feltz
Generated on Wed Jul 25 16:08:03 2007 for Common Media Input Layer by doxygen 1.4.7

SourceForge.net Logo