48 #include <epicsVersion.h> 51 #define REFTRACE_INCREMENT(counter) ::epics::atomic::increment(counter) 52 #define REFTRACE_DECREMENT(counter) ::epics::atomic::decrement(counter) 78 Count() :current(0u), delta(0) {}
79 explicit Count(
size_t c,
long d) :current(c), delta(d) {}
81 {
return current==o.current && delta==o.delta; }
85 typedef std::map<std::string, Count> cnt_map_t;
88 typedef cnt_map_t::const_iterator iterator;
89 typedef cnt_map_t::const_iterator const_iterator;
97 const Count& operator[](
const std::string& name)
const;
99 iterator
begin()
const {
return counts.begin(); }
100 iterator end()
const {
return counts.end(); }
101 size_t size()
const {
return counts.size(); }
103 inline void swap(RefSnapshot& o)
105 counts.swap(o.counts);
113 RefSnapshot operator-(
const RefSnapshot& rhs)
const;
118 std::ostream&
operator<<(std::ostream& strm,
const RefSnapshot& snap);
128 virtual ~RefMonitor();
130 void start(
double period=10.0);
132 bool running()
const;
139 virtual void show(
const RefSnapshot& snap,
bool complete=
false);
size_t readRefCounter(const char *name)
char * epicsRefSnapshotCurrent()
TODO only here because of the Lockable.
Mark external symbols and entry points for shared libraries.
void unregisterRefCounter(const char *name, const size_t *counter)
std::ostream & operator<<(std::ostream &strm, const RefSnapshot &snap)
void registerRefCounter(const char *name, const size_t *counter)
void swap(shared_ptr< T > &a, shared_ptr< T > &b) BOOST_NOEXCEPT
bool operator==(const epics::pvData::shared_vector< A > &a, const epics::pvData::shared_vector< B > &b)