Hide private implementation classes in order to prevent symbol collision
ClosedPublic

Authored by leandrosantiago on Jul 2 2018, 8:24 PM.

Details

Summary

On Unix, symbols are public unless specified otherwise (with anonymous namespace or static signature modifier).

When used as a library, the symbols defined by AtCore will likely collide with symbols with the same name in other libraries.
This change aims to make is less likely, by hiding the *Private classes inside their respective public interfaces.

For discussion: A propper solution would consist on moving all public classes to a well defined namespace, via C++ namespaces or via name prefix.
So Temperature would either be AtTemperature or atelier::Temperature, for instance.

This change should not affect any feature at all, unless the application code depends on such private symbols. What must not happen.

Test Plan

No test is necessary. If it builds, it works.

Diff Detail

Repository
R232 AtCore
Branch
feature/hide-private-symbols (branched from master)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 570
Build 582: arc lint + arc unit
leandrosantiago requested review of this revision.Jul 2 2018, 8:24 PM
leandrosantiago created this revision.
leandrosantiago edited the summary of this revision. (Show Details)Jul 2 2018, 8:25 PM
tcanabrava accepted this revision.Jul 2 2018, 8:31 PM
This revision is now accepted and ready to land.Jul 2 2018, 8:31 PM
rizzitello accepted this revision.Jul 2 2018, 8:36 PM
rizzitello closed this revision.Jul 2 2018, 8:46 PM