Commit Graph

65 Commits

Author SHA1 Message Date
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
Matej Sekoranja
ffeab62d7f better multiple channels message, failed channel connect handling 2015-01-07 10:00:16 +01:00
Matej Sekoranja
e212817e74 channel creation failure debug log added 2015-01-07 08:40:07 +01:00
Matej Sekoranja
2f56db0dff pvAccess client Monitor::start() duplicate call 2014-12-09 13:59:32 +01:00
Matej Sekoranja
cf40786cf7 compiler warning fixed 2014-11-17 19:09:34 +01:00
Matej Sekoranja
c672259ec6 explicit address channel connect 2014-11-17 13:28:42 +01:00
Matej Sekoranja
4e53da07c8 int16 beaconSeqId -> int8 flags + int8 beaconSeqId 2014-11-17 12:14:52 +01:00
Matej Sekoranja
11d79c81d1 removed unused var 2014-11-17 10:44:17 +01:00
Matej Sekoranja
b3c030d946 local multicast on the client side 2014-11-13 08:37:06 +01:00