Checklist for code style guide:
- Have a
Detail
class inside the module class to enforce abstractions & data hiding. - No declarations in
.h
file - only base class methods overriding is allowed - Use mCamelCase in the module class
- Format the code using
ctrl+shift+I
- No unused variables, unused header files
- No commented code blocks
- If any Detail class variable has to be accessed in module, don't use set, get - make the variables public
- Avoid putting unneccessary headers in header files. Put the
#includes
in thecpp
files as much as possible - Module Properties:
- No hardcoding
- Dynamic support to change properties
- Use boost test fixtures while writing the unit tests (if applicable).
Checklist for performance:
- No memcopy
- Initialize everything in
init
- Destroy everything in
term
- Use object pool for temporary variables (see
makeFrame
) - Unit Tests
- Test for each supported color format (if applicable)
- If output is image - use
saveorcompare
method - Always try to use
FileReader
module as input for transform modules - Use
step
rather thanpipeline.run_all_threaded()
in unit tests - Test for dynamic change of props and validation (
getProps
/setProps
) - Use
ExternalSink
module wherever applicable - Unit test should not have sleep