7 #ifndef TRANSPORTREGISTRY_H
8 #define TRANSPORTREGISTRY_H
15 #ifdef epicsExportSharedSymbols
16 # define transportRegistryEpicsExportSharedSymbols
17 # undef epicsExportSharedSymbols
23 #include <pv/pvType.h>
24 #include <pv/epicsException.h>
25 #include <pv/sharedPtr.h>
27 #ifdef transportRegistryEpicsExportSharedSymbols
28 # define epicsExportSharedSymbols
29 # undef transportRegistryEpicsExportSharedSymbols
32 #include <pv/remote.h>
33 #include <pv/inetAddressUtil.h>
38 class TransportRegistry {
44 epics::pvData::int16 prio;
45 Key(
const osiSockAddr& a, epics::pvData::int16 p) :addr(a), prio(p) {}
53 POINTER_DEFINITIONS(TransportRegistry);
58 TransportRegistry*
const owner;
60 std::tr1::shared_ptr<epics::pvData::Mutex> mutex;
64 Reservation(TransportRegistry *owner,
const osiSockAddr& address, epics::pvData::int16 prio);
68 TransportRegistry() {}
71 Transport::shared_pointer
get(
const osiSockAddr& address, epics::pvData::int16 prio);
72 void install(
const Transport::shared_pointer& ptr);
73 Transport::shared_pointer
remove(Transport::shared_pointer
const & transport);
78 void toArray(transportVector_t & transportArray,
const osiSockAddr *dest=0);
81 transports_t transports;
85 epics::pvData::Mutex _mutex;
bool operator<(const sub_match< _BiIter > &__lhs, const sub_match< _BiIter > &__rhs)