Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Interference_Simple StrCommandHandler_Demo
StrCommandHandler.h
- Committer:
- aktk
- Date:
- 2019-10-31
- Revision:
- 0:024213917a9f
- Child:
- 1:1d46d90eb7bf
File content as of revision 0:024213917a9f:
#ifndef STR_COMMAND_HANDLER_H
#define STR_COMMAND_HANDLER_H
#include "mbed.h"
#include <string>
/** Maps strings and functions
*
* This class can map strings(commands) and functions receiving no arguments
* returning int.
*/
class StrCommandHandler
{
public:
StrCommandHandler(
int const arg_num_ofcommand = 10
);
int map(
const char * const arg_command,
int (*arg_pfunc)(void)
);
int exe(
const char* const arg_command
);
void list();
template<typename T>
T analyzeValue(
const char* const arg_value_str
);
private:
/** Array of commands' name
*
* The length should be within 15 without last '\0'
*/
char (*m_command_name)[16];
/** Array of pointers to functions
*
* The length should be within 15 without last '\0'
*/
int (**m_function)(void);
/** Numbers of commands registered in this.
*
* If commands are registered over this value,
* this value increase by 5, and arrays get reallocated.
*/
int m_num_ofcommands;
};
#endif