Michael Davidsaver
3499bcb4af
more getme.cpp
2017-06-19 14:28:16 +02:00
Michael Davidsaver
cd722388dc
fix client Channel ref leak through Context search map
2017-06-19 11:30:08 +02:00
Michael Davidsaver
f610f498fa
more missing virtual dtors
2017-06-19 11:16:14 +02:00
Michael Davidsaver
08be031696
add getme example
2017-06-19 10:56:56 +02:00
Michael Davidsaver
ebb5bc267b
gh-pages for docs
2017-06-16 17:56:13 +02:00
Michael Davidsaver
a453dd75fe
docs
2017-06-16 17:47:41 +02:00
Michael Davidsaver
3a190cb572
deprecate RPCClient::sendRequest()
...
Changes to provider factory registery make this
very inefficient (build a new client context of each request)
2017-06-08 20:37:20 +02:00
Michael Davidsaver
3e37781d85
update RPCClient
...
Addition ctor to use specific Provider (w/ custom config).
Start connect immediately.
Remove need to issueConnect()/waitConnect().
2017-06-08 20:35:43 +02:00
Michael Davidsaver
fabb85c5e3
stupid typo
...
oops
2017-06-08 18:56:00 +02:00
Michael Davidsaver
7f4d48a176
note ref. loop in response handlers
2017-06-08 16:25:26 +02:00
Michael Davidsaver
33e842db2e
boilerplate reduction
2017-06-08 16:23:15 +02:00
Michael Davidsaver
d0915581b4
rationalize CLI handling of providers
2017-06-07 19:59:56 +02:00
Michael Davidsaver
9cbc8fdea6
handle multiple ClientFactory::start()
2017-06-07 14:36:15 +02:00
Michael Davidsaver
edcb408e92
eget/pvget: must keep Monitor alive
2017-06-07 14:24:39 +02:00
Michael Davidsaver
8febd176bb
PVA client ref. loop breaking
...
Adjust ownership of BaseRequestImpl sub-classes.
Keep two weak_ptr<>.
one (internal) for tracking relations with Channel.
one (external) for tracking relations w/ user code, and send Q.
external wraps internal, and calls destroy() to break
ref. loops involving internal.
death to m_thisPointer!
2017-06-07 13:33:10 +02:00
Michael Davidsaver
0334483297
avoid unnecessary globals
2017-06-06 16:23:22 +02:00
Michael Davidsaver
ad2ad17fe5
drop unused
2017-06-06 15:33:49 +02:00
Michael Davidsaver
0468bd0d08
getChannelProviderRegistry() avoid global init order issues
2017-06-06 10:55:10 +02:00
Michael Davidsaver
58b4a5ef64
ClientFactory::start() avoid custom ChannelProviderFactory
2017-06-06 10:41:36 +02:00
Michael Davidsaver
de84fadeb7
ChannelProviderRegistry::add w/ factory function
2017-06-06 10:35:13 +02:00
Michael Davidsaver
6926d911ee
caProvider: init issues
...
avoid static init order issues
ref. count to allow multiple calls to CAClientFactory::start()
2017-06-06 09:46:47 +02:00
Michael Davidsaver
34eeb0717a
SimpleChannelProviderFactory: weak_ptr to shared instance
2017-06-06 09:46:47 +02:00
Michael Davidsaver
860054a7a2
ChannelProviderRegistry update add()/remove()
...
add() return created SimpleChannelProviderFactory instance.
remove()
missing Lock
and remove by instance as well as by name.
2017-06-06 08:28:08 +02:00
Michael Davidsaver
f8c8925b83
don't swallow exception
2017-06-06 08:18:13 +02:00
Michael Davidsaver
6fcfd60bd5
BlockingUDPTransport wrap close() to break ref. loop
2017-06-02 12:32:12 +02:00
Michael Davidsaver
11cc395baf
more BlockingTCPTransportCodec::close() wait for threads
...
can't wait here as locks are held
2017-06-02 12:30:40 +02:00
Michael Davidsaver
8859c4d471
blockingUDPTransport really join thread
2017-06-02 11:25:04 +02:00
Michael Davidsaver
4b873fa015
PVAClientRegister: automatically register "pva" provider
2017-06-01 01:57:30 +02:00
Michael Davidsaver
48b3b648ef
add ServerContext::getCurrentConfig()
2017-06-01 01:56:46 +02:00
Michael Davidsaver
65cdff288f
Configuration list keys
2017-06-01 01:54:17 +02:00
Michael Davidsaver
8971d2771c
ServerContextImpl::destroyAllTransports()
...
Better check for ref. leaks
2017-05-31 15:58:15 +02:00
Michael Davidsaver
3fa6a4e4cc
TransportRegistry composed
...
no need for a seperate allocation and shared_ptr
2017-05-31 15:48:30 +02:00
Michael Davidsaver
3ad27665e8
BlockingTCPTransportCodec::close() wait for threads
2017-05-31 15:47:46 +02:00
Michael Davidsaver
6ad8ba3ba2
AbstractCodec pure virtual redundant to Transport::close()=0
2017-05-31 13:09:21 +02:00
Michael Davidsaver
e72396a022
auto-start PVA server w/ initHook
...
split of this code into a new library pvAccessIOC
which depends on all core libraries.
2017-05-31 13:01:52 +02:00
Michael Davidsaver
634e50e011
startPVAServer() has to keep the pointer
2017-05-31 12:18:42 +02:00
Michael Davidsaver
ce25f0b175
ServerContext ref. loop breaking and threading
...
Drop unnecessary "worker" thread which does no work.
Ensure that returned shared_ptr is unique()==true.
Add ServerContext::create() to start a new server
with specific config and/or providers
2017-05-31 11:40:51 +02:00
Michael Davidsaver
0fbbcc2d9f
remove deprecated Properties
2017-05-30 17:33:04 +02:00
Michael Davidsaver
dd78b467f8
consolidate AtomicBoolean
2017-05-30 17:32:28 +02:00
Michael Davidsaver
277e5c33fb
privatize some API details
...
hide a number of APIs which should not
be public APIs.
2017-05-30 17:12:31 +02:00
Michael Davidsaver
7c85e6073b
move ServerContextImpl into private header
2017-05-30 12:07:23 +02:00
Michael Davidsaver
7c2a093338
add ChannelBaseRequester::channelDisconnect()
...
per-operation notification of channel disconnect/destroy.
2017-05-25 18:01:41 -04:00
Michael Davidsaver
d7a7b81900
move monitor.h from pvDataCPP
2017-05-24 17:20:17 -04:00
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