Go through the entire Chimera interface and see what either does not make sense or could be cleaned up. Focus on consistency, ease of understanding for the reader, and the KISS principle.
Eliminate Unique Pointer Access/Creation:
From a conceptual perspective, having a unique pointer for shared hardware peripherals really doesn't make much sense. Strip out this aspect of the interface from the Chimera peripheral drivers. Ideally each hardware peripheral can be shared across all other systems in the network, so having that unique pointer ownership concept present in the API is pretty confusing. If exclusive access is needed, then locking the driver via the built in thread locks can be used.
Assume Drivers Always Exist
Because Chimera is a hardware peripheral abstraction layer, the devices described by those layers will never disappear. This allows the drivers to get away from dynamic memory allocation and excessive object creation abuse.
Go through the entire Chimera interface and see what either does not make sense or could be cleaned up. Focus on consistency, ease of understanding for the reader, and the KISS principle.
Eliminate Unique Pointer Access/Creation: From a conceptual perspective, having a unique pointer for shared hardware peripherals really doesn't make much sense. Strip out this aspect of the interface from the Chimera peripheral drivers. Ideally each hardware peripheral can be shared across all other systems in the network, so having that unique pointer ownership concept present in the API is pretty confusing. If exclusive access is needed, then locking the driver via the built in thread locks can be used.
Assume Drivers Always Exist Because Chimera is a hardware peripheral abstraction layer, the devices described by those layers will never disappear. This allows the drivers to get away from dynamic memory allocation and excessive object creation abuse.