rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes
FLStack< T, MAXSIZE > Class Template Reference

#include <fl_stack.h>

Collaboration diagram for FLStack< T, MAXSIZE >:
Collaboration graph
[legend]

Public Member Functions

 FLStack ()
 
void push (T value)
 
void reset ()
 
pop ()
 
get (int index)
 
bool remove (T value)
 
int size ()
 
bool isEmpty ()
 

Private Attributes

int currentSize
 
values [MAXSIZE]
 

Detailed Description

template<typename T, int MAXSIZE>
class FLStack< T, MAXSIZE >

Definition at line 14 of file fl_stack.h.

Constructor & Destructor Documentation

◆ FLStack()

template<typename T , int MAXSIZE>
FLStack< T, MAXSIZE >::FLStack ( )

Definition at line 30 of file fl_stack.h.

30 {
31 reset();
32 memset(values, 0, sizeof(values));
33}
T values[MAXSIZE]
Definition fl_stack.h:26
void reset()
Definition fl_stack.h:41

Member Function Documentation

◆ get()

template<typename T , int MAXSIZE>
T FLStack< T, MAXSIZE >::get ( int  index)
Returns
element at the specified index

Definition at line 79 of file fl_stack.h.

79 {
80 efiAssert(ObdCode::CUSTOM_ERR_ASSERT, index >= 0 && index < MAXSIZE, "FLget", values[0]);
81 return values[index];
82}
@ CUSTOM_ERR_ASSERT

◆ isEmpty()

template<typename T , int MAXSIZE>
bool FLStack< T, MAXSIZE >::isEmpty ( )

Definition at line 36 of file fl_stack.h.

36 {
37 return currentSize == 0;
38}
int currentSize
Definition fl_stack.h:25

◆ pop()

template<typename T , int MAXSIZE>
T FLStack< T, MAXSIZE >::pop ( )

Definition at line 68 of file fl_stack.h.

68 {
69 if (currentSize == 0) {
70 firmwareError(ObdCode::CUSTOM_FLSTACK, "FLStack is empty");
71 }
72 return values[--currentSize];
73}
void firmwareError(ObdCode code, const char *fmt,...)
@ CUSTOM_FLSTACK
Here is the call graph for this function:

◆ push()

template<typename T , int MAXSIZE>
void FLStack< T, MAXSIZE >::push ( value)

Definition at line 58 of file fl_stack.h.

58 {
59 if (currentSize >= MAXSIZE) {
61 return;
62 //warning()
63 }
64 values[currentSize++] = value;
65}
@ ERROR_FL_STACK_OVERFLOW
Here is the call graph for this function:

◆ remove()

template<typename T , int MAXSIZE>
bool FLStack< T, MAXSIZE >::remove ( value)

Definition at line 46 of file fl_stack.h.

46 {
47 for (int i = 0; i < currentSize; i++) {
48 if (values[i] == value) {
49 values[0] = values[currentSize - 1];
51 return true;
52 }
53 }
54 return false;
55}

◆ reset()

template<typename T , int MAXSIZE>
void FLStack< T, MAXSIZE >::reset ( )

Definition at line 41 of file fl_stack.h.

41 {
42 currentSize = 0;
43}

◆ size()

template<typename T , int MAXSIZE>
int FLStack< T, MAXSIZE >::size ( )

Definition at line 85 of file fl_stack.h.

85 {
86 return currentSize;
87}

Field Documentation

◆ currentSize

template<typename T , int MAXSIZE>
int FLStack< T, MAXSIZE >::currentSize
private

Definition at line 25 of file fl_stack.h.

◆ values

template<typename T , int MAXSIZE>
T FLStack< T, MAXSIZE >::values[MAXSIZE]
private

Definition at line 26 of file fl_stack.h.


The documentation for this class was generated from the following file: