libcw/README.md

57 lines
1.7 KiB
Markdown

# To Do
- UI needs a special UUID (not kInvalidId) to specify the 'root' UI element. See note in cwUi._createFromObj()
- Look at 'BUG' warnings in cwNumericConvert.h.
- cwObject must be able to parse without dynamic memory allocation into a fixed buffer
- cwObject must be able to be composed without dynamic memory allocation or from a fixed buffer.
- cwWebsock is allocating memory on send().
- cwWebsock: if the size of the recv and xmt buffer, as passed form the protocolArray[], is too small send() will fail without an error message.
This is easy to reproduce by simply decreasing the size of the buffers in the protocol array.
- Clean up the cwObject namespace - add an 'object' namespace inside 'cw'
- Add underscore to the member variables of object_t.
- logDefaultFormatter() in cwLog.cpp uses stack allocated memory in a way that could easily be exploited.
- lexIntMatcher() in cwLex.cpp doesn't handle 'e' notation correctly. See note in code.
- numeric_convert() in cwNumericConvert.h could be made more efficient using type_traits.
- thread needs setters and getters for internal variables
- change cwMpScNbQueue so that it does not require 'new'.
- cwAudioBuf.cpp - the ch->fn in update() does not have the correct memory fence.
- change file names to match object names
- (DONE) change all NULL's to nullptr
- (DONE) implement kTcpFl in cwTcpSocket.cpp
# Development Setup
1) Install libwebsockets.
```
sudo dnf install g++ openssl-devel cmake
cd sdk
git clone https://libwebsockets.org/repo/libwebsockets
cd libwebsockets
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/kevin/sdk/libwebsockets/build/out ..
```
2) Environment setup:
export LD_LIBRARY_PATH=~/sdk/libwebsockets/build/out/lib