improved dll interface
This commit is contained in:
@@ -19,16 +19,16 @@
|
||||
|
||||
#include "shareLib.h"
|
||||
|
||||
class epicsShareClass epicsOnceNotify {
|
||||
class epicsOnceNotify {
|
||||
public:
|
||||
virtual ~epicsOnceNotify ();
|
||||
epicsShareFunc virtual ~epicsOnceNotify ();
|
||||
virtual void initialize () = 0;
|
||||
};
|
||||
|
||||
class epicsShareClass epicsOnce {
|
||||
class epicsOnce {
|
||||
public:
|
||||
static epicsOnce & create ( epicsOnceNotify & notifyIn );
|
||||
virtual ~epicsOnce ();
|
||||
epicsShareFunc static epicsOnce & create ( epicsOnceNotify & notifyIn );
|
||||
virtual ~epicsOnce (); // use destroy
|
||||
virtual void once () = 0;
|
||||
virtual void destroy () = 0;
|
||||
};
|
||||
|
||||
@@ -34,15 +34,6 @@ private:
|
||||
void * factory ();
|
||||
};
|
||||
|
||||
inline epicsSingletonBase::epicsSingletonBase () : pSingleton ( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
inline void * epicsSingletonBase::singletonPointer () const
|
||||
{
|
||||
return this->pSingleton;
|
||||
}
|
||||
|
||||
template < class T >
|
||||
inline epicsSingleton<T>::~epicsSingleton ()
|
||||
{
|
||||
|
||||
@@ -14,6 +14,15 @@
|
||||
|
||||
epicsMutex epicsSingletonBase::mutex;
|
||||
|
||||
epicsSingletonBase::epicsSingletonBase () : pSingleton ( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
void * epicsSingletonBase::singletonPointer () const
|
||||
{
|
||||
return this->pSingleton;
|
||||
}
|
||||
|
||||
epicsSingletonBase::~epicsSingletonBase ()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ public:
|
||||
void show ( unsigned level ) const;
|
||||
|
||||
class invalidSemaphore {}; /* exception */
|
||||
class noMemory {}; /* exception */
|
||||
private:
|
||||
epicsEvent ( const epicsEvent & );
|
||||
epicsEvent & operator = ( const epicsEvent & );
|
||||
|
||||
@@ -22,7 +22,6 @@ public:
|
||||
void unlock ();
|
||||
void show ( unsigned level ) const;
|
||||
|
||||
class noMemory {}; // exception
|
||||
class invalidSemaphore {}; // exception
|
||||
private:
|
||||
epicsMutexId id;
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsThread.h"
|
||||
|
||||
epicsThreadRunable::~epicsThreadRunable () {}
|
||||
void epicsThreadRunable::stop() {};
|
||||
void epicsThreadRunable::show(unsigned int) const {};
|
||||
|
||||
|
||||
@@ -105,11 +105,12 @@ epicsShareFunc void * epicsShareAPI epicsThreadPrivateGet(epicsThreadPrivateId);
|
||||
#include "epicsEvent.h"
|
||||
|
||||
|
||||
class epicsShareClass epicsThreadRunable {
|
||||
class epicsThreadRunable {
|
||||
public:
|
||||
epicsShareFunc virtual ~epicsThreadRunable ();
|
||||
virtual void run() = 0;
|
||||
virtual void stop();
|
||||
virtual void show(unsigned int level) const;
|
||||
epicsShareFunc virtual void stop();
|
||||
epicsShareFunc virtual void show(unsigned int level) const;
|
||||
};
|
||||
|
||||
class epicsShareClass epicsThread {
|
||||
|
||||
@@ -178,6 +178,45 @@ epicsTime::epicsTime (const time_t_wrapper &ansiTimeTicks)
|
||||
this->nSec = static_cast <unsigned long> ( (sec-this->secPastEpoch) * nSecPerSec );
|
||||
}
|
||||
|
||||
epicsTime::epicsTime (const epicsTimeStamp &ts)
|
||||
{
|
||||
this->secPastEpoch = ts.secPastEpoch;
|
||||
this->nSec = ts.nsec;
|
||||
}
|
||||
|
||||
epicsTime::epicsTime () : secPastEpoch(0u), nSec(0u) {}
|
||||
|
||||
epicsTime::epicsTime (const epicsTime &t) :
|
||||
secPastEpoch (t.secPastEpoch), nSec (t.nSec) {}
|
||||
|
||||
epicsTime epicsTime::getCurrent ()
|
||||
{
|
||||
epicsTimeStamp current;
|
||||
int status;
|
||||
|
||||
status = epicsTimeGetCurrent (¤t);
|
||||
if (status) {
|
||||
throwWithLocation ( unableToFetchCurrentTime () );
|
||||
}
|
||||
|
||||
return epicsTime (current);
|
||||
}
|
||||
|
||||
epicsTime epicsTime::getEvent (const epicsTimeEvent &event)
|
||||
{
|
||||
epicsTimeStamp current;
|
||||
int status;
|
||||
|
||||
status = epicsTimeGetEvent (¤t, event.eventNumber);
|
||||
if (status) {
|
||||
throwWithLocation ( unableToFetchCurrentTime () );
|
||||
}
|
||||
|
||||
return epicsTime (current);
|
||||
}
|
||||
|
||||
void epicsTime::synchronize () {} // depricated
|
||||
|
||||
//
|
||||
// operator time_t_wrapper ()
|
||||
//
|
||||
|
||||
@@ -251,45 +251,6 @@ int epicsTime_gmtime ( const time_t *clock, struct tm *result );
|
||||
/* epicsTime inline member functions ,*/
|
||||
#ifdef __cplusplus
|
||||
|
||||
inline epicsTime::epicsTime (const epicsTimeStamp &ts)
|
||||
{
|
||||
this->secPastEpoch = ts.secPastEpoch;
|
||||
this->nSec = ts.nsec;
|
||||
}
|
||||
|
||||
inline epicsTime epicsTime::getCurrent ()
|
||||
{
|
||||
epicsTimeStamp current;
|
||||
int status;
|
||||
|
||||
status = epicsTimeGetCurrent (¤t);
|
||||
if (status) {
|
||||
throwWithLocation ( unableToFetchCurrentTime () );
|
||||
}
|
||||
|
||||
return epicsTime (current);
|
||||
}
|
||||
|
||||
inline epicsTime epicsTime::getEvent (const epicsTimeEvent &event)
|
||||
{
|
||||
epicsTimeStamp current;
|
||||
int status;
|
||||
|
||||
status = epicsTimeGetEvent (¤t, event.eventNumber);
|
||||
if (status) {
|
||||
throwWithLocation ( unableToFetchCurrentTime () );
|
||||
}
|
||||
|
||||
return epicsTime (current);
|
||||
}
|
||||
|
||||
inline void epicsTime::synchronize () {} // depricated
|
||||
|
||||
inline epicsTime::epicsTime () : secPastEpoch(0u), nSec(0u) {}
|
||||
|
||||
inline epicsTime::epicsTime (const epicsTime &t)
|
||||
: secPastEpoch (t.secPastEpoch), nSec (t.nSec) {}
|
||||
|
||||
inline epicsTime epicsTime::operator - (const double &rhs) const
|
||||
{
|
||||
return epicsTime::operator + (-rhs);
|
||||
|
||||
@@ -41,6 +41,8 @@ epicsTimer::~epicsTimer () {}
|
||||
|
||||
epicsTimerQueueNotify::~epicsTimerQueueNotify () {}
|
||||
|
||||
epicsTimerNotify::~epicsTimerNotify () {}
|
||||
|
||||
void epicsTimerNotify::show ( unsigned /* level */ ) const {}
|
||||
|
||||
epicsTimerForC::epicsTimerForC ( timerQueue &queue, epicsTimerCallback pCBIn, void *pPrivateIn ) :
|
||||
|
||||
@@ -39,13 +39,15 @@ public:
|
||||
bool again;
|
||||
double delay;
|
||||
};
|
||||
epicsShareFunc virtual ~epicsTimerNotify ();
|
||||
// return "noRestart" or "expireStatus ( restart, 30.0 /* sec */ )"
|
||||
virtual expireStatus expire ( const epicsTime & currentTime ) = 0;
|
||||
virtual epicsShareFunc void show ( unsigned int level ) const;
|
||||
epicsShareFunc virtual epicsShareFunc void show ( unsigned int level ) const;
|
||||
};
|
||||
|
||||
class epicsTimer { // X aCC 655
|
||||
public:
|
||||
virtual ~epicsTimer () = 0; // use destroy
|
||||
virtual void destroy () = 0;
|
||||
virtual void start ( epicsTimerNotify &, const epicsTime & ) = 0;
|
||||
virtual void start ( epicsTimerNotify &, double delaySeconds ) = 0;
|
||||
@@ -58,8 +60,6 @@ public:
|
||||
virtual expireInfo getExpireInfo () const = 0;
|
||||
double getExpireDelay ();
|
||||
virtual void show ( unsigned int level ) const = 0;
|
||||
protected:
|
||||
virtual ~epicsTimer () = 0; // use destroy
|
||||
};
|
||||
|
||||
class epicsTimerQueue { // X aCC 655
|
||||
|
||||
Reference in New Issue
Block a user