Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.

Conversation

@Ingvord
Copy link
Member

@Ingvord Ingvord commented May 5, 2017

Currently developer must provide an origin of the exception in the code manually:

ApiCommExcept::re_throw_exception(one,
    (const char*)"API_CommunicationFailed",
    desc.str(),
    (const char*)"DeviceProxy::command_list_query()");// NOTE THIS LINE

We can automatize this using __func__, __LINE__ and __FILE__. See for instance this post on SO

Ingvord and others added 30 commits October 6, 2016 22:30
* Close #4
Change output directory for doxygen: source -> binary
Add documentation section
install tango.h
Change install path: tango/idl -> idl
* adjust pkg-config file; link tango against dl
* add cpack
Revert tests
replace CORBA::string_dup with Tango
replace CORBA::Type with DevType
Swapped origin and desc in some versions of Tango::Except::throw_exception.
* close #235 (SF793)

API_AsynReplyNotArrived exception was wrongly thrown when asyn call
response was received in the last 20ms before the call timeout expiration.
* changed permissions to make setup.sh and shutdown.sh test environment scripts executable
* removed unused RcsId variable from source files
Generates files from IDL only at compilation time and only if necessary
(Crash when a client receives attribute configuration events with non empty
enum labels field)
This reintroduces a small memory leak but will avoid crashes reported in the
following tickets: SF814, SF823 and SF827.
(Event relative change filter does nothing)
Archive relative change events were affected too.
Link to Sourceforge ticket: https://sourceforge.net/p/tango-cs/bugs/825
Ingvord and others added 22 commits December 15, 2016 14:30
Add tangodsdir variable to tango.pc. Defaults to CMAKE_INSTALL_FULL_BINDIR. Can be set via TANGO_DEVICE_SERVER_PATH cmake variable
* Fix #314: Check ZmqEventSubscriptionChange command event parameter
Give a bit more details and added a link to a page describing the GitHub workflow with fork/PR in more details.
* progress #339: pointer-cast-size-mismatch attrgetsetprop.cpp:200
Add CLion badge
Events received with UNKNOWN data format and without values when subscribing
from a Tango 9 client to a Tango 7 server DevShort attribute
This reverts commit 64f2bd6.
… when the device server runs on a host with multiple network interfaces
... to track master branch build status
This bug was generating an exception when a server was trying to set an
attribute property (e.g. set_max_value) when a memorized attribute was written
during device init phase (write hardware at init feature).
This is the code style which looks the closest from the original Tango C++
kernel code style.
@t-b
Copy link
Collaborator

t-b commented Jun 9, 2017

Sounds like a good idea. If we do that I would also appreciate overloads accepting std::string.

@t-b
Copy link
Collaborator

t-b commented Feb 27, 2018

According to 1 I think using PRETTY_FUNCTION for gcc should be prefered over func as it has the namespace, class and function parameters as well. MSVC seems to not have something as good.

Unfortunately we would have to do this with a macro though.

@Ingvord
Copy link
Member Author

Ingvord commented Feb 27, 2018

Well, I was thinking about to use this library: https://github.com/boostorg/stacktrace

But as we prefer not to depend on 3rd party libraries we will have to fetch the source code and include into our code, or just copy-and-paste the main idea...

@t-b
Copy link
Collaborator

t-b commented Feb 27, 2018

@Ingvord Nice library! But a big invasive for my taste. You could make depending on it optional. Just grabbing the source and including it is usally a bad idea.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants