Commit Graph

967 Commits

Author SHA1 Message Date
Matej Sekoranja
d7eafcb9c5 EPICS base 3.14/clang compilation, TCPAcceptor shutdown on OSX (BSD) fixed 2015-12-16 11:46:58 +01:00
Michael Davidsaver
76b414dac6 todo: disable local mcast fanout 2015-12-14 17:04:58 -05:00
Michael Davidsaver
b350046427 todo: udprepeat 2015-12-14 17:04:58 -05:00
Michael Davidsaver
96deab1e77 todo: placeholder needs to be filled in 2015-12-14 17:04:58 -05:00
Michael Davidsaver
b64e99c680 todo: attempt to fix testChannelAccess 2015-12-14 17:04:58 -05:00
Michael Davidsaver
7b72669860 todo: locking in channelmonitor 2015-12-14 17:04:58 -05:00
Michael Davidsaver
609237a551 TODO: add virtual dtor for all classes w/ virtual methods 2015-12-14 17:04:58 -05:00
Michael Davidsaver
b3d58266a7 ServerContextImpl: bind to a single interface
Allow config option EPICS_PVAS_INTF_ADDR_LIST specify a single
interface (multiple interfaces to be handled later)

Bind TCP listen and UDP sender to the interface address.
For non-windows, bind a second UDP socket to the interface
broadcast address.

Allow dynamic broadcast port
2015-12-14 17:04:58 -05:00
Michael Davidsaver
5d744dbebe BlockingUDPTransport: add replyTransport
allow replies to be sent out on a different socket.
Needed when binding the an interface broadcast address.

Also, expose the ctor and deprecate pointless create() method.
2015-12-14 17:04:58 -05:00
Michael Davidsaver
5206966875 BlockingTCPAcceptor allow bind to specific interface 2015-12-14 17:04:58 -05: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
03e5b0c747 Allow ServerContextImpl to be created w/ specific conf. 2015-12-14 17:04:57 -05:00
Michael Davidsaver
b9dd9e8e6c getRemoteName()
Cache the TCP peer address as a string and pass it to createChannel().
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
f2b47ef5e9 thread shutdown 2015-12-14 16:59:55 -05:00
Michael Davidsaver
730d30fe54 AbstractCodec use fair_queue 2015-12-14 16:59:55 -05:00
Michael Davidsaver
db86e47659 add fair_queue 2015-12-14 16:59:55 -05:00
Michael Davidsaver
9068fa3950 ServerContextImpl::setServerPort not fully implemented
actually calling this can only break things.
2015-12-14 16:59:55 -05:00
Michael Davidsaver
d68b19e703 BlockingTCPAcceptor: smaller listen queue
No good can come from making this large.
2015-12-14 16:59:55 -05:00
Michael Davidsaver
6254525cba use epicsThread and Thread::Config
Catches errant c++ exceptions and is joinable
2015-12-14 16:59:47 -05:00
Michael Davidsaver
b4048c3bfd blockingUDP: error checking 2015-12-14 14:25:20 -05:00
Michael Davidsaver
bcc16bdf00 serverContext: remove scary leftover 2015-12-14 14:25:20 -05:00
Michael Davidsaver
3eb7775493 introduce ConfigurationBuilder 2015-12-14 14:25:20 -05:00
Michael Davidsaver
b3f78718b0 update Configuration
move string parsing into the base class.
Add several sub-classes for different configuration
sources (environment, std::map), and ConfigurationStack
to allow  chaining of different sources.

Mark Properties as deprecated, just use std::map by way
of ConfigurationMap.
2015-12-14 14:25:20 -05:00
Michael Davidsaver
7a2e25f79c rewrite Properties
let's be rid of some egregiously bad C++ code...
2015-12-14 14:24:40 -05:00
Michael Davidsaver
9b43a07b47 configurationTest now uses htons, needs winsock dll 2015-11-24 20:22:37 -05:00
Matej Sekoranja
4ae0a12614 Merge pull request #17 from mdavidsaver/miscclean
Misc. cleanup and minor features
2015-11-25 00:25:38 +01:00
Michael Davidsaver
0fd7b111a1 pre-processor fun 2015-11-24 14:51:25 -05:00
Michael Davidsaver
fccf7c1b93 quiet (un)signed warning 2015-11-23 16:51:53 -05:00
Michael Davidsaver
be01b418f2 use CMD_* instead of magic number 2015-11-23 16:41:31 -05:00
Michael Davidsaver
f561cb97dc shorten thread names
so more of the interesting part is shown by epicsThreadShowAll()
2015-11-23 16:41:31 -05:00
Michael Davidsaver
9696b17196 use shared_ptr immediately 2015-11-23 16:41:31 -05:00
Michael Davidsaver
2e64b1b785 Message for unhandled exceptions in UDP message processing 2015-11-23 16:41:31 -05:00
Michael Davidsaver
e08db19ddc avoid unnecessary vector copy 2015-11-23 16:41:31 -05:00
Michael Davidsaver
87af5b308f config get socket address
revamp configurationTest
2015-11-23 16:41:31 -05:00
Michael Davidsaver
1d30949690 no point in using envGetConfigParamPtr except for predefine parameters
Unless a default is provided, this is equivlent to getenv()
2015-11-23 16:41:31 -05:00
Michael Davidsaver
0fe4e41099 don't silently swallow exceptions 2015-11-23 16:41:31 -05:00
Michael Davidsaver
839faf66c0 AtomicValue use epicsAtomic if available 2015-11-23 16:41:31 -05:00
Michael Davidsaver
c59715f687 cleanup commented code blocks 2015-11-23 16:41:31 -05:00
Matej Sekoranja
7e2c216389 fixed multiple provider channeList when one fails 2015-11-09 10:37:35 +01:00
Matej Sekoranja
837479bb30 Update README.md 2015-10-15 21:53:20 +02:00
Matej Sekoranja
d4498f5950 Merge branch 'msekoranja-default' 2015-10-15 21:22:57 +02:00
Matej Sekoranja
55328e4a53 merge 2015-10-15 21:18:56 +02:00
Matej Sekoranja
5884d5b778 PipelineMonitor instead of epics::pvData::Monitor 2015-10-15 20:59:15 +02:00
Matej Sekoranja
bb5d7cae6c updated version, renamed README -> README.md 2015-10-15 13:59:42 +02:00
Matej Sekoranja
91f7eab049 release/4.1 merged back to master 2015-10-15 13:53:52 +02:00
Matej Sekoranja
7dc7615de2 links updated in README 4.1.2 2015-10-14 08:56:51 +02:00
Matej Sekoranja
3105819a54 RELEASE_NOTES, README cleanup 2015-10-12 23:28:21 +02:00
Matej Sekoranja
b80c0aa1c9 4.1.2 release 2015-10-08 09:02:22 +02:00
Ralph Lange
a9955a0121 jenkins: fix CloudBees doc job 2015-09-28 15:02:23 +02:00