Commit Graph

111 Commits

Author SHA1 Message Date
Michael Davidsaver
99f68dac04 monitorfifo better default config handling 2018-07-14 15:06:44 -07:00
Michael Davidsaver
2912112419 MonitorFIFO use pvRequest field selection mask 2018-07-14 15:00:15 -07:00
Michael Davidsaver
512cc11923 client: avoid race during monitor shutdown
poll() vs. cancel()
2018-07-09 15:19:52 -07:00
Bruno Martins
3caea5991a Fix PutCallback type comparison. Fix #112 2018-07-09 08:59:51 -07:00
Michael Davidsaver
c93f7a35f7 pva/client.h: no lastRequest()
until #97 is resolved.  Avoids annoying message.

https://github.com/epics-base/pvAccessCPP/issues/97
2018-06-29 16:22:57 -07:00
Michael Davidsaver
135f66393d pva/client.h: Get expose valid bitset
turns out this is useful after all.
2018-06-29 16:22:57 -07:00
Michael Davidsaver
80db41f1c4 pva/client.h Allow callbacks to unref Operations
Keep a local (internal) shared_ptr whenever
user callbacks are run.  This allows user
callbacks to drop (reset()/dtor) Operations
or Monitors safely.

Ref must to captured before mutex is locked,
which is safe as the internal weak_ptr is
not changed after build() (despite being non-const)
2018-06-29 16:22:57 -07:00
Michael Davidsaver
5e887a6d02 add MonitorFIFO 2018-06-26 19:06:47 -07:00
Michael Davidsaver
a413f8f9db add dummy ChannelFind implementation.
Since this class is not really used...
2018-06-26 11:23:50 -07:00
Michael Davidsaver
de6586b92f MonitorElement::Ref swap() and move, but no copy 2018-06-05 09:32:22 -07:00
Michael Davidsaver
578dbc9456 add another ChannelProviderRegistry::addSingleton() overload
Construct a "factory" around a pre-allocated instance.
2018-06-05 09:32:22 -07:00
Michael Davidsaver
8000ed0637 client.h default ctor for ClientProvider
Allow an invalid ClientProvider to be created
for later assignment.
2018-06-05 09:32:22 -07:00
Michael Davidsaver
794d72ba6b client.h MonitorSync missing init of member 2018-06-04 10:08:01 -07:00
Michael Davidsaver
bd88e35448 client.h update doc 2018-05-16 09:14:49 -07:00
Michael Davidsaver
7cf78d5b9b client.h add ClientProvider::name() 2018-04-20 15:22:57 -07:00
Michael Davidsaver
3d85852c93 attempt to fix dllimport issue 2018-04-18 09:01:11 -07:00
Michael Davidsaver
61d43e498d client.h std::ostream printing 2018-04-10 16:19:03 -07:00
Michael Davidsaver
0d40464541 client.h: expose reset()
can also be accomplished with assignment from empty.

op = pvac::Operation()
2018-04-10 15:17:18 -07:00
Michael Davidsaver
0c6fe2c1c6 client.h: add validity test for all handles 2018-04-08 16:04:36 -07:00
Michael Davidsaver
4fcbdff580 missing includes 2018-03-19 15:36:21 -07:00
Michael Davidsaver
acab4cd408 fix potential *NULL from Get2PutProxy 2018-03-08 11:42:56 -05:00
Michael Davidsaver
b5bf6a4ccd client: (shallow) copy into Monitor::root
Avoid exposing refs. from monitor queue
which might then be used after release().
Also allows users the possibility of caching
getSubField() until root.get() actually changes.
2018-02-21 11:19:21 -08:00
Michael Davidsaver
d33356ced6 drop deprecated 2018-01-31 12:48:59 -08:00
Michael Davidsaver
c6b1786008 minor doc 2018-01-31 11:51:13 -08:00
Michael Davidsaver
4dcc8bffe1 minor 2017-12-12 09:57:24 -06:00
Andrew Johnson
65b0ac1a32 Fixes needed for older VxWorks GCC 2017-11-29 16:44:19 -06:00
Michael Davidsaver
bc0892a1ad workaround for older gcc 2017-11-28 17:54:25 -06:00
Michael Davidsaver
d1cbb0abd5 pvac: ensure that listeners are done in ClientChannel
ensure no concurrent callback in progress
when removing listeners.
2017-11-22 14:20:26 -06:00
Michael Davidsaver
6055dbb983 pvac user internal/external refs. 2017-11-22 14:14:05 -06:00
Michael Davidsaver
250826ffb9 add reftrack to pvac 2017-11-22 12:32:38 -06:00
Michael Davidsaver
dc99e2ae4c add ChannelProviderRegistry::addSingleton()
Helper for providers of singleton resources.
Useful for process-wide resources like the PDB.
2017-11-05 12:22:39 -06:00
Michael Davidsaver
5f96f5722e pvac: client monitor locking 2017-11-05 12:19:10 -06:00
Michael Davidsaver
393ac72785 minor doc 2017-10-05 15:33:48 +02:00
Michael Davidsaver
4eb8856a00 pvac: fix MonitorSync method name collision 2017-09-30 14:22:25 -05:00
Michael Davidsaver
b806b7ca42 pvac: generalize sync. put() 2017-09-30 13:54:59 -05:00
Michael Davidsaver
9460fab294 pvac: ClientProvider ctor from ChannelProvider 2017-09-29 16:22:19 -05:00
Michael Davidsaver
25c7da43f2 pvac: better Requester names
pass through the client name (aka the channel name)
2017-09-06 13:49:46 -05:00
Michael Davidsaver
8a24f9cd9c Channel::createChannelProcess default ensure process=true 2017-09-06 12:48:03 -05:00
Michael Davidsaver
33fb103a4b defaults ChanneGet/Process use ChannelPut
provide default implementations of
Channel::createChannelGet() and Channel::createChannelProcess()
which proxy to Channel::createChannelPut().

Get uses ChannelPut::get().
Process uses ChannelPut::put() with an empty bit set (no data)
2017-09-05 15:45:36 -05:00
Michael Davidsaver
6ba8416736 reftrace Channel 2017-09-02 09:55:15 -05:00
Michael Davidsaver
79874e1811 reftrack more classes
include the common abstract bases used by all ChannelProviders.
2017-09-02 09:55:15 -05:00
Michael Davidsaver
98df225583 insturment with reftrack 2017-08-30 11:17:03 -05:00
Michael Davidsaver
b53761d4d4 MonitorElement remove unused 2017-07-21 13:12:30 +02:00
Michael Davidsaver
937fb154c1 update release notes 2017-07-18 19:06:55 +02:00
Michael Davidsaver
97e1cd4c69 pvac: add sync. monitor 2017-07-18 17:23:21 +02:00
Michael Davidsaver
158b23cfce __attribute__ error added in gcc 4.3 2017-07-18 15:34:53 +02:00
Michael Davidsaver
b2ef7cd0ec more shared_ptr compat 2017-07-18 15:10:32 +02:00
Michael Davidsaver
36be4d3bf7 pvac ensure cancel delivered 2017-07-18 14:02:47 +02:00
Michael Davidsaver
1a47e5fb0a pvac: add synchronous put to 'value' field 2017-07-18 14:02:14 +02:00
Michael Davidsaver
edc54aae72 more shared_ptr compat 2017-07-18 13:21:18 +02:00