Commit Graph

344 Commits

Author SHA1 Message Date
Michael Davidsaver 2381f28c73 allow unselection/clear of Union/Any 2020-07-19 21:07:15 -07:00
Michael Davidsaver f22715063c allow Union deref w/o field name 2020-07-19 21:07:15 -07:00
Michael Davidsaver 38c15e655f fix/test allocArray 2020-07-19 21:07:15 -07:00
Michael Davidsaver f2777e319b fix shared_array::convertTo() 2020-07-16 12:37:48 -07:00
Michael Davidsaver c8c12d9c54 add allocArray() 2020-07-16 12:37:48 -07:00
Michael Davidsaver 01ff23f5b3 add TypeCode::arrayType() 2020-07-16 12:37:48 -07:00
Michael Davidsaver 290a2689fc add Value::lookup() 2020-07-16 12:37:48 -07:00
Michael Davidsaver bb7ac1e8e6 rework iteration, extend to Union 2020-07-16 12:37:48 -07:00
Michael Davidsaver 2d799c275a add Value::nmembers() 2020-07-16 12:37:48 -07:00
Michael Davidsaver 3a7478579f fixup Value::Iterable
default constructable, movable, copyable

expose iterator typedef
2020-07-16 12:37:48 -07:00
Michael Davidsaver b9e025a6dd Value::compareType() -> Value::equalType() 2020-07-03 20:54:47 -07:00
Michael Davidsaver 479f0f1f4d fix spelling in public headers 2020-07-03 20:54:47 -07:00
karlosp 3a264e0d12 Fix missing pointer dereference 2020-06-29 06:59:16 -07:00
Michael Davidsaver 6dbd7f5263 NTScalar explicit ctor
Avoid possibility of accidental incomplete
initialization.
2020-06-25 17:26:02 -07:00
Michael Davidsaver 9f9f038055 allow Null Member
Makes Member easier to work with.
2020-06-25 17:26:02 -07:00
Michael Davidsaver b8be9bd058 fix Value iteration
Usage encouraged accidental use of temporary addresses.

Value top(...);
for(auto mem : top["sub"].ichildren()) {
}

ichildren() stores Value* to out of scope temporary
returned by top["sub"].
2020-06-25 11:40:03 -07:00
Michael Davidsaver 5e05249b7d Allow ID for StructA/UnionA 2020-06-25 11:40:03 -07:00
Michael Davidsaver 783c53b4d0 minor 2020-06-25 11:40:03 -07:00
Michael Davidsaver 7a9d5cb6ab WIN32: SetErrorMode(0) 2020-06-16 16:39:00 -07:00
Michael Davidsaver b6ee231ba8 ensure osiSockAttach() 2020-06-16 16:38:59 -07:00
Michael Davidsaver d6156890f4 print array of quoted strings 2020-06-09 15:03:02 -07:00
Michael Davidsaver 027e590fba improve type change error messages 2020-05-22 09:17:22 -07:00
Michael Davidsaver 69efc4b8a9 minor 2020-05-22 09:17:22 -07:00
Michael Davidsaver a556e7e290 fix array of scalar xcode 2020-05-18 19:01:37 -07:00
Michael Davidsaver 609768a33d add client channel cache
Maintain unused channels for 20 seconds before closing.
2020-05-07 18:45:16 -07:00
Michael Davidsaver 47790e5943 ResultWaiter::complete() only once 2020-05-07 18:45:16 -07:00
Michael Davidsaver 6c98614356 minor 2020-05-07 18:45:16 -07:00
Michael Davidsaver b2826a5234 shared_array(begin, end) use std::distance() 2020-04-25 14:49:39 -07:00
Michael Davidsaver 8ed99da20a 3.14 compat no -fvisibility=hidden 2020-04-25 14:40:43 -07:00
Michael Davidsaver add99065e9 thread_local -> ThreadEvent
at least GLIBC runs TLS dtors before atexit() callbacks
on exit() or return from main().

Use epicsThreadPrivate which doesn't cleanup locals for main().
2020-04-25 14:40:43 -07:00
Michael Davidsaver 549fd92f87 change Server::listSource() 2020-04-25 14:40:43 -07:00
Michael Davidsaver 1a462617a4 minor 2020-04-25 14:40:43 -07:00
Michael Davidsaver 88d23a0314 shared_array add iterator range ctor 2020-04-21 14:37:29 -07:00
Michael Davidsaver e741e41159 conn limit sequential messages
Process at most 4 messages from one connection
before re-contending.
2020-04-17 17:39:01 -07:00
Michael Davidsaver 2a0dd0ee4f minor 2020-04-17 17:18:23 -07:00
Michael Davidsaver 7e6a08def7 fix Delta print of Union 2020-04-17 14:19:30 -07:00
Michael Davidsaver d65abb28ea shared_array fix print of char[] 2020-04-17 14:19:30 -07:00
Michael Davidsaver ed5bcc8a4f fix handling of segmented messages 2020-04-17 14:16:44 -07:00
Michael Davidsaver c32d1ae0e2 fix pipeline w/ queueSize=1
Maybe not so useful, but shouldn't stall
2020-04-17 12:10:43 -07:00
Michael Davidsaver 48ca7b34c7 fix VERSION_INT() order
defined in pvxs/version.h included via utilpvt.h
2020-04-16 22:01:38 -07:00
Klemen Vodopivec 02f24a74e7 Made it build on EPICS 3.14.12.6, all unit tests pass. 2020-04-16 22:01:38 -07:00
Michael Davidsaver 46bcf877c9 replace epicsParse*() with std::sto*() 2020-04-16 22:01:38 -07:00
Michael Davidsaver 6bb0a364be MSVC is weird
if the log_*_printf() macros include the format
string in __VA_ARGS__ then MSVC helpfully
changes the order of arguments!

So what should be

_log_printf(lvl, "format", "prefix", arg1, arg2)

instead becomes

_log_printf(lvl, "format", arg1, arg2, "prefix")

when expanded by the preprocessor!

Excluding the format string from __VA_ARGS__ seems to
avoid the issue.
2020-04-13 21:39:22 -07:00
Michael Davidsaver 6ffcf60a3c 3.14 compat 2020-04-13 18:06:40 -07:00
Michael Davidsaver c158bbd6b0 doc 2020-04-13 18:06:40 -07:00
Michael Davidsaver bc30f4c840 add Value::ifMarked() 2020-04-13 18:06:40 -07:00
Michael Davidsaver 5d7de7254f workaround MSVC weirdness 2020-04-13 18:06:40 -07:00
Michael Davidsaver f1cc5a2aa6 minor thread_local 2020-04-13 18:06:40 -07:00
Michael Davidsaver 8c7654f492 quiet some MSVC warnings 2020-04-12 23:29:30 -07:00
Michael Davidsaver b0eecb949f fixup client operation object lifetime 2020-04-12 23:29:30 -07:00