Commit Graph

800 Commits

Author SHA1 Message Date
Michael Davidsaver e80ab0464e less hacky-ness in operation disconnect/destroy notification
avoid pointer/reference comparison.
2017-05-24 17:20:17 -04:00
Michael Davidsaver 24c9b31cf6 update pvAccess.h doc comments
describe how things should be!
2017-05-24 17:20:17 -04:00
Michael Davidsaver 3283bed413 drop PVA_ALIGNMENT constant
This will forevermore be 1, so no
reason to incur complexity of testing this.

size % PVA_ALIGNMENT -> 0
alignBuffer(PVA_ALIGNMENT) -> no-op
alignedValue(val, PVA_ALIGNMENT) -> val
2017-05-24 17:20:17 -04:00
Michael Davidsaver 87dca19708 codec: avoid indirection when accessing buffers
avoid some indirection to make this code easier to follow.
move buffer lower limit to base class.
2017-05-24 17:20:17 -04:00
Michael Davidsaver 0c1f410e63 avoid unnecessary auto_ptr/new 2017-05-24 17:20:17 -04:00
Michael Davidsaver b05e7699b5 remove no-op lock/unlock from Lock sub-classes 2017-05-24 17:20:17 -04:00
Michael Davidsaver bbe6cb2553 Lock provide default no-op implementation for lock/unlock 2017-05-24 17:20:17 -04:00
Michael Davidsaver 2cc1be2dee codec.h: minor 2017-05-24 17:20:17 -04:00
Michael Davidsaver ab4f0b7e3a collapse BlockingSocketAbstractCodec -> BlockingTCPTransportCodec 2017-05-24 17:20:17 -04:00
Michael Davidsaver e47124aa30 collapse BlockingAbstractCodec into BlockingSocketAbstractCodec 2017-05-24 17:20:17 -04:00
Michael Davidsaver 5428b1ed2d codec.h: add virtual and decorate w/ OVERRIDE/FINAL
Mark where inheritance is actually happening,
and where it ends.
2017-05-24 17:20:17 -04:00
Michael Davidsaver d404769133 add default for first Channel::createChannel()
default for first form which calls the second
2017-05-24 17:20:17 -04:00
Michael Davidsaver 568054ce68 add virtual dtors
being pedantic...
2017-05-24 17:20:17 -04:00
Michael Davidsaver 65cb1c8397 minor 2017-05-10 14:59:16 -04:00
Michael Davidsaver 9dbd354bc0 caProvider: pretend to allow create with Configuration 2017-05-09 18:23:45 -04:00
Michael Davidsaver 065d653a14 minor 2017-05-09 18:23:45 -04:00
Michael Davidsaver 9253c31c0b rework ChannelProviderRegistry
Replace interface+impls with a single concrete container
which wraps a map.

This breaks code which was sub-classing.
However, no external code can be found which does this.

A build() method is used instead of simple ctor so
that the ctor is private, which will cause theoretical
external sub-class code to fail to compile.

Code using getChannelProviderRegistry()
and existing methods will behave as before.

Add ChannelProviderRegistry::getFactory() for pass through
to ChannelProviderFactory (Registery is just a proxy()...)

Remove existing get/create virtual method in favor of getFactory.
Update both existing implementations.

Add SimpleChannelProviderFactory to cut down on boilerplace
for the common case.

Add method to clear mapping and release any saved sharedInstance.
2017-04-25 21:15:43 -04:00
Michael Davidsaver 4a9d79f019 sockAddrToA -> sockAddrToDottedIP
Avoid blocking host name lookup for debug log messages.
Can cause long delays when DNS not available.
2017-04-15 11:48:24 -04:00
Matej Sekoranja 2cf38c875b updated version 2016-07-26 23:34:15 +02:00
Matej Sekoranja c12b0d130e Merge pull request #57 from dhickin/caProvider_arrays
caProvider: Remove control/valueAlarm for arrays
2016-07-19 17:26:48 +02:00
Dave Hickin e0e45c3a0e caProvider: Remove control/valueAlarm for arrays
This brings caProvider behaviour in line with pvaSrv.
2016-07-18 16:35:43 +01:00
Dave Hickin dc61b3a4cd Correctly set status in caProvider 2016-07-18 15:26:17 +01:00
Matej Sekoranja 3a73cb687b ca provider destruction fixed
resolves #53
2016-06-14 22:34:14 +02:00
Dave Hickin 56286872b1 Correct get of display.limitLow 2016-05-18 11:38:23 +01:00
Dave Hickin 5d992aee1a Keep NT id if optional field of DBR match not requested 2016-05-17 10:34:31 +01:00
Dave Hickin 362f3c02d7 Return requested fields in caProvider
caProvider matches to closest DBR type. Strip out unrequested fields
and only return requested parts of structure fields. Includes enums.
Check fields are non-null rather than throwing. Check labels non-null to
handle requests for choices field without index.

