Skip to content
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

RDK-55213: Add IPrivacy interface #410

Closed
wants to merge 1 commit into from

Conversation

adrianM27
Copy link
Contributor

No description provided.

// @event
struct EXTERNAL INotification : virtual public Core::IUnknown
{
enum
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the destructor here. Like virtual ~INotification() override = default;

ID = ID_PRIVACY_NOTIFICATION
};

// @text onAllowACRCollectionChanged
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, @sebaszm to confirm, but there is no need to use the @text to change the PascalCasing to camelCasing on JSONRPC. The Thunder framework (at least on R5.2) and further will except both for incoming and I think (again @sebaszm to confirm) send out the camelCase variant for events...
So if the intention is for this interface to be exposed on R5.2 or higher, the @text is no needed..

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's correct, with small remark: acronyms will also be converted according to camelCase convention. So if uppercase acronyms (like "ACR" here) need to be kept uppercase then (a)text is still required in such cases.

Copy link
Collaborator

@pwielders pwielders left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a general remark, if I ook at the interface it looks to be in two minds.
Onvone hand you have a property for each field (all booleans) on the other hand you have an aggregated method to GetXXXX them all at once (a-symtrical, cause you can get all at once, but not set all at once) .
For me a clean/symetrical interface would rely on only one mind ;-) Or a struct to get and set them all (potentially a struct with Core::optionalType for setting only values you want during the Set. Or remove the GetXXXX and force the user to get the whole bunch of information through separate calls.
From a data consistency perspective (if properties might be related to each other) I would always opt to use a struct as this could in the imlementatio be made atomic, you always get a consistent snapshot of the flags, if you can block changes, while getting the current set. This is impossible with dedicated getters and setters.
This is a general remark I do not kow the intended usage but the fact that it is on two minds, I suggest to fix that, preferably, with the struct.

@adrianM27
Copy link
Contributor Author

Thanks @pwielders for your time. Abandoning for now, since api will change completly

@adrianM27 adrianM27 closed this Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants