NetSim Source Code Help
Loading...
Searching...
No Matches
commandProcessor.c
Go to the documentation of this file.
1#define _CRT_SECURE_NO_WARNINGS
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <Ws2tcpip.h>
6#include <windows.h>
7#include <stdbool.h>
8#include "CLI.h"
9
10void send_message(ptrCLIENTINFO info, char* msg, ...)
11{
12 char sendMSG[2 * BUFSIZ];
13 va_list l;
14 va_start(l, msg);
15 vsprintf(sendMSG, msg, l);
16 if (info->clientType == CLIENTTYPE_SOCKET)
17 send_to_socket(info, sendMSG, (int)strlen(sendMSG) + 1);
18 else if (info->clientType == CLIENTTYPE_FILE)
19 write_to_file(info, sendMSG, (int)strlen(sendMSG) + 1);
20 else if (info->clientType == CLIENTTYPE_STRING)
21 add_to_string(info, sendMSG, (int)strlen(sendMSG) + 1);
22}
23
24static void commandProcessor(ptrCLIENTINFO info, char* command)
25{
27 char* first = ls->commands[0];
28 if (!_stricmp(first, CMD_CONTINUE))
30 else if (!_stricmp(first, CMD_PAUSE))
32 else if (!_stricmp(first, CMD_PAUSEAT))
33 cli_pause_simulation_at(info, atof(ls->commands[1]));
34 else if (!_stricmp(first, CMD_STOP))
36 else if (!_stricmp(first, CMD_EXIT))
37 cli_clear_prompt(info);
38 else
39 {
40 if (validate_command(info, ls))
41 {
43 {
44 pass_to_SDNModule(info, ls);
45 }
46 else
47 {
48 execute_command(info, ls, info->deviceId);
49 }
50 }
51 }
52
54}
55
56void process_command(ptrCLIENTINFO clientInfo, char* command, int len)
57{
58 commandProcessor(clientInfo, command);
59}
#define CMD_PAUSE
Definition: CLI.h:15
void cli_continue_simulation(ptrCLIENTINFO info)
void cli_pause_simulation_at(ptrCLIENTINFO info, double time)
ptrCOMMANDARRAY get_commandArray(char *text)
Definition: Command.c:13
void write_to_file(ptrCLIENTINFO info, char *msg, int len)
Definition: FileInput.c:93
#define CMD_STOP
Definition: CLI.h:13
void cli_clear_prompt(ptrCLIENTINFO info)
#define CMD_CONTINUE
Definition: CLI.h:14
void execute_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, NETSIM_ID d)
void cli_pause_simulation(ptrCLIENTINFO info)
#define CMD_PAUSEAT
Definition: CLI.h:16
bool isCommandAsDeviceName(char *name)
void cli_stop_simulation(ptrCLIENTINFO info)
@ CLIENTTYPE_SOCKET
Definition: CLI.h:26
@ CLIENTTYPE_FILE
Definition: CLI.h:25
@ CLIENTTYPE_STRING
Definition: CLI.h:27
bool validate_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command)
void send_to_socket(ptrCLIENTINFO info, char *buf, int len)
Definition: Socket.c:22
void free_commandArray(ptrCOMMANDARRAY c)
Definition: Command.c:61
#define CMD_EXIT
Definition: CLI.h:17
void pass_to_SDNModule(ptrCLIENTINFO info, ptrCOMMANDARRAY command)
void add_to_string(ptrCLIENTINFO info, char *sendMsg, int len)
#define _stricmp
Definition: Linux.h:127
static void commandProcessor(ptrCLIENTINFO info, char *command)
void process_command(ptrCLIENTINFO clientInfo, char *command, int len)
void send_message(ptrCLIENTINFO info, char *msg,...)
CLIENTTYPE clientType
Definition: CLI.h:71
NETSIM_ID deviceId
Definition: CLI.h:79