H
hyderabadblues
I have created a timer class which is a template, but when I tried to
to create an object , I am getting following compile time error
template<class T>class prefetcher_tclTimer
{
typedef tVoid (T::*PMEMFUNC)();
private:
T* m_poClient; // Pointer to calling class
PMEMFUNC m_pMemFunc;
tU32 _u32Timeout;
tU32 _u32TimerInterval;
static void vOnTimeout( tPVoid arg );
tclTrace *m_poTrace;
public:
// Public functions
// connstructor / destructor
prefetcher_tclTimer ( );
~prefetcher_tclTimer( );
tBool Create( tU32 u32TimerMSec, tU32 u32TimerIntervalMSec,
T* _poClient, PMEMFUNC _pMemFunc );
tBool bStart( );
tBool bReset( );
tBool bStop ( );
};
I have defined the function bStart as
tBool prefetcher_tclTimer::bStart( )
{
tS32 s32RetVal;
if( _phTimerHandle != INVALID_HANDLE )
{
m_poTrace->vInfo(" prefetcher_tclTimer::bStart "):
s32RetVal = s32TimerSetTime( _phTimerHandle, _u32Timeout,
_u32TimerInterval );
if( s32RetVal != OK )
{
m_poTrace->vInfo("prefetcher_tclTimer::bStart( ), Timer Set
Failed");
}
}
else
{
m_poTrace->vInfo("prefetcher_tclTimer::bStart( ), Invalid Timer
Handler");
s32RetVal = FALSE;
}
return (tBool)s32RetVal;
}
I am getting an error as when tried to to compile it, I am creating
the template object with parameter tclUsbDataBuffer
Error: L6218E: Undefined symbol
prefetcher_tclTimer<tclUsbDataBuffer>::bStart() (referred from
usbDataBuffer.o).
to create an object , I am getting following compile time error
template<class T>class prefetcher_tclTimer
{
typedef tVoid (T::*PMEMFUNC)();
private:
T* m_poClient; // Pointer to calling class
PMEMFUNC m_pMemFunc;
tU32 _u32Timeout;
tU32 _u32TimerInterval;
static void vOnTimeout( tPVoid arg );
tclTrace *m_poTrace;
public:
// Public functions
// connstructor / destructor
prefetcher_tclTimer ( );
~prefetcher_tclTimer( );
tBool Create( tU32 u32TimerMSec, tU32 u32TimerIntervalMSec,
T* _poClient, PMEMFUNC _pMemFunc );
tBool bStart( );
tBool bReset( );
tBool bStop ( );
};
I have defined the function bStart as
tBool prefetcher_tclTimer::bStart( )
{
tS32 s32RetVal;
if( _phTimerHandle != INVALID_HANDLE )
{
m_poTrace->vInfo(" prefetcher_tclTimer::bStart "):
s32RetVal = s32TimerSetTime( _phTimerHandle, _u32Timeout,
_u32TimerInterval );
if( s32RetVal != OK )
{
m_poTrace->vInfo("prefetcher_tclTimer::bStart( ), Timer Set
Failed");
}
}
else
{
m_poTrace->vInfo("prefetcher_tclTimer::bStart( ), Invalid Timer
Handler");
s32RetVal = FALSE;
}
return (tBool)s32RetVal;
}
I am getting an error as when tried to to compile it, I am creating
the template object with parameter tclUsbDataBuffer
Error: L6218E: Undefined symbol
prefetcher_tclTimer<tclUsbDataBuffer>::bStart() (referred from
usbDataBuffer.o).