Fixes #42. Covers most cases of #41.
2016-05-17 10:33:24 +01:00
Matej Sekoranja 4e264f2295 win32: moved osiSockAttach() call before loadConfiguration
should fix #45
2016-04-26 20:48:27 +02:00
mrkraimer a9e3f274c0 remove dead code 2016-04-19 15:10:41 -04:00
mrkraimer 998bf8ac67 PVAServerRegister:: allow providerList, do not use epicsAtExit 2016-04-19 10:07:58 -04:00
Andrew Johnson 0f61408a28 Minor clean-up after issue #43 fix. 2016-04-14 11:36:14 -05:00
Matej Sekoranja 6dc9b0f96f replaced LGPL wildcard matcher w/ simplistic epics-base version 2016-04-14 11:31:32 +02:00
Andrew Johnson 6698bb86fb Additional includes needed for MSVC 2016-04-06 17:02:03 -05:00
Andrew Johnson b928ea4aab Fix oops when MB turned off. 2016-04-06 16:21:06 -05:00
Andrew Johnson 9a8644033d Prevent redefinition of NOMINMAX
While this protection is not strictly necessary here, if someone
does a cut-and-paste into a header file it should be included.
2016-04-06 15:22:11 -05:00
Andrew Johnson 0ad8ece840 Define and use GETPID() macro 2016-04-06 15:19:35 -05:00
Andrew Johnson f2f14dc5a7 Link with pvMB when requested 2016-04-06 10:59:23 -05:00
Andrew Johnson e28fd6129e Remove need to undef epicsExportSharedSymbols
This approach works OK, but makes it much harder to find files
that have mistakes in them since they can cause other functions
to get the wrong import/export setting.
2016-04-06 10:59:23 -05:00
Andrew Johnson 1e031bf393 Reorder some include lines
Order should be
    Compiler, OS, Base, pvData, pvAccess
This makes it much easier to get the epicsExport stuff right.
2016-04-06 10:59:23 -05:00
Andrew Johnson 01dce98a6c Add copyright notice 2016-04-06 10:59:23 -05:00
Andrew Johnson 7ccb64eea6 Fix includes on wrong side of epicsExportSharedSymbols 2016-04-06 10:59:23 -05:00
Andrew Johnson 12d68fe209 Add epicsExportSharedSymbols, move some includes 2016-04-06 10:59:22 -05:00
Andrew Johnson 7ed5f8b4bf Wrong keyword, use epicsShareFunc 2016-04-06 10:59:22 -05:00
Matej Sekoranja 02656af922 "monitor reconnect of different type channel" fix
In addition Monitor::release method checks if structure is of the right
type.
References #40.
2016-04-06 14:00:17 +02:00
Matej Sekoranja 2f73b206bb destroy channel: missing 4 bytes request 2016-03-30 09:11:21 +02:00
Andrew Johnson 5ffdb89450 Lower-case windows header filename for MinGW builds 2016-03-29 17:18:00 -05:00
Matej Sekoranja b70c1d69a8 ChannelProviderFactoryImpl static destruction fixed
references #37
2016-03-23 23:15:29 +01:00
Matej Sekoranja 04a90c4780 c++11 compilation issues
references #28
2016-03-23 22:04:09 +01:00
Matej Sekoranja 85e881fbcd send udp transport initialization order, search response broadcast transport null check
closes #39
2016-03-23 21:10:04 +01:00
Matej Sekoranja cce2a6c4b7 Merge pull request #36 from mdavidsaver/reqoptypedef
Add requester_type and operation_type
2016-03-21 22:00:42 +01:00
Matej Sekoranja f14fdd207c merge 2016-03-21 21:54:37 +01:00