-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eCAL 6 API Review #1832
Comments
Could we keep at least the |
Yes, the id should be there, and we would support e.g. comparing for equality, but I'd like to keep the actual ID private, as it's only a pseudo random number and has no meaning to the user. |
Sounds perfect, thanks. |
Actually, I thought about it, and this isn't great, especially when considering non-C++ usage. So for context I'm working on some Go bindings and applications and I store the Id selected Id to filter out the correct topic when updating the screen. The problem with your proposal to hide the value of the ID is that the filtering must be performed in C++. Additionally, it means having to keep the underlying C++ object alive for the duration I need it; which I solved for the publisher/subscribers but its needless complexity. As you say, the absolute value of the ID doesn't inherently mean anything except "this is the unique identifier for this eCAL entity". So to me, there's no harm in being able to get the value, its not like one can do anything bad with it anyway; it just needs to be clear it is only to be effectively used as a UUID for that entity. If you don't want to directly expose the backing mechanism for the IDs then I ask for a function to map it to a primitive type like a uint64 or string; at least then you can change the implementation should the need arrive. Hope that's generally agreeable. 😃 |
Context
We need to review API for eCAL 6.
Proposal
eCAL Core API
ecal_util.h
Remove:
EnableLoopback
as it can be set via … #1833Review again: @Peguen
ecal_types.h
@rex-schilaskyecal_tlayer.h
@KerstinKellereSendMode
,STLayer
, [core] remove eSendMode and STLayer as configuration is now handled d… #1845ecal_publisher.h
/ecal_subscriber.h
ecal_registration.h
(to review again @KerstinKeller @rex-schilasky )
ecal_process.h
@hannemneCAL API Redesign: @rex-schilasky
GetServiceID
DataTypeInformation
proto field on registration layerMethodCallbackT
type usingSServiceMethodInformation
insteadMethodCallbackT = std::function<int(const std::string& method_, const std::string& req_type_, const std::string& resp_type_, const std::string& request_, std::string& response_)>
GetServiceID
SServiceResponse
to useSServiceMethodId
instead single elementsbool CallWithResponse(const std::string& method_name_, const std::string& request_, int timeout_, ServiceResponseVecT& service_response_vec_) const;
?WriterAttr
->PublisherAttr
Write
->Send
ReaderAttr
->SubscriberAttr
Read
->???
Deprecate / Review: @KerstinKeller
ecal_monitoring.h
@hannemnecal_log.h
@PeguenECAL_API void Log(const std::string& msg_);
(user should always specify level with each logging operation)ecal_deprecate.h
ecal_core.h
@hannemnInitialize: @hannemn
ECAL_API int Initialize(int argc_ = 0, char **argv_ = nullptr, const char *unit_name_ = nullptr, unsigned int components_ = Init::Default);
Initialize();
version without config.IsInitialized
, make 2 functions, one without argument, one with component argument@rex-schilasky
ecal_configuration.h
@PeguenECAL_API TransportLayer::Configuration& GetTransportLayerConfiguration ();
Make all API functions internal
config/transport_layer.h
-> same type for local / network confighost_group_name
->shm_transport_domain
protocol_v0
-> remove from configuration. and remove from code. service protocol 0 removed #1846dynamic.h
@hannemn
ecal_XXX.h
andecal_XXX_cimpl.h
eCAL Msg API
msg/publisher.h
/msg/subscriber.h
@rex-schilaskyCMessagePublisher
similar toCMessageSubscriber
to add Serialization specific specific types a lot easier.canproto
Send
takes a builder instead of no arguments. (see also Using eCAL with capnproto #1843)No response
The text was updated successfully, but these errors were encountered: