|
| template<typename T , const size_t N> |
| struct QUEUE_ROOT_T | JUNO_MODULE_ROOT (JUNO_MODULE_ARG(QUEUE_API_T< T, N >), ARRAY_T< T, N > tArrBuff;size_t iStartIndex;size_t zLength;) |
| |
| template<typename T , const size_t N> |
| struct STACK_ROOT_T | JUNO_MODULE_ROOT (JUNO_MODULE_ARG(STACK_API_T< T, N >), ARRAY_T< T, N > tArrBuff;size_t zLength;) |
| | The stack root module.
|
| |
| template<typename T , const size_t N> |
| JUNO_STATUS_T | Enqueue (QUEUE_ROOT_T< T, N > &tQueue, T tData) |
| |
| template<typename T , const size_t N> |
| RESULT_T< T > | Dequeue (QUEUE_ROOT_T< T, N > &tQueue) |
| |
| template<typename T , const size_t N> |
| RESULT_T< T * > | QueuePeek (QUEUE_ROOT_T< T, N > &tQueue) |
| |
| template<typename T , const size_t N> |
| struct JUNO_QUEUE_T | JUNO_MODULE_DERIVE (JUNO_MODULE_ARG(QUEUE_ROOT_T< T, N >), static JUNO_STATUS_T New(QUEUE_ROOT_T< T, N > &tQueue, const QUEUE_API_T< T, N > &tApi, JUNO_FAILURE_HANDLER_T pfcnFailureHandler, JUNO_USER_DATA_T *pvFailureUserData) { auto &tNew=reinterpret_cast< JUNO_QUEUE_T< T, N > & >(tQueue);tNew.tRoot.ptApi=&tApi;tNew.tRoot._pfcnFailureHandler=pfcnFailureHandler;tNew.tRoot._pvFailureUserData=pvFailureUserData;tNew.tRoot.iStartIndex=0;tNew.tRoot.zLength=0;return JUNO_STATUS_SUCCESS;} static constexpr QUEUE_API_T< T, N > NewApi() { return {Enqueue< T, N >, Dequeue< T, N >, QueuePeek< T, N >};}) |
| |
| template<typename T , const size_t N> |
| JUNO_STATUS_T | Push (STACK_ROOT_T< T, N > &tStack, T tData) |
| |
| template<typename T , const size_t N> |
| RESULT_T< T > | Pop (STACK_ROOT_T< T, N > &tStack) |
| |
| template<typename T , const size_t N> |
| RESULT_T< T * > | StackPeek (STACK_ROOT_T< T, N > &tStack) |
| |
| template<typename T , const size_t N> |
| struct JUNO_STACK_T | JUNO_MODULE_DERIVE (JUNO_MODULE_ARG(STACK_ROOT_T< T, N >), static JUNO_STATUS_T New(STACK_ROOT_T< T, N > &tStack, const STACK_API_T< T, N > &tApi, JUNO_FAILURE_HANDLER_T pfcnFailureHandler, JUNO_USER_DATA_T *pvFailureUserData) { auto &tNew=reinterpret_cast< JUNO_STACK_T< T, N > & >(tStack);tNew.tRoot.ptApi=&tApi;tNew.tRoot._pfcnFailureHandler=pfcnFailureHandler;tNew.tRoot._pvFailureUserData=pvFailureUserData;tNew.tRoot.zLength=0;return JUNO_STATUS_SUCCESS;} static constexpr STACK_API_T< T, N > NewApi() { return {Push< T, N >, Pop< T, N >, StackPeek< T, N >};}) |
| |