95 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*********************************************************************
 | |
| * Copyright (c) Intel Corporation 2011 - 2020
 | |
| * SPDX-License-Identifier: Apache-2.0
 | |
| **********************************************************************/
 | |
| 
 | |
| #ifndef __ILIBREMOTELOGGING__
 | |
| #define __ILIBREMOTELOGGING__
 | |
| 
 | |
| #include "ILibParsers.h"
 | |
| 
 | |
| /*! \defgroup ILibRemoteLogging ILibRemoteLogging Module
 | |
| @{
 | |
| */
 | |
| //! Module Types
 | |
| typedef enum ILibRemoteLogging_Modules
 | |
| {
 | |
| 	ILibRemoteLogging_Modules_UNKNOWN			= 0x00,			//!< UNKNOWN Module
 | |
| 	ILibRemoteLogging_Modules_Logger			= 0x01,			//!< RESERVED: Logger
 | |
| 	ILibRemoteLogging_Modules_WebRTC_STUN_ICE	= 0x02,			//!< WebRTC: STUN/ICE
 | |
| 	ILibRemoteLogging_Modules_WebRTC_DTLS		= 0x04,			//!< WebRTC: DTLS
 | |
| 	ILibRemoteLogging_Modules_WebRTC_SCTP		= 0x08,			//!< WebRTC: SCTP
 | |
| 	ILibRemoteLogging_Modules_Agent_GuardPost	= 0x10,			//!< Mesh Agent: Guard Post
 | |
| 	ILibRemoteLogging_Modules_Agent_P2P			= 0x20,			//!< Mesh Agent: Peer to Peer
 | |
| 	ILibRemoteLogging_Modules_Agent_KVM			= 0x200,		//!< Mesh AGent: KVM
 | |
| 	ILibRemoteLogging_Modules_Microstack_AsyncSocket	= 0x40,	//!< Microstack: AsyncSocket, AsyncServerSocket, AsyncUDPSocket
 | |
| 	ILibRemoteLogging_Modules_Microstack_Web			= 0x80,	//!< Microstack: WebServer, WebSocket, WebClient
 | |
| 	ILibRemoteLogging_Modules_Microstack_Pipe			= 0x400,//!< Microstack: Pipe
 | |
| 	ILibRemoteLogging_Modules_Microstack_Generic		= 0x100,//!< Microstack: Generic
 | |
| 	ILibRemoteLogging_Modules_ConsolePrint				= 0x4000
 | |
| }ILibRemoteLogging_Modules;
 | |
| //! Logging Flags
 | |
| typedef enum ILibRemoteLogging_Flags
 | |
| {
 | |
| 	ILibRemoteLogging_Flags_NONE				= 0x00,	//!< NONE
 | |
| 	ILibRemoteLogging_Flags_DisableLogging		= 0x01,	//!< DISABLED
 | |
| 	ILibRemoteLogging_Flags_VerbosityLevel_1	= 0x02, //!< Verbosity Level 1
 | |
| 	ILibRemoteLogging_Flags_VerbosityLevel_2	= 0x04, //!< Verbosity Level 2
 | |
| 	ILibRemoteLogging_Flags_VerbosityLevel_3	= 0x08, //!< Verbosity Level 3
 | |
| 	ILibRemoteLogging_Flags_VerbosityLevel_4	= 0x10, //!< Verbosity Level 4
 | |
| 	ILibRemoteLogging_Flags_VerbosityLevel_5	= 0x20, //!< Verbosity Level 5
 | |
| }ILibRemoteLogging_Flags;
 | |
| 
 | |
| typedef enum ILibRemoteLogging_Command_Logger_Flags
 | |
| {
 | |
| 	ILibRemoteLogging_Command_Logger_Flags_ENABLE		= 0x100,	//!< Enables/Disables File Logging
 | |
| 	ILibRemoteLogging_Command_Logger_Flags_RESET_FILE	= 0x200,	//!< Erases the log file
 | |
| 	ILibRemoteLogging_Command_Logger_Flags_READ_FILE	= 0x400,	//!< Reads the log file
 | |
| 	ILibRemoteLogging_Command_Logger_Flags_RESET_FLAGS	= 0x800,	//!< Sets the Module/Flags to log to file
 | |
| }ILibRemoteLogging_Command_Logger_Flags;
 | |
| 
 | |
| #define ILibTransports_RemoteLogging_FileTransport 0x70
 | |
| typedef void* ILibRemoteLogging;
 | |
| typedef void (*ILibRemoteLogging_OnWrite)(ILibRemoteLogging module, char* data, int dataLen, void *userContext);
 | |
| typedef void (*ILibRemoteLogging_OnCommand)(ILibRemoteLogging sender, ILibRemoteLogging_Modules module, unsigned short flags, char* data, int dataLen, void *userContext);
 | |
| typedef void(*ILibRemoteLogging_OnRawForward)(ILibRemoteLogging sender, ILibRemoteLogging_Modules module, ILibRemoteLogging_Flags flags, char *buffer, int bufferLen);
 | |
| 
 | |
| #ifdef _REMOTELOGGING
 | |
| 	char* ILibRemoteLogging_ConvertAddress(struct sockaddr* addr);
 | |
| 	char* ILibRemoteLogging_ConvertToHex(char* inVal, int inValLength);
 | |
| 	void ILibRemoteLogging_printf(ILibRemoteLogging loggingModule, ILibRemoteLogging_Modules module, ILibRemoteLogging_Flags flags, char* format, ...);
 | |
| 
 | |
| 	ILibRemoteLogging ILibRemoteLogging_Create(ILibRemoteLogging_OnWrite onOutput);
 | |
| 	ILibTransport* ILibRemoteLogging_CreateFileTransport(ILibRemoteLogging loggingModule, ILibRemoteLogging_Modules modules, ILibRemoteLogging_Flags flags, char* path, int pathLen);
 | |
| 	void ILibRemoteLogging_Destroy(ILibRemoteLogging logger);
 | |
| 	void ILibRemoteLogging_SetRawForward(ILibRemoteLogging logger, int bufferOffset, ILibRemoteLogging_OnRawForward onRawForward);
 | |
| 
 | |
| 	void ILibRemoteLogging_DeleteUserContext(ILibRemoteLogging logger, void *userContext);
 | |
| 	void ILibRemoteLogging_RegisterCommandSink(ILibRemoteLogging logger, ILibRemoteLogging_Modules module, ILibRemoteLogging_OnCommand sink);
 | |
| 	int ILibRemoteLogging_Dispatch(ILibRemoteLogging loggingModule, char* data, int dataLen, void *userContext);
 | |
| 	#define ILibRemoteLogging_ReadModuleType(data) ((ILibRemoteLogging_Modules)ntohs(((unsigned short*)data)[0]))
 | |
| 	#define ILibRemoteLogging_ReadFlags(data) ((ILibRemoteLogging_Flags)ntohs(((unsigned short*)data)[1]))
 | |
| 	int ILibRemoteLogging_IsModuleSet(ILibRemoteLogging loggingModule, ILibRemoteLogging_Modules module);
 | |
| 	void ILibRemoteLogging_Forward(ILibRemoteLogging loggingModule, char* data, int dataLen);
 | |
| #else
 | |
| 	#define ILibRemoteLogging_ConvertAddress(...) ;
 | |
| 	#define ILibRemoteLogging_ConvertToHex(...) ;
 | |
| 	#define ILibRemoteLogging_printf(...) ;
 | |
| 	#define ILibRemoteLogging_Create(...) NULL;
 | |
| 	#define ILibRemoteLogging_SetRawForward(...) ;
 | |
| 	#define ILibRemoteLogging_CreateFileTransport(...) NULL;
 | |
| 	#define ILibRemoteLogging_Destroy(...) ;
 | |
| 	#define ILibRemoteLogging_DeleteUserContext(...) ;
 | |
| 	#define ILibRemoteLogging_RegisterCommandSink(...) ;
 | |
| 	#define ILibRemoteLogging_Dispatch(...) ;
 | |
| 	#define ILibRemoteLogging_ReadModuleType(data) ILibRemoteLogging_Modules_UNKNOWN
 | |
| 	#define ILibRemoteLogging_ReadFlags(data) ILibRemoteLogging_Flags_NONE
 | |
| 	#define ILibRemoteLogging_IsModuleSet(...) 0
 | |
| 	#define ILibRemoteLogging_Forward(...) ;
 | |
| #endif
 | |
| 
 | |
| /*! @} */
 | |
| 
 | |
| #endif
 | |
| 
 |