Yes, there are some tests (mainly related to property history) that depend on ordering and we explicitly randomize that to provoke that. I think it'd be even worse to have tests that accidentally pass because of ordering.
Seems there's no "proper" solution since Tango doesn't have an API for changing the property history directly. Probably the only two options are either recreating the whole db between each test (easy with sqlite but probably quite slow for C++) or as @t-b suggested "hacking" the DbMySQLSelect command to delete the tables. Until that happens, rerunning the tests until they pass is the only way :(
The intent of my last commit is to preserve the apparent original behaviour by adding a default 1s sleep between each server start. If someone like us prefers parallel startup, they should create a class or device property InterStartupServerWait and set it to 0.
Alessio Igor Bogani (afa20944) at 20 Mar 19:05
Add InterStartupServerWait property to throttle server forks within...
Hi! Thank you for your contribution!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically within 30 days if no further activity occurs.
NOTE: If this issue was closed prematurely, please leave a comment.
Yury Matveev (ea2624e1) at 20 Mar 17:01
Attribute::set_value_date_quality: allow accepting nullptr value is...
original Tango::Group inherits from Tango::GroupElement, but as far as I understand "clean API" means also that our public classes do not inherit, so new Tango::Group class is stand alone
Sorry it comes a bit late, but can you share more insights on why we want to get rid of inheritance?
And if this is the way to go shouldn't we do it everywhere inheritance is used?
The changes look good to me. I haven't checked the coverage as the quick-test job is failing due to a typo.
set_value_date_quality(p_data, TangoTimestamp{t}, qual, x, y, release);This is the style we use normally.
set_tested_value(device, ValueToTest::NORMAL);The conclusion from yesterday's meeting was, yes we should delete it.
Discussion topic: Can we decide on the above?
Thanks for the changes @yamatveyev.
The end product looks good to me now. I have a few comments below:
Okay.
It is minor, but this commit message say "Step 1" in it too. I think something got confused here.
Okay.
Okay. You claim to fix the dtor here, but I think this is actually done in a couple of commits.
Have we discussed exposing is_root_group?
I don't get why we are adding this overload here:
+ virtual void remove(const std::string &pattern, bool fwd = true);
Okay.
The first line of the commit message here is too long.
I find the changes a little odd. The function called restart_server restarts all the servers where as the function called stop_server only stops 1 and then we have a stop_all_servers method to stop them all.
The pattern I established is that overloads without an instance argument are only usable if there is only one server job. These use the only_one_job() thing to ensure this. Then the overload that takes an instance name can be used to stop a particular server.
I think I would prefer the following set of member functions to keep things consistent:
void stop_server(timeout); // Requires only 1 server job for the context
void stop_server(instance_name, timeout);
void stop_all_servers(timeout);
void restart_server(timeout); // Requires only 1 server job for the context
void restart_server(instance_name, timeout);
void restart_all_servers(timeout);
When we discussed this on mattermost, I think you said stop_server(timeout) is ambiguous. Now I'm looking at the changes, I'm not sure I agree that it is ambiguous because it is singular. Although perhaps for non-native English speakers it is not as clear, so I would be open to changing it. However, I would want to make the change for the entire API and not have these functions behave differently.
Very nice. I think we can run this test for more IDL versions. Or does it really need to be 6 only?
Great. Could you add an std::enable_if_t clause to the templates to constrain them to the expected types?
Please could you apply these as fix ups to the previous commits?
Good.
The reinterpret_cast here is probably the wrong choice. You should use a dynamic_cast and check that the result isn't nullptr to be safe. Otherwise, if we are very sure that these are GroupInternal objects then we should use static_cast, but it is UB if they are not.
reinterpret_cast is never the correct choice. It is a mistake in the language IMO. We should probably turn on the cppcoreguidelines-pro-type-reinterpret-cast clang-tidy lint.
Yury Matveev (1876b82b) at 20 Mar 15:19
Attribute::set_value_date_quality: allow accepting nullptr value is...
Thomas Braun (c4148791) at 20 Mar 15:08
The use case is https://gitlab.com/tango-controls/docker/ci/cpp/debian12 where we right now have different branches for each version. The reason is that only with this approach we can use the Docker.gitlab.yml because it requires the docker file to be Dockerfile and also only pushes to the a registry destination named like the branch.
We would like to move away from these multiple branches and just use one branch (main).
Then we would have multiple docker files a la
Dockerfile.main
Dockerfile.lts
...
and some customized CI on top of Docker.gitlab.yml:
build-image-main:
extends: build-image
variables:
DOCKERFILE: "Dockerfile.main"
DESTINATION: "cppTango_version_main"
build-image-lts:
extends: build-image
variables:
DOCKERFILE: "Dockerfile.lts"
DESTINATION: "cppTango_version_lts"
...
The build-image job should then also not complain that there is no Dockerfile.
@beenje Is that feasible?
Thomas Braun (6ed43950) at 20 Mar 15:08
Merge branch 'improve-docker-template' into 'main'
... and 1 more commit
Allow to extend the build-image job to build images based on different Dockerfiles.
Fix #14
I tested with parallel here: https://gitlab.com/tango-controls/docker/tango-test/-/jobs/10976621086
Or with extend: https://gitlab.com/tango-controls/docker/tango-test/-/jobs/10976666940
If you want the job to run with the default values and add an extra job, I'd use extend.
If you don't want the default values, parallel might be better.
Anyway, if DOCKERFILE doesn't exist, the job won't run. So you don't have to overwrite the default build-image if Dockerfile doesn't exist.
Yes sorry, this sunk too deep on the todo list. Yes let's merge now.
Thanks for the well structured MR @dlacoste-esrf. It was very easy to work through. I had some compliation errors (I think related to missing header files), but I'm afraid I haven't put any effort diagnosing what is going on. It looks like the CI has similar issues.
I have a few comments for each commit:
Nice find.
Okay. I guess you cannot make a free template function to implement this like you do in the next commit because this accesses some protected/private members.
Nice.
This is great. I like the direction it is moving in. It is much simpler to follow than the previous version.
However, I'm not sure about exposing the const std::type_info & overloads in the public interface and using a default parameter. I think these overloads should be private (even for the pimpl'd class) and then the public methods should redirect to the const std::type_id & overloads as appropriate. A user can call these with random std::type_info objects and it would be nice to not have to worry about this.
I'm also not sure about the reinterpret_casts to short *. I'm pretty sure this is UB even if the underlying type is short (although it will probably work). However, in the case where the underlying type is unsigned int this is definitely broken as the size of the objects are different.
I think this is UB even if the underlying type is short because, [1] says that dereferencing a pointer to a different type is UB and [2] says that an enumeration is a distinct type.
I think we need to maintain the copy we were doing previously here:
- short *ptr = new short[nb_data];
- for(size_t i = 0; i < nb_data; ++i)
- {
- ptr[i] = (short) val[i];
- }
We could perhaps replace this with a memcpy if the underlying type is short, which may be faster. However, is anyone using large arrays of enums? I dunno, perhaps optimising this too much doesn't matter.
[1] https://en.cppreference.com/w/c/language/pointer.html#:~:text=Although%20any%20pointer,aliasing%20for%20details. [2] https://en.cppreference.com/w/cpp/language/enum.html
Sure.
Okay.
I dunno why these dtors are generated...
Another fun gen-facade.py bug ;)
Nice.
Okay.
These methods should be documented.
Why do these need to be public? Could you add the answer to this to the commit message?
Okay.
Good.
Again unrelated, but also fine.
I'm never sure what the rule is here, but do we have to forward declare these template instantiations in the header file? I guess not because this worked before, but I have the feeling this is one of the difference between MSVC and gcc/clang. This reminds me a little of this pytango issue which was also about differences in how explicitly instantiate templates behave.
This should really return a const T::Impl *. If there is some place where we need to remove a const, I would rather do the const_cast there to be explicit than do it implicitly here.
Okay.
Good idea.
Brilliant. Minor nit on the documentation of set_value_date_quality: It would be nice if the templated version explained what T needs to be, i.e. "a scoped-enum type with underlying type short or a unscoped-enum type that is not DevState".
For {get,set}_{min,max}_{alarm,warning}, can these ever be called for e.g. DevString/DevEncoded etc? Surely, we only need types here that support alarms. Similarly, for {set,get}_{min,max}_value, I don't think these are supported for all types.
They deserve it
;) Yes they do.
Okay.
I think some headers are still missing in places. When I build with -DCMAKE_DISABLE_PRECOMPILED_HEADERS=ON, I get:
[5/167] Building CXX object src/client/CMakeFiles/client_objects.dir/DelayedEventSubThread.cpp.o
FAILED: [code=1] src/client/CMakeFiles/client_objects.dir/DelayedEventSubThread.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/client/CMakeFiles/client_objects.dir/DelayedEventSubThread.cpp.o -MF src/client/CMakeFiles/client
_objects.dir/DelayedEventSubThread.cpp.o.d -o src/client/CMakeFiles/client_objects.dir/DelayedEventSubThread.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/DelayedEventSubThread.cpp
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/DelayedEventSubThread.cpp: In member function ‘virtual void Tango::DelayedEventSubThread::run(void*)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/DelayedEventSubThread.cpp:44:45: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
44 | conn_params.last_heartbeat = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[6/167] Building CXX object src/client/CMakeFiles/client_objects.dir/NotifdEventConsumer.cpp.o
FAILED: [code=1] src/client/CMakeFiles/client_objects.dir/NotifdEventConsumer.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/client/CMakeFiles/client_objects.dir/NotifdEventConsumer.cpp.o -MF src/client/CMakeFiles/client_o
bjects.dir/NotifdEventConsumer.cpp.o.d -o src/client/CMakeFiles/client_objects.dir/NotifdEventConsumer.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp: In member function ‘virtual void Tango::NotifdEventConsumer::connect_event_channel(const std::string&, Tango::Database
*, bool, Tango::DeviceData&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp:576:40: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
576 | evt_ch.last_heartbeat = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp:587:58: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
587 | new_event_channel_struct.last_heartbeat = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp: In member function ‘virtual void Tango::NotifdEventConsumer::push_structured_event(const CosNotification::StructuredEv
ent&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/NotifdEventConsumer.cpp:779:48: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
779 | evt_ch.last_heartbeat = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[7/167] Building CXX object src/client/CMakeFiles/client_objects.dir/EventKeepAliveThread.cpp.o
FAILED: [code=1] src/client/CMakeFiles/client_objects.dir/EventKeepAliveThread.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/client/CMakeFiles/client_objects.dir/EventKeepAliveThread.cpp.o -MF src/client/CMakeFiles/client_
objects.dir/EventKeepAliveThread.cpp.o.d -o src/client/CMakeFiles/client_objects.dir/EventKeepAliveThread.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp: In member function ‘virtual void* Tango::EventConsumerKeepAliveThread::run_undetached(void*)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:597:27: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
597 | auto now = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp: In member function ‘void Tango::EventConsumerKeepAliveThread::fwd_not_conected_event(Tango::PointerWithLock<Tango::Ev
entConsumer>&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:872:35: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
872 | const time_t now = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp: In member function ‘void Tango::EventConsumerKeepAliveThread::confirm_subscription(Tango::PointerWithLock<Tango::Even
tConsumer>&, const std::map<std::__cxx11::basic_string<char>, Tango::channel_struct>::iterator&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:987:46: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
987 | const time_t ti = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:1009:38: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
1009 | const time_t ti = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:1031:42: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
1031 | const time_t ti = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp: In member function ‘void Tango::EventConsumerKeepAliveThread::re_subscribe_after_reconnect(Tango::PointerWithLock<Tan
go::EventConsumer>&, Tango::PointerWithLock<Tango::EventConsumer>&, const std::map<std::__cxx11::basic_string<char>, Tango::event_callback>::iterator&, const std::map<std::__cxx11::basic_string<char>, Tango::ch
annel_struct>::iterator&, const std::string&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/client/EventKeepAliveThread.cpp:1393:47: error: ‘get_current_system_datetime’ is not a member of ‘Tango’
1393 | ipos->second.last_subscribed = Tango::get_current_system_datetime();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[8/167] Building CXX object src/server/CMakeFiles/server_objects.dir/AttrProperty.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/AttrProperty.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/AttrProperty.cpp.o -MF src/server/CMakeFiles/server_objects.
dir/AttrProperty.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/AttrProperty.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttrProperty.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttrProperty.cpp:9:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[12/167] Building CXX object src/server/CMakeFiles/server_objects.dir/AttrValue.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/AttrValue.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/AttrValue.cpp.o -MF src/server/CMakeFiles/server_objects.dir
/AttrValue.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/AttrValue.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttrValue.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttrValue.cpp:10:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[14/167] Building CXX object src/server/CMakeFiles/server_objects.dir/attribute_utils.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/attribute_utils.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/attribute_utils.cpp.o -MF src/server/CMakeFiles/server_objec
ts.dir/attribute_utils.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/attribute_utils.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/attribute_utils.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/attribute_utils.cpp:8:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[16/167] Building CXX object src/server/CMakeFiles/server_objects.dir/DeviceImpl_event.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/DeviceImpl_event.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/DeviceImpl_event.cpp.o -MF src/server/CMakeFiles/server_obje
cts.dir/DeviceImpl_event.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/DeviceImpl_event.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/DeviceImpl_event.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/DeviceImpl_event.cpp:9:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[17/167] Building CXX object src/server/CMakeFiles/server_objects.dir/MultiClassAttribute.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/MultiClassAttribute.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/MultiClassAttribute.cpp.o -MF src/server/CMakeFiles/server_o
bjects.dir/MultiClassAttribute.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/MultiClassAttribute.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/MultiClassAttribute.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/MultiClassAttribute.cpp:9:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[19/167] Building CXX object src/server/CMakeFiles/server_objects.dir/AttributeInternal_properties.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/AttributeInternal_properties.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/AttributeInternal_properties.cpp.o -MF src/server/CMakeFiles
/server_objects.dir/AttributeInternal_properties.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/AttributeInternal_properties.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/Attr
ibuteInternal_properties.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal_properties.cpp:7:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[21/167] Building CXX object src/server/CMakeFiles/server_objects.dir/DeviceImpl.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/DeviceImpl.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/DeviceImpl.cpp.o -MF src/server/CMakeFiles/server_objects.di
r/DeviceImpl.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/DeviceImpl.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/DeviceImpl.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/WAttributeInternal.h:10,
from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/FwdAttributeInternal.h:10,
from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/DeviceImpl.cpp:9:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
cc1plus: all warnings being treated as errors
[22/167] Building CXX object src/server/CMakeFiles/server_objects.dir/AttributeInternal.cpp.o
FAILED: [code=1] src/server/CMakeFiles/server_objects.dir/AttributeInternal.cpp.o
/usr/bin/c++ -DHAVE_ABSEIL -DOPENTELEMETRY_ABI_VERSION_NO=1 -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include -I/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/build/tri/src/include
-Wshadow -Wall -Wextra -Wformat -Werror=format-security -pedantic -Og -g -g -std=c++17 -Werror -fPIC -MD -MT src/server/CMakeFiles/server_objects.dir/AttributeInternal.cpp.o -MF src/server/CMakeFiles/server_obj
ects.dir/AttributeInternal.cpp.o.d -o src/server/CMakeFiles/server_objects.dir/AttributeInternal.cpp.o -c /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp
In file included from /home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp:7:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:796:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
796 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, time_t, Tango::AttrQu
ality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:810:52: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
810 | T *p_data, time_t time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:846:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
846 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h: In member function ‘void Tango::AttributeInternal::set_value_date_quality(T*, const Tango::TangoTim
estamp&, Tango::AttrQuality, long int, long int, bool)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:860:67: error: declaration of ‘quality’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shad
ow]
860 | T *p_data, const TangoTimestamp &time, Tango::AttrQuality quality, long x = 1, long y = 0, bool rel = false)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:1414:24: note: shadowed declaration is here
1414 | Tango::AttrQuality quality{Tango::ATTR_VALID};
| ^~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp: In member function ‘void Tango::AttributeInternal::avns_in_att(const std::string&, bool&, std::string&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp:7015:56: error: declaration of ‘d_name’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shadow]
7015 | void AttributeInternal::avns_in_att(const std::string &d_name, bool &check_value, std::string &value_str)
| ~~~~~~~~~~~~~~~~~~~^~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:2719:17: note: shadowed declaration is here
2719 | std::string d_name; // The device name
| ^~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp: In member function ‘void Tango::AttributeInternal::delete_startup_exception(std::string, std::string, bool&, std::map<st
d::__cxx11::basic_string<char>, Tango::DevFailed>&)’:
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp:7040:91: error: declaration of ‘startup_exceptions’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shadow]
7040 | std::map<std::string, Tango::DevFailed> &startup_exceptions)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:2735:38: note: shadowed declaration is here
2735 | std::map<std::string, DevFailed> startup_exceptions; // Map containing exceptions related to attribute
| ^~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp:7039:56: error: declaration of ‘check_startup_exceptions’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shadow]
7039 | bool &check_startup_exceptions,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:2737:10: note: shadowed declaration is here
2737 | bool check_startup_exceptions{
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/server/AttributeInternal.cpp:7062:32: error: declaration of ‘dev’ shadows a member of ‘Tango::AttributeInternal’ [-Werror=shadow]
7062 | Tango::DeviceImpl *dev = get_att_device();
| ^~~
/home/tri/osl/tango/cppTango.git/review/pimpl_Attribute/src/include/tango/internal/server/AttributeInternal.h:2720:17: note: shadowed declaration is here
2720 | DeviceImpl *dev{nullptr}; // The device object
| ^~~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
Also, there are some shadow warnings there...
Okay.
Nice.
Good. We could probably get away with doing the cast to T::Impl * in the generic template, rather than having to provide specialisations, but your way is safer I guess.
@t-b should we merge?