Size: 2383
Comment:
|
Size: 2628
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
* Use .hxx and .cxx, prefix all header files with "cl" | * Use .hxx and .cxx and prefix all header files with "cl". Example: clTransaction.hxx, transaction.cxx |
Line 17: | Line 17: |
{{{#!highlight cpp | {{{#!highlight cpp |
Line 39: | Line 39: |
{{{#!highlight cpp | {{{#!highlight cpp |
Line 49: | Line 49: |
* Do not hide implementation using Handles. Expose them via pointers or containment. This makes debugging much simpler and its easy enough just to skip over tracing through the implementation if needed. * Also, prefer containment; do not use pointers rather than containment just to hide implementation. |
* Do not hide implementation using handles. Expose them via pointers or containment. This makes debugging much simpler and its easy enough just to skip over tracing through the implementation if needed. Also, prefer containment; do not use pointers rather than containment just to hide implementation. |
Line 52: | Line 53: |
clSvcIpi.hxx {{{#!highlight cpp |
clSvcIpi.hxx {{{#!highlight cpp |
Line 65: | Line 66: |
clSvcApi.hxx {{{#!highlight cpp |
clSvcApi.hxx {{{#!highlight cpp |
Line 82: | Line 83: |
Line 84: | Line 84: |
'''''With pointers, predeclarations are preferred''''' {{{#!highlight cpp |
Note that in this case, the application will end up including the Ipi file. This is ok, it is clear by the namespace what is API and what is internal. '''''With pointers, predeclarations are preferred''''' {{{#!highlight cpp |
Files
- Use .hxx and .cxx and prefix all header files with "cl". Example: clTransaction.hxx, transaction.cxx
Name major functional blocks cl<FN>Api.hxx
examples: clLogApi.hxx, clCkptApi.hxx An application only needs to include these files (they must include other required header files)!
- Other files can be named based on the primary class defined inside
examples: clTransaction.hxx An application MAY include these files if it wants that specific functionality
Internal APIs should be named cl<something>Ipi.hxx
examples: clCkptIpi.hxx These files may get pulled into application builds due to object containment. However, it must not be necessary for the application program to ever use symbols defined in the Ipi files.
Definitions
All application-level APIs must be defined under the SAFplus namespace:
All internal APIs must be defined under the SAFplusI namespace (I for internal):
- Do not hide implementation using handles.
- Expose them via pointers or containment. This makes debugging much simpler and its easy enough just to skip over tracing through the implementation if needed. Also, prefer containment; do not use pointers rather than containment just to hide implementation. clSvcIpi.hxx clSvcApi.hxx Note that in this case, the application will end up including the Ipi file. This is ok, it is clear by the namespace what is API and what is internal.
With pointers, predeclarations are preferred
- Expose them via pointers or containment. This makes debugging much simpler and its easy enough just to skip over tracing through the implementation if needed. Also, prefer containment; do not use pointers rather than containment just to hide implementation. clSvcIpi.hxx clSvcApi.hxx