improved dll interface

This commit is contained in:
Jeff Hill
2002-03-22 02:03:18 +00:00
parent 04b51375f3
commit 75b572be78
11 changed files with 63 additions and 61 deletions
+5 -5
View File
@@ -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;
};
-9
View File
@@ -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 ()
{
}
-1
View File
@@ -27,7 +27,6 @@ public:
void show ( unsigned level ) const;
class invalidSemaphore {}; /* exception */
class noMemory {}; /* exception */
private:
epicsEvent ( const epicsEvent & );
epicsEvent & operator = ( const epicsEvent & );
-1
View File
@@ -22,7 +22,6 @@ public:
void unlock ();
void show ( unsigned level ) const;
class noMemory {}; // exception
class invalidSemaphore {}; // exception
private:
epicsMutexId id;
+1
View File
@@ -12,6 +12,7 @@
#define epicsExportSharedSymbols
#include "epicsThread.h"
epicsThreadRunable::~epicsThreadRunable () {}
void epicsThreadRunable::stop() {};
void epicsThreadRunable::show(unsigned int) const {};
+4 -3
View File
@@ -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 {
+39
View File
@@ -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 (&current);
if (status) {
throwWithLocation ( unableToFetchCurrentTime () );
}
return epicsTime (current);
}
epicsTime epicsTime::getEvent (const epicsTimeEvent &event)
{
epicsTimeStamp current;
int status;
status = epicsTimeGetEvent (&current, event.eventNumber);
if (status) {
throwWithLocation ( unableToFetchCurrentTime () );
}
return epicsTime (current);
}
void epicsTime::synchronize () {} // depricated
//
// operator time_t_wrapper ()
//
-39
View File
@@ -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 (&current);
if (status) {
throwWithLocation ( unableToFetchCurrentTime () );
}
return epicsTime (current);
}
inline epicsTime epicsTime::getEvent (const epicsTimeEvent &event)
{
epicsTimeStamp current;
int status;
status = epicsTimeGetEvent (&current, 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);
+2
View File
@@ -41,6 +41,8 @@ epicsTimer::~epicsTimer () {}
epicsTimerQueueNotify::~epicsTimerQueueNotify () {}
epicsTimerNotify::~epicsTimerNotify () {}
void epicsTimerNotify::show ( unsigned /* level */ ) const {}
epicsTimerForC::epicsTimerForC ( timerQueue &queue, epicsTimerCallback pCBIn, void *pPrivateIn ) :
+3 -3
View File
@@ -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