Hi Andrew,
It is understandable ABI/API compatibility has never been a concern of the core
developers and an extra burden with no immediate benefits. But this becomes
essential for sites (increasingly) using central deployment.
If the building matrix puts such burden on users, they will likely skip many
epics base releases. And then problems won't be discovered/fixed in time, which
isn't helping epics base development anyway.
I assume this ABI checking can be one additional step in the CI script, using
tools like abi-compliance-checker. It could then be used as a guideline in
development. e.g. attached is a generated report of pvAccess library between
7.0.2 and 7.0.3.
Best
Xiaoqiang
On 1/8/20 5:55 PM, Johnson, Andrew N. via Tech-talk wrote:
Hi Lewis,
On 1/7/20 5:01 PM, J. Lewis Muir via Tech-talk wrote:
What is the planned EPICS release series after 7.0? Will it be 7.1 or
8.0? If it will be 7.1, is the idea that it would be like the 3.11,
3.12, 3.13, 3.14, and 3.15 series where a change in the minor number (in
a <major>.<minor>.<patch> versioning scheme) allows breaking backward
compatibility?
The next series will be 7.1. The current plan is that it will require at least
C++11 support from the OS, so it won't build against VxWorks 6 or with older MS
Visual Studio compilers. We don't have a branch for it or a timetable for any
releases yet though, so don't expect it anytime soon.
I'm not sure what you mean by backward compatibility. The EPICS version numbers
don't follow the principles of Semantic Versioning, we generally pick the next
number based on what kinds of changes have been included: bug fixes and minor
enhancements; new features that may require modifying clients or IOCs; or major
compatibility breaks, dropping architectures etc.
EPICS has never promised binary compatibility between releases, no matter what
the version number change has been, so you should /always/ rebuild everything
downstream from source code after upgrading Base to a new version. We don't have
the resources to do compatibility testing between binary versions, and we don't
generally worry about whether changes will break the ABI when making them. For
example, in the latest Base-3.15.7 and EPICS 7.0.3.1 releases the fields of some
of the record types were moved around while adding record reference
documentation to the dbd files, so any external device support built using
earlier versions would use the wrong field offsets when accessing the record
field structures.
It may be more work to rebuild everything (unless you automate; I suggest
looking at Sumo), but I don't recommend gambling if you could get phone-calls at
2am when some feature of your beamline stops working after an upgrade.
I'm wishing to plan for how I name EPICS packages that I install, and
I want to name them so that they include part of the version in the
package name so that I can install them in parallel (i.e., side by
side). This is similar to wanting to install both a Python 2 and 3
package and naming them python2 and python3, respectively, so that they
can both be installed at the same time without conflicting with each
other.
To do the same for EPICS, I'm wondering whether I need to include the
major and minor version, or just the major version in the package name.
For example, I could have packages named epics3, epics7, and epics8,
corresponding to 3.15.x, 7.x, and 8.x, but that will only work if the
3.15 series is the last supported series for the 3.x major version,
and the 7.x series are expected to not break backward compatibility
(i.e., 7.x -> 7.[x+1] does not break backward compatibility).
If the series within the 7.x series (i.e., 7.0, 7.1, 7.2, etc.) will be
allowed to break backward compatibility and will likely be supported in
parallel, then I will want to put the major and minor version into the
package name. For example, epics315, epics70, epics71, etc.
Given what I said above you should probably include the full EPICS version
number. However for any support module that is downstream of Asyn you'd need to
include both the Base and Asyn version numbers in the names for those packaged
modules, and unfortunately this could generate a bit of a combinatorial
explosion. EPICS doesn't really make packaging binaries easy...
- Andrew
--
Complexity comes for free, Simplicity you have to work for.
Title: pvAccess: 7.0.2 to 7.0.3 compatibility report
API compatibility report for the libpvAccess.so object between 7.0.2 and 7.0.3 versions on x86_64
Test Info
Module Name | pvAccess |
Version #1 | 7.0.2 |
Version #2 | 7.0.3 |
Arch | x86_64 |
GCC Version | 4.4.7 |
Subject | Binary Compatibility |
Test Results
Total Header Files | 111 |
Total Source Files | 47 |
Total Objects | 1 |
Total Symbols / Types | 330 / 196 |
Compatibility |
90% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 13 |
Removed Symbols | High | 15 |
Problems with Data Types | High | 15 |
Medium | 7 |
Low | 7 |
Problems with Symbols | High | 2 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols 13
codec.h, libpvAccess.so
namespace epics::pvAccess::detail
AbstractCodec::setRxTimeout ( bool ena )
_ZN5epics8pvAccess6detail13AbstractCodec12setRxTimeoutEb
BlockingTCPTransportCodec::setRxTimeout ( bool ena )
_ZN5epics8pvAccess6detail25BlockingTCPTransportCodec12setRxTimeoutEb
getgroups.cpp, libpvAccess.so
namespace epics::pvAccess
osdGetRoles ( std::string const& account, roles_t& roles )
_ZN5epics8pvAccess11osdGetRolesERKSsRSt3setISsSt4lessISsESaISsEE
hexDump.cpp, libpvAccess.so
namespace epics::pvAccess
operator<< ( std::ostream& strm, HexDump const& hex )
_ZN5epics8pvAccesslsERSoRKNS0_7HexDumpE
responseHandlers.h, libpvAccess.so
namespace epics::pvAccess
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsi
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsi
security.h, libpvAccess.so
namespace epics::pvAccess
PeerInfo::num_instances [data]
_ZN5epics8pvAccess8PeerInfo13num_instancesE
PeerInfo::PeerInfo [C1] ( )
_ZN5epics8pvAccess8PeerInfoC1Ev
PeerInfo::PeerInfo [C2] ( )
_ZN5epics8pvAccess8PeerInfoC2Ev
PeerInfo::~PeerInfo [D0] ( )
_ZN5epics8pvAccess8PeerInfoD0Ev
PeerInfo::~PeerInfo [D1] ( )
_ZN5epics8pvAccess8PeerInfoD1Ev
PeerInfo::~PeerInfo [D2] ( )
_ZN5epics8pvAccess8PeerInfoD2Ev
sharedstate.h, libpvAccess.so
namespace pvas
Operation::peer ( ) const
_ZNK4pvas9Operation4peerEv
to the top
Removed Symbols 15
codec.h, libpvAccess.so.6.1.2
namespace epics::pvAccess::detail
BlockingServerTCPTransportCodec::invalidSecurityPluginNameStatus [data]
_ZN5epics8pvAccess6detail31BlockingServerTCPTransportCodec31invalidSecurityPluginNameStatusE
hexDump.cpp, libpvAccess.so.6.1.2
namespace epics::pvAccess
hexDump ( std::string const& name, epics::pvData::int8 const* bs, int len )
_ZN5epics8pvAccess7hexDumpERKSsPKai
hexDump ( std::string const& name, epics::pvData::int8 const* bs, int start, int len )
_ZN5epics8pvAccess7hexDumpERKSsPKaii
hexDump ( std::string const& prologue, std::string const& name, epics::pvData::int8 const* bs, int start, int len )
_ZN5epics8pvAccess7hexDumpERKSsS2_PKaii
toAscii ( epics::pvData::int8 b )
_ZN5epics8pvAccess7toAsciiEa
toHex ( epics::pvData::int8 b )
_ZN5epics8pvAccess5toHexEa
logger.cpp, libpvAccess.so.6.1.2
namespace epics::pvAccess
createFileLogger ( std::string const& fname )
_ZN5epics8pvAccess16createFileLoggerERKSs
responseHandlers.h, libpvAccess.so.6.1.2
namespace epics::pvAccess
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
security.h, libpvAccess.so.6.1.2
namespace epics::pvAccess
CAClientSecurityPlugin::CAClientSecurityPlugin [C1] ( )
_ZN5epics8pvAccess22CAClientSecurityPluginC1Ev
CAClientSecurityPlugin::CAClientSecurityPlugin [C2] ( )
_ZN5epics8pvAccess22CAClientSecurityPluginC2Ev
CAClientSecurityPlugin::INSTANCE [data]
_ZN5epics8pvAccess22CAClientSecurityPlugin8INSTANCEE
NoSecurityPlugin::INSTANCE [data]
_ZN5epics8pvAccess16NoSecurityPlugin8INSTANCEE
vtable for CAClientSecurityPlugin [data]
_ZTVN5epics8pvAccess22CAClientSecurityPluginE
vtable for NoSecurityPlugin [data]
_ZTVN5epics8pvAccess16NoSecurityPluginE
to the top
Problems with Data Types, High Severity 15
blockingUDP.h
namespace epics::pvAccess
[+] class BlockingUDPTransport 1
|
Change |
Effect |
1 |
Virtual method authNZMessage ( std::tr1::shared_ptr<epics::pvData::PVField>const& ) has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 61 entries | Virtual Table (New) - 55 entries |
---|
0 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
8 |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
16 |
~BlockingUDPTransport |
~BlockingUDPTransport |
24 |
~BlockingUDPTransport |
~BlockingUDPTransport |
32 |
BlockingUDPTransport::ensureData(unsigned long) |
BlockingUDPTransport::ensureData(unsigned long) |
40 |
BlockingUDPTransport::alignData(unsigned long) |
BlockingUDPTransport::alignData(unsigned long) |
48 |
BlockingUDPTransport::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
BlockingUDPTransport::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
56 |
BlockingUDPTransport::cachedDeserialize(epics::pvData::ByteBuffer*) |
BlockingUDPTransport::cachedDeserialize(epics::pvData::ByteBuffer*) |
64 |
BlockingUDPTransport::acquire(std::tr1::shared_ptr<ClientChannelImpl> const&) |
BlockingUDPTransport::acquire(std::tr1::shared_ptr<ClientChannelImpl> const&) |
72 |
BlockingUDPTransport::release(int) |
BlockingUDPTransport::release(int) |
80 |
BlockingUDPTransport::getType() const |
BlockingUDPTransport::getType() const |
88 |
BlockingUDPTransport::getRemoteAddress() const |
BlockingUDPTransport::getRemoteAddress() const |
96 |
BlockingUDPTransport::getRemoteName() const |
BlockingUDPTransport::getRemoteName() const |
104 |
BlockingUDPTransport::getRevision() const |
BlockingUDPTransport::getReceiveBufferSize() const |
112 |
BlockingUDPTransport::getReceiveBufferSize() const |
BlockingUDPTransport::getPriority() const |
120 |
BlockingUDPTransport::getSocketReceiveBufferSize() const |
BlockingUDPTransport::setRemoteTransportReceiveBufferSize(unsigned long) |
128 |
BlockingUDPTransport::getPriority() const |
BlockingUDPTransport::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
136 |
BlockingUDPTransport::setRemoteRevision(signed char) |
BlockingUDPTransport::setByteOrder(int) |
144 |
BlockingUDPTransport::setRemoteTransportReceiveBufferSize(unsigned long) |
BlockingUDPTransport::enqueueSendRequest(std::tr1::shared_ptr<TransportSender> const&) |
152 |
BlockingUDPTransport::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
BlockingUDPTransport::flushSendQueue() |
160 |
BlockingUDPTransport::setByteOrder(int) |
BlockingUDPTransport::verified(epics::pvData::Status const&) |
168 |
BlockingUDPTransport::changedTransport() |
BlockingUDPTransport::verify(int) |
176 |
BlockingUDPTransport::enqueueSendRequest(std::tr1::shared_ptr<TransportSender> const&) |
BlockingUDPTransport::close() |
184 |
BlockingUDPTransport::flushSendQueue() |
Transport::waitJoin() |
192 |
BlockingUDPTransport::verified(epics::pvData::Status const&) |
BlockingUDPTransport::isClosed() |
200 |
BlockingUDPTransport::verify(int) |
BlockingUDPTransport::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVStructure> const&) |
208 |
BlockingUDPTransport::aliveNotification() |
BlockingUDPTransport::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
216 |
BlockingUDPTransport::close() |
BlockingUDPTransport::startMessage(signed char, unsigned long, int) |
224 |
Transport::waitJoin() |
BlockingUDPTransport::endMessage() |
232 |
BlockingUDPTransport::isClosed() |
BlockingUDPTransport::flush(bool) |
240 |
BlockingUDPTransport::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVField> const&) |
BlockingUDPTransport::setRecipient(osiSockAddr const&) |
248 |
BlockingUDPTransport::getSecuritySession() const |
BlockingUDPTransport::flushSerializeBuffer() |
256 |
BlockingUDPTransport::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
BlockingUDPTransport::ensureBuffer(unsigned long) |
264 |
BlockingUDPTransport::startMessage(signed char, unsigned long, int) |
BlockingUDPTransport::alignBuffer(unsigned long) |
272 |
BlockingUDPTransport::endMessage() |
BlockingUDPTransport::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
280 |
BlockingUDPTransport::flush(bool) |
BlockingUDPTransport::run() |
288 |
BlockingUDPTransport::setRecipient(osiSockAddr const&) |
(int (*)(...)) -0x00000000000008 |
296 |
BlockingUDPTransport::flushSerializeBuffer() |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
304 |
BlockingUDPTransport::ensureBuffer(unsigned long) |
non-virtual thunk to ~BlockingUDPTransport |
312 |
BlockingUDPTransport::alignBuffer(unsigned long) |
non-virtual thunk to ~BlockingUDPTransport |
320 |
BlockingUDPTransport::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
non-virtual thunk to BlockingUDPTransport::flushSerializeBuffer() |
328 |
BlockingUDPTransport::run() |
non-virtual thunk to BlockingUDPTransport::ensureBuffer(unsigned long) |
336 |
(int (*)(...)) -0x00000000000008 |
non-virtual thunk to BlockingUDPTransport::alignBuffer(unsigned long) |
344 |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
non-virtual thunk to BlockingUDPTransport::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
352 |
non-virtual thunk to ~BlockingUDPTransport |
non-virtual thunk to BlockingUDPTransport::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
360 |
non-virtual thunk to ~BlockingUDPTransport |
non-virtual thunk to BlockingUDPTransport::startMessage(signed char, unsigned long, int) |
368 |
non-virtual thunk to BlockingUDPTransport::flushSerializeBuffer() |
non-virtual thunk to BlockingUDPTransport::endMessage() |
376 |
non-virtual thunk to BlockingUDPTransport::ensureBuffer(unsigned long) |
non-virtual thunk to BlockingUDPTransport::flush(bool) |
384 |
non-virtual thunk to BlockingUDPTransport::alignBuffer(unsigned long) |
non-virtual thunk to BlockingUDPTransport::setRecipient(osiSockAddr const&) |
392 |
non-virtual thunk to BlockingUDPTransport::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
(int (*)(...)) -0x00000000000010 |
400 |
non-virtual thunk to BlockingUDPTransport::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
408 |
non-virtual thunk to BlockingUDPTransport::startMessage(signed char, unsigned long, int) |
non-virtual thunk to ~BlockingUDPTransport |
416 |
non-virtual thunk to BlockingUDPTransport::endMessage() |
non-virtual thunk to ~BlockingUDPTransport |
424 |
non-virtual thunk to BlockingUDPTransport::flush(bool) |
non-virtual thunk to BlockingUDPTransport::run() |
432 |
non-virtual thunk to BlockingUDPTransport::setRecipient(osiSockAddr const&) |
epicsThreadRunable::show(unsigned int) const |
440 |
(int (*)(...)) -0x00000000000010 |
|
448 |
(int (*)(...)) (& typeinfo for BlockingUDPTransport) |
|
456 |
non-virtual thunk to ~BlockingUDPTransport |
|
464 |
non-virtual thunk to ~BlockingUDPTransport |
|
472 |
non-virtual thunk to BlockingUDPTransport::run() |
|
480 |
epicsThreadRunable::show(unsigned int) const |
|
[+] affected symbols: 1 (0.3%)
BlockingUDPTransport::run ( )
This method is from 'BlockingUDPTransport' class.
codec.h
namespace epics::pvAccess::detail
[+] class AbstractCodec 1
|
Change |
Effect |
1 |
Virtual method setRxTimeout ( bool ) has been added to this class. |
The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 63 entries | Virtual Table (New) - 58 entries |
---|
0 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
8 |
(int (*)(...)) (& typeinfo for AbstractCodec) |
(int (*)(...)) (& typeinfo for AbstractCodec) |
16 |
~AbstractCodec |
~AbstractCodec |
24 |
~AbstractCodec |
~AbstractCodec |
32 |
AbstractCodec::flushSerializeBuffer() |
AbstractCodec::flushSerializeBuffer() |
40 |
AbstractCodec::ensureBuffer(unsigned long) |
AbstractCodec::ensureBuffer(unsigned long) |
48 |
AbstractCodec::alignBuffer(unsigned long) |
AbstractCodec::alignBuffer(unsigned long) |
56 |
AbstractCodec::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
AbstractCodec::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
64 |
__cxa_pure_virtual |
__cxa_pure_virtual |
72 |
AbstractCodec::startMessage(signed char, unsigned long, int) |
AbstractCodec::startMessage(signed char, unsigned long, int) |
80 |
AbstractCodec::endMessage() |
AbstractCodec::endMessage() |
88 |
AbstractCodec::flush(bool) |
AbstractCodec::flush(bool) |
96 |
AbstractCodec::setRecipient(osiSockAddr const&) |
AbstractCodec::setRecipient(osiSockAddr const&) |
104 |
__cxa_pure_virtual |
__cxa_pure_virtual |
112 |
__cxa_pure_virtual |
__cxa_pure_virtual |
120 |
__cxa_pure_virtual |
__cxa_pure_virtual |
128 |
__cxa_pure_virtual |
__cxa_pure_virtual |
136 |
__cxa_pure_virtual |
__cxa_pure_virtual |
144 |
__cxa_pure_virtual |
__cxa_pure_virtual |
152 |
__cxa_pure_virtual |
__cxa_pure_virtual |
160 |
__cxa_pure_virtual |
__cxa_pure_virtual |
168 |
__cxa_pure_virtual |
__cxa_pure_virtual |
176 |
__cxa_pure_virtual |
__cxa_pure_virtual |
184 |
__cxa_pure_virtual |
__cxa_pure_virtual |
192 |
__cxa_pure_virtual |
__cxa_pure_virtual |
200 |
AbstractCodec::ensureData(unsigned long) |
AbstractCodec::ensureData(unsigned long) |
208 |
AbstractCodec::alignData(unsigned long) |
AbstractCodec::alignData(unsigned long) |
216 |
AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
224 |
AbstractCodec::setByteOrder(int) |
AbstractCodec::setByteOrder(int) |
232 |
AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
240 |
__cxa_pure_virtual |
__cxa_pure_virtual |
248 |
(int (*)(...)) -0x00000000000008 |
AbstractCodec::setRxTimeout(bool) |
256 |
(int (*)(...)) (& typeinfo for AbstractCodec) |
(int (*)(...)) -0x00000000000008 |
264 |
non-virtual thunk to ~AbstractCodec |
(int (*)(...)) (& typeinfo for AbstractCodec) |
272 |
non-virtual thunk to ~AbstractCodec |
non-virtual thunk to ~AbstractCodec |
280 |
non-virtual thunk to AbstractCodec::ensureData(unsigned long) |
non-virtual thunk to ~AbstractCodec |
288 |
non-virtual thunk to AbstractCodec::alignData(unsigned long) |
non-virtual thunk to AbstractCodec::ensureData(unsigned long) |
296 |
non-virtual thunk to AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
non-virtual thunk to AbstractCodec::alignData(unsigned long) |
304 |
__cxa_pure_virtual |
non-virtual thunk to AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
312 |
__cxa_pure_virtual |
__cxa_pure_virtual |
320 |
__cxa_pure_virtual |
__cxa_pure_virtual |
328 |
__cxa_pure_virtual |
__cxa_pure_virtual |
336 |
__cxa_pure_virtual |
__cxa_pure_virtual |
344 |
__cxa_pure_virtual |
__cxa_pure_virtual |
352 |
__cxa_pure_virtual |
__cxa_pure_virtual |
360 |
__cxa_pure_virtual |
__cxa_pure_virtual |
368 |
__cxa_pure_virtual |
__cxa_pure_virtual |
376 |
__cxa_pure_virtual |
__cxa_pure_virtual |
384 |
__cxa_pure_virtual |
__cxa_pure_virtual |
392 |
__cxa_pure_virtual |
non-virtual thunk to AbstractCodec::setByteOrder(int) |
400 |
__cxa_pure_virtual |
non-virtual thunk to AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
408 |
non-virtual thunk to AbstractCodec::setByteOrder(int) |
__cxa_pure_virtual |
416 |
__cxa_pure_virtual |
__cxa_pure_virtual |
424 |
non-virtual thunk to AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
__cxa_pure_virtual |
432 |
__cxa_pure_virtual |
__cxa_pure_virtual |
440 |
__cxa_pure_virtual |
epics::pvAccess::Transport::waitJoin() |
448 |
__cxa_pure_virtual |
__cxa_pure_virtual |
456 |
__cxa_pure_virtual |
__cxa_pure_virtual |
464 |
__cxa_pure_virtual |
|
472 |
epics::pvAccess::Transport::waitJoin() |
|
480 |
__cxa_pure_virtual |
|
488 |
__cxa_pure_virtual |
|
496 |
__cxa_pure_virtual |
|
[+] affected symbols: 4 (1.2%)
AbstractCodec::sendBufferFull ( int p1 )
This method is from 'AbstractCodec' class.
AbstractCodec::flushSendBuffer ( )
This method is from 'AbstractCodec' class.
AbstractCodec::send ( epics::pvData::ByteBuffer* buffer )
This method is from 'AbstractCodec' class.
BlockingTCPTransportCodec::internalClose ( )
This method is from derived class 'BlockingTCPTransportCodec'.
[+] class BlockingServerTCPTransportCodec 1
|
Change |
Effect |
1 |
Size of this class has been increased from 856 bytes to 888 bytes. |
1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols: 3 (0.9%)
BlockingServerTCPTransportCodec::internalClose ( )
This method is from 'BlockingServerTCPTransportCodec' class.
BlockingServerTCPTransportCodec::destroyAllChannels ( )
This method is from 'BlockingServerTCPTransportCodec' class.
BlockingServerTCPTransportCodec::BlockingServerTCPTransportCodec ( epics::pvAccess::BlockingTCPConnector::shared_pointer const& context, SOCKET channel, epics::pvAccess::BlockingTCPConnector::shared_pointer const& responseHandler, int32_t sendBufferSize, int32_t receiveBufferSize )
This constructor is from 'BlockingServerTCPTransportCodec' class.
[+] class BlockingTCPTransportCodec 4
|
Change |
Effect |
1 |
Base class epics::pvAccess::AuthenticationPluginControl has been added. |
The layout of v-table in this class has been changed. |
2 |
Virtual method sendSecurityPluginMessage ( SecurityPluginMessageTransportSender::const_shared_pointer const& ) has been added to this class. |
The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
3 |
Virtual method start ( ) has been added to this class. |
The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
4 |
Base class epics::pvAccess::SecurityPluginControl has been removed. |
The layout of v-table in this class has been changed. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 90 entries | Virtual Table (New) - 82 entries |
---|
0 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
8 |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
16 |
~BlockingTCPTransportCodec |
~BlockingTCPTransportCodec |
24 |
~BlockingTCPTransportCodec |
~BlockingTCPTransportCodec |
32 |
AbstractCodec::flushSerializeBuffer() |
AbstractCodec::flushSerializeBuffer() |
40 |
AbstractCodec::ensureBuffer(unsigned long) |
AbstractCodec::ensureBuffer(unsigned long) |
48 |
AbstractCodec::alignBuffer(unsigned long) |
AbstractCodec::alignBuffer(unsigned long) |
56 |
AbstractCodec::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
AbstractCodec::directSerialize(epics::pvData::ByteBuffer*, char const*, unsigned long, unsigned long) |
64 |
BlockingTCPTransportCodec::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
BlockingTCPTransportCodec::cachedSerialize(std::tr1::shared_ptr<epics::pvData::Field const> const&, epics::pvData::ByteBuffer*) |
72 |
AbstractCodec::startMessage(signed char, unsigned long, int) |
AbstractCodec::startMessage(signed char, unsigned long, int) |
80 |
AbstractCodec::endMessage() |
AbstractCodec::endMessage() |
88 |
AbstractCodec::flush(bool) |
AbstractCodec::flush(bool) |
96 |
AbstractCodec::setRecipient(osiSockAddr const&) |
AbstractCodec::setRecipient(osiSockAddr const&) |
104 |
BlockingTCPTransportCodec::processControlMessage() |
BlockingTCPTransportCodec::processControlMessage() |
112 |
BlockingTCPTransportCodec::processApplicationMessage() |
BlockingTCPTransportCodec::processApplicationMessage() |
120 |
BlockingTCPTransportCodec::getLastReadBufferSocketAddress() |
BlockingTCPTransportCodec::getLastReadBufferSocketAddress() |
128 |
BlockingTCPTransportCodec::invalidDataStreamHandler() |
BlockingTCPTransportCodec::invalidDataStreamHandler() |
136 |
BlockingTCPTransportCodec::readPollOne() |
BlockingTCPTransportCodec::readPollOne() |
144 |
BlockingTCPTransportCodec::writePollOne() |
BlockingTCPTransportCodec::writePollOne() |
152 |
BlockingTCPTransportCodec::scheduleSend() |
BlockingTCPTransportCodec::scheduleSend() |
160 |
BlockingTCPTransportCodec::sendCompleted() |
BlockingTCPTransportCodec::sendCompleted() |
168 |
BlockingTCPTransportCodec::terminated() |
BlockingTCPTransportCodec::terminated() |
176 |
BlockingTCPTransportCodec::write(epics::pvData::ByteBuffer*) |
BlockingTCPTransportCodec::write(epics::pvData::ByteBuffer*) |
184 |
BlockingTCPTransportCodec::read(epics::pvData::ByteBuffer*) |
BlockingTCPTransportCodec::read(epics::pvData::ByteBuffer*) |
192 |
BlockingTCPTransportCodec::isOpen() |
BlockingTCPTransportCodec::isOpen() |
200 |
AbstractCodec::ensureData(unsigned long) |
AbstractCodec::ensureData(unsigned long) |
208 |
AbstractCodec::alignData(unsigned long) |
AbstractCodec::alignData(unsigned long) |
216 |
AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
224 |
AbstractCodec::setByteOrder(int) |
AbstractCodec::setByteOrder(int) |
232 |
AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
240 |
BlockingTCPTransportCodec::sendBufferFull(int) |
BlockingTCPTransportCodec::sendBufferFull(int) |
248 |
BlockingTCPTransportCodec::close() |
BlockingTCPTransportCodec::setRxTimeout(bool) |
256 |
BlockingTCPTransportCodec::waitJoin() |
BlockingTCPTransportCodec::close() |
264 |
BlockingTCPTransportCodec::getSocketReceiveBufferSize() const |
BlockingTCPTransportCodec::waitJoin() |
272 |
BlockingTCPTransportCodec::getType() const |
BlockingTCPTransportCodec::start() |
280 |
BlockingTCPTransportCodec::getRemoteAddress() const |
BlockingTCPTransportCodec::getType() const |
288 |
BlockingTCPTransportCodec::getRemoteName() const |
BlockingTCPTransportCodec::getRemoteAddress() const |
296 |
BlockingTCPTransportCodec::getRevision() const |
BlockingTCPTransportCodec::getRemoteName() const |
304 |
BlockingTCPTransportCodec::getReceiveBufferSize() const |
BlockingTCPTransportCodec::getReceiveBufferSize() const |
312 |
BlockingTCPTransportCodec::getPriority() const |
BlockingTCPTransportCodec::getPriority() const |
320 |
BlockingTCPTransportCodec::setRemoteRevision(signed char) |
BlockingTCPTransportCodec::setRemoteTransportReceiveBufferSize(unsigned long) |
328 |
BlockingTCPTransportCodec::setRemoteTransportReceiveBufferSize(unsigned long) |
BlockingTCPTransportCodec::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
336 |
BlockingTCPTransportCodec::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
BlockingTCPTransportCodec::cachedDeserialize(epics::pvData::ByteBuffer*) |
344 |
BlockingTCPTransportCodec::cachedDeserialize(epics::pvData::ByteBuffer*) |
BlockingTCPTransportCodec::flushSendQueue() |
352 |
BlockingTCPTransportCodec::flushSendQueue() |
BlockingTCPTransportCodec::isClosed() |
360 |
BlockingTCPTransportCodec::isClosed() |
BlockingTCPTransportCodec::verify(int) |
368 |
BlockingTCPTransportCodec::verify(int) |
BlockingTCPTransportCodec::verified(epics::pvData::Status const&) |
376 |
BlockingTCPTransportCodec::verified(epics::pvData::Status const&) |
BlockingTCPTransportCodec::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVStructure> const&) |
384 |
BlockingTCPTransportCodec::getSecuritySession() const |
BlockingTCPTransportCodec::sendSecurityPluginMessage(std::tr1::shared_ptr<epics::pvData::PVStructure const> const&) |
392 |
BlockingTCPTransportCodec::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVField> const&) |
BlockingTCPTransportCodec::internalClose() |
400 |
BlockingTCPTransportCodec::sendSecurityPluginMessage(std::tr1::shared_ptr<epics::pvData::PVField> const&) |
(int (*)(...)) -0x00000000000008 |
408 |
BlockingTCPTransportCodec::internalClose() |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
416 |
(int (*)(...)) -0x00000000000008 |
non-virtual thunk to ~BlockingTCPTransportCodec |
424 |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
non-virtual thunk to ~BlockingTCPTransportCodec |
432 |
non-virtual thunk to ~BlockingTCPTransportCodec |
non-virtual thunk to AbstractCodec::ensureData(unsigned long) |
440 |
non-virtual thunk to ~BlockingTCPTransportCodec |
non-virtual thunk to AbstractCodec::alignData(unsigned long) |
448 |
non-virtual thunk to AbstractCodec::ensureData(unsigned long) |
non-virtual thunk to AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
456 |
non-virtual thunk to AbstractCodec::alignData(unsigned long) |
non-virtual thunk to BlockingTCPTransportCodec::cachedDeserialize(epics::pvData::ByteBuffer*) |
464 |
non-virtual thunk to AbstractCodec::directDeserialize(epics::pvData::ByteBuffer*, char*, unsigned long, unsigned long) |
__cxa_pure_virtual |
472 |
non-virtual thunk to BlockingTCPTransportCodec::cachedDeserialize(epics::pvData::ByteBuffer*) |
__cxa_pure_virtual |
480 |
__cxa_pure_virtual |
non-virtual thunk to BlockingTCPTransportCodec::getType() const |
488 |
__cxa_pure_virtual |
non-virtual thunk to BlockingTCPTransportCodec::getRemoteAddress() const |
496 |
non-virtual thunk to BlockingTCPTransportCodec::getType() const |
non-virtual thunk to BlockingTCPTransportCodec::getRemoteName() const |
504 |
non-virtual thunk to BlockingTCPTransportCodec::getRemoteAddress() const |
non-virtual thunk to BlockingTCPTransportCodec::getReceiveBufferSize() const |
512 |
non-virtual thunk to BlockingTCPTransportCodec::getRemoteName() const |
non-virtual thunk to BlockingTCPTransportCodec::getPriority() const |
520 |
non-virtual thunk to BlockingTCPTransportCodec::getRevision() const |
non-virtual thunk to BlockingTCPTransportCodec::setRemoteTransportReceiveBufferSize(unsigned long) |
528 |
non-virtual thunk to BlockingTCPTransportCodec::getReceiveBufferSize() const |
non-virtual thunk to BlockingTCPTransportCodec::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
536 |
non-virtual thunk to BlockingTCPTransportCodec::getSocketReceiveBufferSize() const |
non-virtual thunk to AbstractCodec::setByteOrder(int) |
544 |
non-virtual thunk to BlockingTCPTransportCodec::getPriority() const |
non-virtual thunk to AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
552 |
non-virtual thunk to BlockingTCPTransportCodec::setRemoteRevision(signed char) |
non-virtual thunk to BlockingTCPTransportCodec::flushSendQueue() |
560 |
non-virtual thunk to BlockingTCPTransportCodec::setRemoteTransportReceiveBufferSize(unsigned long) |
non-virtual thunk to BlockingTCPTransportCodec::verified(epics::pvData::Status const&) |
568 |
non-virtual thunk to BlockingTCPTransportCodec::setRemoteTransportSocketReceiveBufferSize(unsigned long) |
non-virtual thunk to BlockingTCPTransportCodec::verify(int) |
576 |
non-virtual thunk to AbstractCodec::setByteOrder(int) |
non-virtual thunk to BlockingTCPTransportCodec::close() |
584 |
__cxa_pure_virtual |
non-virtual thunk to BlockingTCPTransportCodec::waitJoin() |
592 |
non-virtual thunk to AbstractCodec::enqueueSendRequest(std::tr1::shared_ptr<epics::pvAccess::TransportSender> const&) |
non-virtual thunk to BlockingTCPTransportCodec::isClosed() |
600 |
non-virtual thunk to BlockingTCPTransportCodec::flushSendQueue() |
non-virtual thunk to BlockingTCPTransportCodec::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVStructure> const&) |
608 |
non-virtual thunk to BlockingTCPTransportCodec::verified(epics::pvData::Status const&) |
(int (*)(...)) -0x00000000000118 |
616 |
non-virtual thunk to BlockingTCPTransportCodec::verify(int) |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
624 |
__cxa_pure_virtual |
non-virtual thunk to ~BlockingTCPTransportCodec |
632 |
non-virtual thunk to BlockingTCPTransportCodec::close() |
non-virtual thunk to ~BlockingTCPTransportCodec |
640 |
non-virtual thunk to BlockingTCPTransportCodec::waitJoin() |
non-virtual thunk to BlockingTCPTransportCodec::sendSecurityPluginMessage(std::tr1::shared_ptr<epics::pvData::PVStructure const> const&) |
648 |
non-virtual thunk to BlockingTCPTransportCodec::isClosed() |
__cxa_pure_virtual |
656 |
non-virtual thunk to BlockingTCPTransportCodec::authNZMessage(std::tr1::shared_ptr<epics::pvData::PVField> const&) |
|
664 |
non-virtual thunk to BlockingTCPTransportCodec::getSecuritySession() const |
|
672 |
(int (*)(...)) -0x00000000000118 |
|
680 |
(int (*)(...)) (& typeinfo for BlockingTCPTransportCodec) |
|
688 |
non-virtual thunk to ~BlockingTCPTransportCodec |
|
696 |
non-virtual thunk to ~BlockingTCPTransportCodec |
|
704 |
non-virtual thunk to BlockingTCPTransportCodec::sendSecurityPluginMessage(std::tr1::shared_ptr<epics::pvData::PVField> const&) |
|
712 |
__cxa_pure_virtual |
|
[+] affected symbols: 10 (3%)
AbstractCodec::sendBufferFull ( int p1 )
This method is from derived class 'AbstractCodec'.
BlockingTCPTransportCodec::internalClose ( )
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::num_instances [data]
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::sendBufferFull ( int tries )
This method is from 'BlockingTCPTransportCodec' class.
BlockingClientTCPTransportCodec::internalClose ( )
This method is from derived class 'BlockingClientTCPTransportCodec'.
BlockingClientTCPTransportCodec::BlockingClientTCPTransportCodec ( epics::pvAccess::BlockingTCPConnector::shared_pointer const& context, SOCKET channel, epics::pvAccess::BlockingTCPConnector::shared_pointer const& responseHandler, int32_t sendBufferSize, int32_t receiveBufferSize, BlockingClientTCPTransportCodec::shared_pointer const& client, epics::pvData::int8 p7, float heartbeatInterval, int16_t priority )
This constructor is from derived class 'BlockingClientTCPTransportCodec'.
BlockingServerTCPTransportCodec::internalClose ( )
This method is from derived class 'BlockingServerTCPTransportCodec'.
BlockingServerTCPTransportCodec::destroyAllChannels ( )
This method is from derived class 'BlockingServerTCPTransportCodec'.
BlockingServerTCPTransportCodec::invalidSecurityPluginNameStatus [data]
This method is from derived class 'BlockingServerTCPTransportCodec'.
BlockingServerTCPTransportCodec::BlockingServerTCPTransportCodec ( epics::pvAccess::BlockingTCPConnector::shared_pointer const& context, SOCKET channel, epics::pvAccess::BlockingTCPConnector::shared_pointer const& responseHandler, int32_t sendBufferSize, int32_t receiveBufferSize )
This constructor is from derived class 'BlockingServerTCPTransportCodec'.
remote.h
namespace epics::pvAccess
[+] class Transport 8
|
Change |
Effect |
1 |
Pure virtual method authNZMessage ( epics::pvData::CreateRequest::shared_pointer const& ) has been added to this class. |
1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
2 |
Pure virtual method aliveNotification ( ) has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
3 |
Pure virtual method authNZMessage ( SerializationHelper::shared_pointer const& ) has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
4 |
Pure virtual method changedTransport ( ) has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
5 |
Pure virtual method getRevision ( ) const has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
6 |
Pure virtual method getSecuritySession ( ) const has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
7 |
Pure virtual method getSocketReceiveBufferSize ( ) const has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
8 |
Pure virtual method setRemoteRevision ( epics::pvData::int8 ) has been removed from this class. |
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 32 entries | Virtual Table (New) - 26 entries |
---|
0 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
8 |
(int (*)(...)) (& typeinfo for Transport) |
(int (*)(...)) (& typeinfo for Transport) |
16 |
~Transport |
~Transport |
24 |
~Transport |
~Transport |
32 |
__cxa_pure_virtual |
__cxa_pure_virtual |
40 |
__cxa_pure_virtual |
__cxa_pure_virtual |
48 |
__cxa_pure_virtual |
__cxa_pure_virtual |
56 |
__cxa_pure_virtual |
__cxa_pure_virtual |
64 |
__cxa_pure_virtual |
__cxa_pure_virtual |
72 |
__cxa_pure_virtual |
__cxa_pure_virtual |
80 |
__cxa_pure_virtual |
__cxa_pure_virtual |
88 |
__cxa_pure_virtual |
__cxa_pure_virtual |
96 |
__cxa_pure_virtual |
__cxa_pure_virtual |
104 |
__cxa_pure_virtual |
__cxa_pure_virtual |
112 |
__cxa_pure_virtual |
__cxa_pure_virtual |
120 |
__cxa_pure_virtual |
__cxa_pure_virtual |
128 |
__cxa_pure_virtual |
__cxa_pure_virtual |
136 |
__cxa_pure_virtual |
__cxa_pure_virtual |
144 |
__cxa_pure_virtual |
__cxa_pure_virtual |
152 |
__cxa_pure_virtual |
__cxa_pure_virtual |
160 |
__cxa_pure_virtual |
__cxa_pure_virtual |
168 |
__cxa_pure_virtual |
__cxa_pure_virtual |
176 |
__cxa_pure_virtual |
__cxa_pure_virtual |
184 |
__cxa_pure_virtual |
Transport::waitJoin() |
192 |
__cxa_pure_virtual |
__cxa_pure_virtual |
200 |
__cxa_pure_virtual |
__cxa_pure_virtual |
208 |
__cxa_pure_virtual |
|
216 |
__cxa_pure_virtual |
|
224 |
Transport::waitJoin() |
|
232 |
__cxa_pure_virtual |
|
240 |
__cxa_pure_virtual |
|
248 |
__cxa_pure_virtual |
|
[+] affected symbols: 3 (0.9%)
BlockingUDPTransport::run ( )
This method is from derived class 'BlockingUDPTransport'.
detail::AbstractCodec::sendBufferFull ( int p1 )
This method is from derived class 'detail::AbstractCodec'.
detail::BlockingTCPTransportCodec::internalClose ( )
This method is from derived class 'detail::BlockingTCPTransportCodec'.
to the top
Problems with Symbols, High Severity 2
responseHandlers.h, libpvAccess.so.6.1.2
namespace epics::pvAccess
[+] ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css ) 1
⇣
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE to _ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsi. This may cause undefined reference linker error in old client applications. |
[+] ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css ) 1
⇣
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE to _ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsi. This may cause undefined reference linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity 7
codec.h
namespace epics::pvAccess::detail
[+] class AbstractCodec 1
|
Change |
Effect |
1 |
Field _lowLatency has been removed from this type. |
Applications will access incorrect memory when attempting to access this field. |
[+] affected symbols: 2 (0.6%)
AbstractCodec::flushSendBuffer ( )
This method is from 'AbstractCodec' class.
AbstractCodec::send ( epics::pvData::ByteBuffer* buffer )
This method is from 'AbstractCodec' class.
[+] class BlockingTCPTransportCodec 4
|
Change |
Effect |
1 |
Field _authSession has been added at the middle position of this structural type. |
1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
2 |
Field _authSessionName has been added at the middle position of this structural type. |
1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
3 |
Field _peerInfo has been added at the middle position of this structural type. |
1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
4 |
Field _securitySession has been removed from this type. |
1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed. |
[+] affected symbols: 4 (1.2%)
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::run ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::~MethRunner ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
BlockingTCPTransportCodec::internalClose ( )
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::sendBufferFull ( int tries )
This method is from 'BlockingTCPTransportCodec' class.
responseHandlers.h
namespace epics::pvAccess
[+] class ServerChannelRequesterImpl 1
|
Change |
Effect |
1 |
The layout of v-table has been changed for unknown reason. |
Call of any method in this class may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 20 entries | Virtual Table (New) - 21 entries |
---|
0 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
8 |
(int (*)(...)) 0 |
(int (*)(...)) 0 |
16 |
(int (*)(...))0 |
(int (*)(...))0 |
24 |
(int (*)(...))0 |
(int (*)(...))0 |
32 |
(int (*)(...))0 |
(int (*)(...))0 |
40 |
(int (*)(...)) (& typeinfo for ServerChannelRequesterImpl) |
(int (*)(...)) (& typeinfo for ServerChannelRequesterImpl) |
48 |
~ServerChannelRequesterImpl |
~ServerChannelRequesterImpl |
56 |
~ServerChannelRequesterImpl |
~ServerChannelRequesterImpl |
64 |
ServerChannelRequesterImpl::getRequesterName() |
ServerChannelRequesterImpl::getRequesterName() |
72 |
ServerChannelRequesterImpl::message(std::string const&, MessageType) |
ServerChannelRequesterImpl::message(std::string const&, MessageType) |
80 |
ServerChannelRequesterImpl::channelCreated(epics::pvData::Status const&, std::tr1::shared_ptr<Channel> const&) |
ServerChannelRequesterImpl::channelCreated(epics::pvData::Status const&, std::tr1::shared_ptr<Channel> const&) |
88 |
ServerChannelRequesterImpl::channelStateChange(std::tr1::shared_ptr<Channel> const&, Channel::ConnectionState) |
ServerChannelRequesterImpl::channelStateChange(std::tr1::shared_ptr<Channel> const&, Channel::ConnectionState) |
96 |
ServerChannelRequesterImpl::send(epics::pvData::ByteBuffer*, TransportSendControl*) |
ServerChannelRequesterImpl::getPeerInfo() |
104 |
(int (*)(...)) -0x00000000000008 |
ServerChannelRequesterImpl::send(epics::pvData::ByteBuffer*, TransportSendControl*) |
112 |
(int (*)(...)) (& typeinfo for ServerChannelRequesterImpl) |
(int (*)(...)) -0x00000000000008 |
120 |
non-virtual thunk to ~ServerChannelRequesterImpl |
(int (*)(...)) (& typeinfo for ServerChannelRequesterImpl) |
128 |
non-virtual thunk to ~ServerChannelRequesterImpl |
non-virtual thunk to ~ServerChannelRequesterImpl |
136 |
Lockable::lock() |
non-virtual thunk to ~ServerChannelRequesterImpl |
144 |
Lockable::unlock() |
Lockable::lock() |
152 |
non-virtual thunk to ServerChannelRequesterImpl::send(epics::pvData::ByteBuffer*, TransportSendControl*) |
Lockable::unlock() |
160 |
|
non-virtual thunk to ServerChannelRequesterImpl::send(epics::pvData::ByteBuffer*, TransportSendControl*) |
[+] affected symbols: 1 (0.3%)
ServerChannelRequesterImpl::ServerChannelRequesterImpl ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css )
This constructor is from 'ServerChannelRequesterImpl' class.
sharedstateimpl.h
namespace pvas
[+] struct Operation::Impl 1
|
Change |
Effect |
1 |
Field info has been added at the middle position of this structural type. |
1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
[+] affected symbols: 2 (0.6%)
Operation::Impl::Cleanup::operator() ( struct Operation::Impl* impl )
1st parameter 'impl' (pointer) has base type 'struct Operation::Impl'.
Operation::Impl::~Impl ( )
This destructor is from 'struct Operation::Impl' class.
to the top
Problems with Data Types, Low Severity 7
codec.h
namespace epics::pvAccess::detail
[+] class BlockingServerTCPTransportCodec 3
|
Change |
Effect |
1 |
Field advertisedAuthPlugins has been added to this type. |
Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 |
Field _securityRequired has been removed from this type. |
Size of the inclusive type has been changed. |
3 |
Field _verificationStatusMutex has been removed from this type. |
Size of the inclusive type has been changed. |
[+] affected symbols: 3 (0.9%)
BlockingServerTCPTransportCodec::internalClose ( )
This method is from 'BlockingServerTCPTransportCodec' class.
BlockingServerTCPTransportCodec::destroyAllChannels ( )
This method is from 'BlockingServerTCPTransportCodec' class.
BlockingServerTCPTransportCodec::BlockingServerTCPTransportCodec ( epics::pvAccess::BlockingTCPConnector::shared_pointer const& context, SOCKET channel, epics::pvAccess::BlockingTCPConnector::shared_pointer const& responseHandler, int32_t sendBufferSize, int32_t receiveBufferSize )
This constructor is from 'BlockingServerTCPTransportCodec' class.
[+] class BlockingTCPTransportCodec 3
|
Change |
Effect |
1 |
Size of this type has been changed from 680 bytes to 696 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
2 |
Field _remoteTransportRevision has been removed from this type. |
Size of the inclusive type has been changed. |
3 |
Field _verifiedMutex has been removed from this type. |
Size of the inclusive type has been changed. |
[+] affected symbols: 4 (1.2%)
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::run ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::~MethRunner ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
BlockingTCPTransportCodec::internalClose ( )
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::sendBufferFull ( int tries )
This method is from 'BlockingTCPTransportCodec' class.
sharedstateimpl.h
namespace pvas
[+] struct Operation::Impl 1
|
Change |
Effect |
1 |
Size of this type has been changed from 88 bytes to 104 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 2 (0.6%)
Operation::Impl::Cleanup::operator() ( struct Operation::Impl* impl )
1st parameter 'impl' (pointer) has base type 'struct Operation::Impl'.
Operation::Impl::~Impl ( )
This destructor is from 'struct Operation::Impl' class.
to the top
Header Files 111
allocator.h
anyscalar.h
atomic_word.h
auto_ptr.h
baseChannelRequester.h
basic_file.h
basic_string.h
basic_string.tcc
beaconEmitter.h
beaconHandler.h
beaconServerStatusProvider.h
bitSet.h
blockingTCP.h
blockingUDP.h
boost_sp_counted_base.h
byteBuffer.h
c++io.h
channelSearchManager.h
char_traits.h
client.h
clientContextImpl.h
clientFactory.h
clientpvt.h
codec.h
configuration.h
createRequest.h
deque.tcc
destroyable.h
ellLib.h
epicsEvent.h
epicsException.h
epicsMutex.h
epicsThread.h
epicsTime.h
epicsTypes.h
event.h
fairQueue.h
in.h
inetAddressUtil.h
introspectionRegistry.h
ios_base.h
iosfwd
libio.h
list.tcc
lock.h
logger.h
monitor.h
new_allocator.h
osdSock.h
osdThread.h
osiSock.h
pipelineServer.h
pipelineService.h
pthreadtypes.h
pvAccess.h
pvaConstants.h
pvaDefs.h
pvaVersion.h
pvData.h
pvIntrospect.h
pvType.h
referenceCountingLock.h
remote.h
requester.h
responseHandlers.h
rpcClient.h
rpcServer.h
rpcService.h
sched.h
security.h
securityImpl.h
serializationHelper.h
serialize.h
server.h
serverChannelImpl.h
serverContext.h
serverContextImpl.h
shared_ptr.h
sharedstate.h
sharedstateimpl.h
sharedVector.h
sockaddr.h
socket.h
status.h
stddef.h
stdexcept
stdint.h
stdio.h
stl_algobase.h
stl_bvector.h
stl_deque.h
stl_function.h
stl_iterator.h
stl_iterator_base_types.h
stl_list.h
stl_map.h
stl_multimap.h
stl_pair.h
stl_queue.h
stl_set.h
stl_tree.h
stl_uninitialized.h
stl_vector.h
stringfwd.h
thread.h
timer.h
timeStamp.h
transportRegistry.h
types.h
vector.tcc
wildcard.h
to the top
Source Files 47
abstractResponseHandler.cpp
baseChannelRequester.cpp
beaconEmitter.cpp
beaconHandler.cpp
beaconServerStatusProvider.cpp
blockingTCPAcceptor.cpp
blockingTCPConnector.cpp
blockingUDPConnector.cpp
blockingUDPTransport.cpp
ChannelAccessFactory.cpp
channelSearchManager.cpp
client.cpp
clientContextImpl.cpp
clientFactory.cpp
clientGet.cpp
clientInfo.cpp
clientMonitor.cpp
clientPut.cpp
clientRPC.cpp
clientSync.cpp
codec.cpp
configuration.cpp
hexDump.cpp
inetAddressUtil.cpp
introspectionRegistry.cpp
logger.cpp
monitor.cpp
pipelineServer.cpp
pvAccess.cpp
pvaVersion.cpp
referenceCountingLock.cpp
requester.cpp
responseHandlers.cpp
rpcClient.cpp
rpcServer.cpp
rpcService.cpp
security.cpp
serializationHelper.cpp
server.cpp
serverChannelImpl.cpp
serverContext.cpp
sharedstate_channel.cpp
sharedstate_put.cpp
sharedstate_pv.cpp
sharedstate_rpc.cpp
transportRegistry.cpp
wildcard.cpp
to the top
Objects 1
libpvAccess.so.6.1.2
to the top
Test Info
Module Name | pvAccess |
Version #1 | 7.0.2 |
Version #2 | 7.0.3 |
Arch | x86_64 |
Subject | Source Compatibility |
Test Results
Total Header Files | 111 |
Total Source Files | 47 |
Total Objects | 1 |
Total Symbols / Types | 362 / 213 |
Compatibility |
94.5% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 13 |
Removed Symbols | High | 13 |
Problems with Data Types | High | 2 |
Medium | 0 |
Low | 5 |
Problems with Symbols | High | 0 |
Medium | 2 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols 13
codec.h
namespace epics::pvAccess::detail
AbstractCodec::setRxTimeout ( bool ena )
_ZN5epics8pvAccess6detail13AbstractCodec12setRxTimeoutEb
BlockingTCPTransportCodec::setRxTimeout ( bool ena )
_ZN5epics8pvAccess6detail25BlockingTCPTransportCodec12setRxTimeoutEb
getgroups.cpp
namespace epics::pvAccess
osdGetRoles ( std::string const& account, roles_t& roles )
_ZN5epics8pvAccess11osdGetRolesERKSsRSt3setISsSt4lessISsESaISsEE
hexDump.cpp
namespace epics::pvAccess
operator<< ( std::ostream& strm, HexDump const& hex )
_ZN5epics8pvAccesslsERSoRKNS0_7HexDumpE
responseHandlers.h
namespace epics::pvAccess
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsi
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsi
security.h
namespace epics::pvAccess
PeerInfo::num_instances [data]
_ZN5epics8pvAccess8PeerInfo13num_instancesE
PeerInfo::PeerInfo [C1] ( )
_ZN5epics8pvAccess8PeerInfoC1Ev
PeerInfo::PeerInfo [C2] ( )
_ZN5epics8pvAccess8PeerInfoC2Ev
PeerInfo::~PeerInfo [D0] ( )
_ZN5epics8pvAccess8PeerInfoD0Ev
PeerInfo::~PeerInfo [D1] ( )
_ZN5epics8pvAccess8PeerInfoD1Ev
PeerInfo::~PeerInfo [D2] ( )
_ZN5epics8pvAccess8PeerInfoD2Ev
sharedstate.h
namespace pvas
Operation::peer ( ) const
_ZNK4pvas9Operation4peerEv
to the top
Removed Symbols 13
codec.h
namespace epics::pvAccess::detail
BlockingServerTCPTransportCodec::invalidSecurityPluginNameStatus [data]
_ZN5epics8pvAccess6detail31BlockingServerTCPTransportCodec31invalidSecurityPluginNameStatusE
hexDump.cpp
namespace epics::pvAccess
hexDump ( std::string const& name, epics::pvData::int8 const* bs, int len )
_ZN5epics8pvAccess7hexDumpERKSsPKai
hexDump ( std::string const& name, epics::pvData::int8 const* bs, int start, int len )
_ZN5epics8pvAccess7hexDumpERKSsPKaii
hexDump ( std::string const& prologue, std::string const& name, epics::pvData::int8 const* bs, int start, int len )
_ZN5epics8pvAccess7hexDumpERKSsS2_PKaii
toAscii ( epics::pvData::int8 b )
_ZN5epics8pvAccess7toAsciiEa
toHex ( epics::pvData::int8 b )
_ZN5epics8pvAccess5toHexEa
logger.cpp
namespace epics::pvAccess
createFileLogger ( std::string const& fname )
_ZN5epics8pvAccess16createFileLoggerERKSs
responseHandlers.h
namespace epics::pvAccess
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
security.h
namespace epics::pvAccess
CAClientSecurityPlugin::CAClientSecurityPlugin [C1] ( )
_ZN5epics8pvAccess22CAClientSecurityPluginC1Ev
CAClientSecurityPlugin::CAClientSecurityPlugin [C2] ( )
_ZN5epics8pvAccess22CAClientSecurityPluginC2Ev
CAClientSecurityPlugin::INSTANCE [data]
_ZN5epics8pvAccess22CAClientSecurityPlugin8INSTANCEE
NoSecurityPlugin::INSTANCE [data]
_ZN5epics8pvAccess16NoSecurityPlugin8INSTANCEE
to the top
Problems with Data Types, High Severity 2
codec.h
namespace epics::pvAccess::detail
[+] class AbstractCodec 1
|
Change |
Effect |
1 |
Field _lowLatency has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'AbstractCodec' has no member named '_lowLatency'. |
[+] affected symbols: 2 (0.6%)
AbstractCodec::flushSendBuffer ( )
This method is from 'AbstractCodec' class.
AbstractCodec::send ( epics::pvData::ByteBuffer* buffer )
This method is from 'AbstractCodec' class.
[+] class BlockingTCPTransportCodec 1
|
Change |
Effect |
1 |
Field _securitySession has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'BlockingTCPTransportCodec' has no member named '_securitySession'. |
[+] affected symbols: 4 (1.1%)
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::run ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::~MethRunner ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
BlockingTCPTransportCodec::internalClose ( )
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::sendBufferFull ( int tries )
This method is from 'BlockingTCPTransportCodec' class.
to the top
Problems with Symbols, Medium Severity 2
responseHandlers.h
namespace epics::pvAccess
[+] ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css ) 1
⇣
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C1] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC1ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid, ServerChannel::shared_pointer const& css ) 1
⇣
ServerChannelRequesterImpl::ServerChannelRequesterImpl [C2] ( TransportRegistry::shared_pointer const& transport, std::string const channelName, pvAccessID const cid )
_ZN5epics8pvAccess26ServerChannelRequesterImplC2ERKNSt3tr110shared_ptrINS0_9TransportEEESsiRKNS3_INS0_22ChannelSecuritySessionEEE
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
to the top
Problems with Data Types, Low Severity 5
codec.h
namespace epics::pvAccess::detail
[+] class BlockingTCPTransportCodec 4
|
Change |
Effect |
1 |
Base class epics::pvAccess::AuthenticationPluginControl has been added. |
Recompilation of a client program may be broken. |
2 |
Field _authSession has been added to this type. |
This field will not be initialized or used by old client applications. |
3 |
Field _authSessionName has been added to this type. |
This field will not be initialized or used by old client applications. |
4 |
Base class epics::pvAccess::SecurityPluginControl has been removed. |
Recompilation of a client program may be broken. |
[+] affected symbols: 11 (3%)
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::run ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
epics::pvData::detail::MethRunner<BlockingTCPTransportCodec>::~MethRunner ( )
Field 'this.inst' in the object of this method has base type 'BlockingTCPTransportCodec'.
BlockingTCPTransportCodec::internalClose ( )
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::num_instances [data]
This method is from 'BlockingTCPTransportCodec' class.
BlockingTCPTransportCodec::sendBufferFull ( int tries )
This method is from 'BlockingTCPTransportCodec' class.
BlockingClientTCPTransportCodec::internalClose ( )
This method is from derived class 'BlockingClientTCPTransportCodec'.
BlockingClientTCPTransportCodec::BlockingClientTCPTransportCodec ( epics::pvAccess::BlockingTCPConnector::shared_pointer const& context, SOCKET channel, epics::pvAccess::BlockingTCPConnector::shared_pointer const& responseHandler, int32_t sendBufferSize, int32_t receiveBufferSize, BlockingClientTCPTransportCodec::shared_pointer const& client, epics::pvData::int8 p7, float heartbeatInterval, int16_t priority )
This constructor is from derived class 'BlockingClientTCPTransportCodec'.
BlockingServerTCPTransportCodec::internalClose ( )
This method is from derived class 'BlockingServerTCPTransportCodec'.
BlockingServerTCPTransportCodec::destroyAllChannels ( )
This method is from derived class 'BlockingServerTCPTransportCodec'.
BlockingServerTCPTransportCodec::invalidSecurityPluginNameStatus [data]
This method is from derived class 'BlockingServerTCPTransportCodec'.
...
sharedstateimpl.h
namespace pvas
[+] struct Operation::Impl 1
|
Change |
Effect |
1 |
Field info has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 2 (0.6%)
Operation::Impl::Cleanup::operator() ( struct Operation::Impl* impl )
1st parameter 'impl' (pointer) has base type 'struct Operation::Impl'.
Operation::Impl::~Impl ( )
This destructor is from 'struct Operation::Impl' class.
to the top
Header Files 111
allocator.h
anyscalar.h
atomic_word.h
auto_ptr.h
baseChannelRequester.h
basic_file.h
basic_string.h
basic_string.tcc
beaconEmitter.h
beaconHandler.h
beaconServerStatusProvider.h
bitSet.h
blockingTCP.h
blockingUDP.h
boost_sp_counted_base.h
byteBuffer.h
c++io.h
channelSearchManager.h
char_traits.h
client.h
clientContextImpl.h
clientFactory.h
clientpvt.h
codec.h
configuration.h
createRequest.h
deque.tcc
destroyable.h
ellLib.h
epicsEvent.h
epicsException.h
epicsMutex.h
epicsThread.h
epicsTime.h
epicsTypes.h
event.h
fairQueue.h
in.h
inetAddressUtil.h
introspectionRegistry.h
ios_base.h
iosfwd
libio.h
list.tcc
lock.h
logger.h
monitor.h
new_allocator.h
osdSock.h
osdThread.h
osiSock.h
pipelineServer.h
pipelineService.h
pthreadtypes.h
pvAccess.h
pvaConstants.h
pvaDefs.h
pvaVersion.h
pvData.h
pvIntrospect.h
pvType.h
referenceCountingLock.h
remote.h
requester.h
responseHandlers.h
rpcClient.h
rpcServer.h
rpcService.h
sched.h
security.h
securityImpl.h
serializationHelper.h
serialize.h
server.h
serverChannelImpl.h
serverContext.h
serverContextImpl.h
shared_ptr.h
sharedstate.h
sharedstateimpl.h
sharedVector.h
sockaddr.h
socket.h
status.h
stddef.h
stdexcept
stdint.h
stdio.h
stl_algobase.h
stl_bvector.h
stl_deque.h
stl_function.h
stl_iterator.h
stl_iterator_base_types.h
stl_list.h
stl_map.h
stl_multimap.h
stl_pair.h
stl_queue.h
stl_set.h
stl_tree.h
stl_uninitialized.h
stl_vector.h
stringfwd.h
thread.h
timer.h
timeStamp.h
transportRegistry.h
types.h
vector.tcc
wildcard.h
to the top
Source Files 47
abstractResponseHandler.cpp
baseChannelRequester.cpp
beaconEmitter.cpp
beaconHandler.cpp
beaconServerStatusProvider.cpp
blockingTCPAcceptor.cpp
blockingTCPConnector.cpp
blockingUDPConnector.cpp
blockingUDPTransport.cpp
ChannelAccessFactory.cpp
channelSearchManager.cpp
client.cpp
clientContextImpl.cpp
clientFactory.cpp
clientGet.cpp
clientInfo.cpp
clientMonitor.cpp
clientPut.cpp
clientRPC.cpp
clientSync.cpp
codec.cpp
configuration.cpp
hexDump.cpp
inetAddressUtil.cpp
introspectionRegistry.cpp
logger.cpp
monitor.cpp
pipelineServer.cpp
pvAccess.cpp
pvaVersion.cpp
referenceCountingLock.cpp
requester.cpp
responseHandlers.cpp
rpcClient.cpp
rpcServer.cpp
rpcService.cpp
security.cpp
serializationHelper.cpp
server.cpp
serverChannelImpl.cpp
serverContext.cpp
sharedstate_channel.cpp
sharedstate_put.cpp
sharedstate_pv.cpp
sharedstate_rpc.cpp
transportRegistry.cpp
wildcard.cpp
to the top
Objects 1
libpvAccess.so.6.1.2
to the top
- Replies:
- Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) Michael Davidsaver via Tech-talk
- Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
- References:
- EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk
- Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
- Navigate by Date:
- Prev:
Re: Can't import PyEpics on CentOS 7 Matt Newville via Tech-talk
- Next:
Re: EPICS release series after 7.0: 7.1 or 8.0? Ralph Lange via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
- Next:
Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) Michael Davidsaver via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
|