17#ifndef _CRT_SECURE_NO_DEPRECATE
18#define _CRT_SECURE_NO_DEPRECATE
20#ifndef _CRT_SECURE_NO_WARNINGS
21#define _CRT_SECURE_NO_WARNINGS
24#pragma warning(disable:4459)
26#pragma warning(disable:4100)
29# define _NETSIM_MEMORY_LEAK_TEST_
30# define _CRTDBG_MAP_ALLOC
52#ifndef _NETSIM_MAIN_H_
53#define _NETSIM_MAIN_H_
61#define _declspec(dllexport)
63# define fnDlError(x,...) ReportError(false,x,__LINE__,__FILE__,1,__VA_ARGS__)
64#define fnSystemError(x,...) ReportError(false,x,__LINE__,__FILE__,1,__VA_ARGS__)
65# define fnNetSimError(x,...) ReportError(false,x,__LINE__,__FILE__,0,__VA_ARGS__)
66#define fnNetSimErrorandStop(x,...) ReportError(true,x,__LINE__,__FILE__,0,__VA_ARGS__)
67 static const char pathSeperator[] =
"\\";
68 static const char libext[] =
".dll";
70# define _declspec(dllexport) extern "C" _declspec(dllexport)
75# define HINSTANCE void*
76 static const char libext[] =
".so";
79#pragma warning(disable:4471)
90#include "IP_Addressing.h"
92#ifndef _NETSIM_IP_ADDRESSING_CODE_
93#pragma comment(lib,"IP_Addressing.lib")
105 typedef struct stru_NetSim_MAC_NW_Interface NetSim_MAC_NW_INTERFACE;
108 typedef struct stru_ApplicationInformation NetSim_APPLICATIONINFO;
120 typedef enum enum_Distribution DISTRIBUTION;
121 typedef enum enum_PacketType PACKET_TYPE;
122 typedef enum enum_SuppressionModel SUPPRESSION_MODEL;
123 typedef enum enum_ServiceType SERVICE_TYPE;
124 typedef enum enum_PacketPriority PACKET_PRIORITY;
125 typedef enum enum_Packet_QOS QUALITY_OF_SERVICE;
126 typedef enum enum_PacketStatus PACKET_STATUS;
127 typedef enum enum_Segment PACKET_FRAGMENT;
128 typedef enum enum_EventType EVENT_TYPE;
129 typedef enum enum_AppProtocol APPLICATION_LAYER_PROTOCOL;
130 typedef enum enum_TrxProtocol TRANSPORT_LAYER_PROTOCOL;
131 typedef enum enum_NWProtocol NETWORK_LAYER_PROTOCOL;
132 typedef enum enum_MACProtocol MAC_LAYER_PROTOCOL;
133 typedef enum enum_PhyMedium PHYSICAL_LAYER_MEDIUM;
134 typedef enum enum_LayerType LAYER_TYPE;
135 typedef enum enum_InterfaceType INTERFACE_TYPE;
136 typedef enum enum_DeviceType netsimDEVICE_TYPE;
137 typedef enum enum_LinkType LINK_TYPE;
138 typedef enum enum_LinkMode LINK_MODE;
139 typedef enum enum_LinkState LINK_STATE;
140 typedef enum enum_SimulationEndType SIMULATION_END_TYPE;
141 typedef enum enum_SchedulingType SCHEDULING_TYPE;
142 typedef enum enum_TransmissionType TRANSMISSION_TYPE;
143 typedef enum enum_isConfigured ISCONFIGURED;
144 typedef enum emum_wireshark_option WIRESHARK_OPTION;
148 typedef unsigned int NETSIM_ID;
150 typedef char* NETSIM_Name;
151 typedef char* string;
152 typedef enum enum_Flag FLAG;
157 NETSIM_PRO = VERSION * 10 + 5,
158 NETSIM_STANDARD = VERSION * 10 + 4,
159 NETSIM_ACEDEMIC = VERSION * 10 + 3,
160 NETSIM_DEMO = VERSION * 10 + 2,
161 NETSIM_COMER = VERSION * 10 + 1,
166# include "MetricsWriter.h"
167#define fn_NetSim_LoadAppDllFunction(hsharedlib,path,sharedlibName,funName) fn_NetSim_LoadAppDllFunction_dbg(hsharedlib,path,sharedlibName,funName,__LINE__,__FILE__);
168 _declspec(dllexport) FARPROC fn_NetSim_LoadAppDllFunction_dbg(HINSTANCE* hdll,
const char* path,
const char* dllName,
const char* funName,
int line,
char* file);
170# define fn_NetSim_Utilities_LoadSharedlibFunction(hsharedlib,sharedlibName,funName) fn_NetSim_Utilities_LoadSharedlibFunction_dbg(hsharedlib,sharedlibName,funName,__LINE__,__FILE__)
171 _declspec(dllexport) FARPROC fn_NetSim_Utilities_LoadSharedlibFunction_dbg(HINSTANCE* hsharedlib,
const char* sharedlibName,
const char* funName,
int line,
const char* file);
173 _declspec(dllexport)
int ReportError(
bool isStopOnError,
const char* msg,
int line,
const char* file,
int flag, ...);
174#pragma warning(disable:4213)
175#define fn_NetSim_Packet_FreePacket(pstruPacket) fn_NetSim_Packet_FreePacket_dbg(&(pstruPacket),__LINE__,__FILE__)
177#define fn_NetSim_Packet_AddPacketToList(pstruBuffer,pstruPacket,nInsertionType ) fn_NetSim_Packet_AddPacketToList_dbg(pstruBuffer,pstruPacket,nInsertionType ,__LINE__,__FILE__)
178 _declspec(dllexport)
int fn_NetSim_Packet_AddPacketToList_dbg(NetSim_BUFFER* pstruBuffer, NetSim_PACKET* pstruPacket,
int nInsertionType ,
int line,
const char* file);
180#define fn_NetSim_Packet_CopyPacket(pstruPacket) fn_NetSim_Packet_CopyPacket_dbg(pstruPacket,__LINE__,__FILE__)
182#define fn_NetSim_Packet_CopyPacketList(pstruPacket) fn_NetSim_Packet_CopyPacketList_dbg(pstruPacket,__LINE__,__FILE__)
184#define fn_NetSim_Packet_CreatePacket(layer) fn_NetSim_Packet_CreatePacket_dbg(layer,__LINE__,__FILE__)
186#define fn_NetSim_WritePacketTrace(pstruPacket) fn_NetSim_WritePacketTrace_dbg(pstruPacket,__LINE__,__FILE__)
189#define fnpAddEvent(pstruEvent) fnAddEvent_F(pstruEvent,__LINE__,__FILE__)
192 _declspec(dllexport)
unsigned long long int fnAddEvent_F(
struct stru_NetSim_EventDetails* pstruEvent,
int line,
const char* file);
194 _declspec(dllexport)
bool fn_NetSim_Stack_RegisterCallBackFunction(
int nSubeventId,
int (*_fnCallBack)());
196 _declspec(dllexport)
int fn_NetSim_Anim_MoveNode(NETSIM_ID src,
double x,
double y,
double time);
198#define ANSI_COLOR_RED "\x1b[31m"
199#define ANSI_COLOR_GREEN "\x1b[32m"
200#define ANSI_COLOR_YELLOW "\x1b[33m"
201#define ANSI_COLOR_BLUE "\x1b[34m"
202#define ANSI_COLOR_MAGENTA "\x1b[35m"
203#define ANSI_COLOR_CYAN "\x1b[36m"
204#define ANSI_COLOR_RESET "\x1b[0m"
206#define ANSI_BOLD_TEXT "\x1b[1m"
208 _declspec(dllexport)
bool CHECK_FOR_USER_DLL(
const char* dllName);
212#define printf(x,...) {printf("\n%s:%d: ",__FILE__,__LINE__);printf(x,__VA_ARGS__);}