Michael Davidsaver
f610f498fa
more missing virtual dtors
2017-06-19 11:16:14 +02:00
Michael Davidsaver
33e842db2e
boilerplate reduction
2017-06-08 16:23:15 +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
58b4a5ef64
ClientFactory::start() avoid custom ChannelProviderFactory
2017-06-06 10:41:36 +02:00
Michael Davidsaver
f8c8925b83
don't swallow exception
2017-06-06 08:18:13 +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
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
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
7c2a093338
add ChannelBaseRequester::channelDisconnect()
...
per-operation notification of channel disconnect/destroy.
2017-05-25 18:01:41 -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
b05e7699b5
remove no-op lock/unlock from Lock sub-classes
2017-05-24 17:20:17 -04:00
Michael Davidsaver
65cb1c8397
minor
2017-05-10 14:59:16 -04:00
Michael Davidsaver
065d653a14
minor
2017-05-09 18:23:45 -04:00
Andrew Johnson
12d68fe209
Add epicsExportSharedSymbols, move some includes
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
Michael Davidsaver
15449dde6b
used aliased names for Monitor*
2016-03-18 15:01:48 -04:00
Matej Sekoranja
5279d247ca
general indent beautification
2016-03-10 23:36:16 +01:00
Matej Sekoranja
b1539df759
remote client context: context-provider relationship removed, unnecessary dangling transport creation (server on multiple NIFs)
2016-03-08 22:25:21 +01:00
Matej Sekoranja
d380e4c367
VxWorks compilation fixes
2016-03-02 15:01:14 +01:00
Matej Sekoranja
56b6279035
manual merge
2016-03-02 13:34:05 +01:00
Matej Sekoranja
0db4a9a342
udp transport initialization refactoring (deduplication)
2016-03-02 12:37:58 +01:00
Matej Sekoranja
1ca3918afa
local multicast reimplemented
2016-03-01 12:11:25 +01:00
Matej Sekoranja
fea2e1c263
monitor overrun double ref. fix
2016-02-27 19:54:57 +01:00
Matej Sekoranja
7bfe58f1e2
UDP transport shutdown fixed
2016-02-25 10:37:01 +01:00
Matej Sekoranja
f0ca714214
AUTO_ADDR_LIST - no fallback (as in CA)
2016-02-25 10:30:09 +01:00
Matej Sekoranja
11696cee6f
pipeline client: ackAny percantage support
2016-02-22 12:07:58 +01:00
Matej Sekoranja
b99c49f6d8
pipeline monitor on client side: missing ensureBuffer on monitor init
2016-02-19 14:34:50 +01:00
Matej Sekoranja
db002e51c8
TODO cleanup
2016-01-04 20:12:09 +01:00
Matej Sekoranja
9eae48aef4
client: multiple NIF support
2016-01-04 19:28:17 +01:00
Matej Sekoranja
63a0c71fe9
local multicast revised for multiple NIF (server side only)
2015-12-31 11:18:49 +01:00
Matej Sekoranja
523af71b7f
duplicate search responses from the same server bound to multiple NIFs filtered out
2015-12-17 14:02:11 +01:00
Matej Sekoranja
125822d18f
one instance of responseHandler per context
2015-12-17 09:12:33 +01:00
Matej Sekoranja
4a7f057af1
server channel destroy notification to the client
2015-12-16 14:45:20 +01:00
Matej Sekoranja
91b5cc707d
fixed testChannelAccess
2015-12-16 13:52:56 +01:00
Matej Sekoranja
d7eafcb9c5
EPICS base 3.14/clang compilation, TCPAcceptor shutdown on OSX (BSD) fixed
2015-12-16 11:46:58 +01:00
Matej Sekoranja
8fa82897e1
version bump, fixed ackAny > queueSize bug
2015-12-16 10:17:56 +01:00
Michael Davidsaver
c0ee432598
Allow ChannelProviderFactory::newInstance to accept a Configuration
...
Deprecate ChannelProvider::configure(), which doesn't do much and
is incompatible with the idea of shared context.
A lot of down-stream mess related to the confused relationship
between InternalClientContextImpl and InternalClientContextImpl::ChannelProviderImpl.
This is changed to compose the provider within the context
and use a nested shared_ptr so that references to the provider
are really references to the context.
This brings the ownership semantic in line with what the API
suggests, and what other providers implement.
2015-12-14 17:04:57 -05:00
Michael Davidsaver
4a1bfff40f
Remove clearSendQueue
...
Use BreakTransport exception instead
2015-12-14 16:59:55 -05:00
Michael Davidsaver
c59715f687
cleanup commented code blocks
2015-11-23 16:41:31 -05:00
Matej Sekoranja
5884d5b778
PipelineMonitor instead of epics::pvData::Monitor
2015-10-15 20:59:15 +02:00
Matej Sekoranja
b381d84e64
cancel(), done(), ackAny param
2015-05-06 11:08:23 +02:00
Matej Sekoranja
197f763452
pipeline support
2015-04-29 15:17:54 -04:00
Matej Sekoranja
c8c0498cdf
using new copy API
2015-02-18 10:03:18 +01:00
Matej Sekoranja
d8ae646e70
unchecked copy
2015-02-16 11:21:13 +01:00
Matej Sekoranja
a21908de89
channel get/put/putget/array local storage instead of references
2015-02-12 13:48:29 +01:00
Matej Sekoranja
58b04509de
client: reimplemented handling monitors
2015-02-01 00:45:13 +01:00
Matej Sekoranja
228d7fe279
queue.take possible race, send thread does not wait for read anymore
2015-01-07 12:58:28 +01:00