Important Update:
- LogCore: - Removed global DebugLevel var, now passed as parameter - Implemented binary output values - FunctionCore, SelectCore and SelectableCore: - internal DebugLevel param implemented - new internal DisplayOutput param (Normal/Hex/Bin) - BufferCore: - Bug fix: allow for empty search string/marker
This commit is contained in:
@@ -344,7 +344,7 @@ bool CBuffer::FindStr( const char * SearchStr, int SearchLen, int &FoundPos, int
|
|||||||
char * MatchLimit = NULL;
|
char * MatchLimit = NULL;
|
||||||
|
|
||||||
// Check if buffer exists
|
// Check if buffer exists
|
||||||
if (!BufLen) {
|
if (!BufLen || !SearchStr || !SearchLen) {
|
||||||
FoundPos = -1;
|
FoundPos = -1;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ extern char ProcessName[];
|
|||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Life cycle
|
// Life cycle
|
||||||
CFunctionCore::CFunctionCore( const char * FunctionName )
|
CFunctionCore::CFunctionCore( const char * FunctionName, EDebugLevel pDebugLevel, int pOuputDisplay )
|
||||||
{
|
{
|
||||||
// Set name
|
// Set name
|
||||||
if (FunctionName) {
|
if (FunctionName) {
|
||||||
@@ -36,8 +36,12 @@ CFunctionCore::CFunctionCore( const char * FunctionName )
|
|||||||
// IO Functions
|
// IO Functions
|
||||||
FirstIO = NULL;
|
FirstIO = NULL;
|
||||||
|
|
||||||
|
// Output
|
||||||
|
OutputDisplay = pOuputDisplay;
|
||||||
|
DebugLevel = pDebugLevel;
|
||||||
|
|
||||||
// Report status
|
// Report status
|
||||||
LogMessage( dlLow, "%s: Function '%s' - Created", ProcessName, FunctionName );
|
LogMessage( DebugLevel, dlLow, "%s: Function '%s' - Created", ProcessName, FunctionName );
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -82,7 +86,7 @@ CFunctionCore::~CFunctionCore()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Report status
|
// Report status
|
||||||
LogMessage( dlLow, "%s: Function '%s' - Destroyed", ProcessName, Name );
|
LogMessage( DebugLevel, dlLow, "%s: Function '%s' - Destroyed", ProcessName, Name );
|
||||||
|
|
||||||
// Destroy Name
|
// Destroy Name
|
||||||
if (Name) {
|
if (Name) {
|
||||||
@@ -118,7 +122,7 @@ TLocalIO * CFunctionCore::AddLocalIO( const char * IOName )
|
|||||||
strcpy( (*LocalIO)->Name, IOName );
|
strcpy( (*LocalIO)->Name, IOName );
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlLow, "%s: Local IO '%s' - Created", Name, IOName );
|
LogMessage( DebugLevel, dlLow, "%s: Local IO '%s' - Created", Name, IOName );
|
||||||
}
|
}
|
||||||
|
|
||||||
return *LocalIO;
|
return *LocalIO;
|
||||||
@@ -155,7 +159,7 @@ bool CFunctionCore::AddInput( const char * IOName, CFunctionCore * OutFunction,
|
|||||||
strcpy( (*LinkedIO)->IOName, OutputName );
|
strcpy( (*LinkedIO)->IOName, OutputName );
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlLow, "%s: Input Linked - '%s'/'%s' <-- '%s'/'%s'", Name, Name, IOName, OutFunction->GetName(), OutputName );
|
LogMessage( DebugLevel, dlLow, "%s: Input Linked - '%s'/'%s' <-- '%s'/'%s'", Name, Name, IOName, OutFunction->GetName(), OutputName );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Link Return direction as well
|
// Link Return direction as well
|
||||||
@@ -196,7 +200,7 @@ bool CFunctionCore::AddOutput( const char * IOName, CFunctionCore * InFunction,
|
|||||||
strcpy( (*LinkedIO)->IOName, InputName );
|
strcpy( (*LinkedIO)->IOName, InputName );
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlLow, "%s: Output Linked - '%s'/'%s' --> '%s'/'%s'", Name, Name, IOName, InFunction->GetName(), InputName );
|
LogMessage( DebugLevel, dlLow, "%s: Output Linked - '%s'/'%s' --> '%s'/'%s'", Name, Name, IOName, InFunction->GetName(), InputName );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Link return direction as well
|
// Link return direction as well
|
||||||
@@ -225,12 +229,12 @@ int CFunctionCore::Input( const char * IOName, const char * Data, int MaxLen )
|
|||||||
if (!(LocalIO = GetLocalIO( IOName )))
|
if (!(LocalIO = GetLocalIO( IOName )))
|
||||||
{
|
{
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "%s: Local IO '%s' - Input rejected, Local IO not found", Name, IOName );
|
LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Input rejected, Local IO not found", Name, IOName );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, MaxLen, "%s: Local IO '%s' - IN:", Name, IOName );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, MaxLen, "%s: Local IO '%s' - IN:", Name, IOName );
|
||||||
|
|
||||||
// Return processed bytes
|
// Return processed bytes
|
||||||
return MaxLen;
|
return MaxLen;
|
||||||
@@ -252,12 +256,12 @@ int CFunctionCore::Output( const char * IOName, const char * Data, int Len )
|
|||||||
if (!(LocalIO = GetLocalIO( IOName )))
|
if (!(LocalIO = GetLocalIO( IOName )))
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlHigh, "%s: Local IO '%s' - Output rejected, Local IO not found", Name, IOName );
|
LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Output rejected, Local IO not found", Name, IOName );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Local IO '%s' - OUT:", Name, IOName );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Local IO '%s' - OUT:", Name, IOName );
|
||||||
|
|
||||||
// Return processed bytes
|
// Return processed bytes
|
||||||
return Len;
|
return Len;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#define REDACORE_FUNCTIONCORE_H_
|
#define REDACORE_FUNCTIONCORE_H_
|
||||||
|
|
||||||
// redA Libraries
|
// redA Libraries
|
||||||
|
#include "LogCore.h"
|
||||||
#include "BufferCore.h"
|
#include "BufferCore.h"
|
||||||
|
|
||||||
// Standard C/C++ Libraries
|
// Standard C/C++ Libraries
|
||||||
@@ -54,6 +55,10 @@ protected:
|
|||||||
// IOs
|
// IOs
|
||||||
TLocalIO * FirstIO;
|
TLocalIO * FirstIO;
|
||||||
|
|
||||||
|
// Output
|
||||||
|
EDebugLevel DebugLevel;
|
||||||
|
int OutputDisplay;
|
||||||
|
|
||||||
// Manage IO
|
// Manage IO
|
||||||
inline TLocalIO * GetLocalIO( const char * Name ) {
|
inline TLocalIO * GetLocalIO( const char * Name ) {
|
||||||
TLocalIO * LocalIO = FirstIO;
|
TLocalIO * LocalIO = FirstIO;
|
||||||
@@ -65,7 +70,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Life cycle
|
// Life cycle
|
||||||
CFunctionCore( const char * ObjectName );
|
CFunctionCore( const char * ObjectName, EDebugLevel pDebugLevel, int pOuputDisplay );
|
||||||
virtual ~CFunctionCore();
|
virtual ~CFunctionCore();
|
||||||
|
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
|
|||||||
39
LogCore.cpp
39
LogCore.cpp
@@ -18,12 +18,11 @@
|
|||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Global vars
|
// Global vars
|
||||||
EDebugLevel DebugLevel = dlLow;
|
|
||||||
char LogStr[1000]; // Temporary var to create log messages, globally available to save on memory operations
|
char LogStr[1000]; // Temporary var to create log messages, globally available to save on memory operations
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
bool LogMessage( EDebugLevel Level, const char * Format, ... )
|
bool LogMessage( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const char * Format, ... )
|
||||||
{
|
{
|
||||||
va_list ArgPtr;
|
va_list ArgPtr;
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ bool LogMessage( EDebugLevel Level, const char * Format, ... )
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Check debug level
|
// Check debug level
|
||||||
if (Level > DebugLevel) {
|
if (MsgLevel > DebugLevel) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,18 +44,18 @@ bool LogMessage( EDebugLevel Level, const char * Format, ... )
|
|||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int Len, const char * Format, ... )
|
bool ShowOutput( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const short Show, const char * Buffer, int Len, const char * Format, ... )
|
||||||
{
|
{
|
||||||
va_list ArgPtr;
|
va_list ArgPtr;
|
||||||
|
|
||||||
// Validate values
|
// Validate values
|
||||||
if (!Buffer || !(Show & (OUT_HEX | OUT_NORMAL)))
|
if (!Buffer || !(Show & (OUT_NORMAL | OUT_HEX | OUT_BIN)))
|
||||||
return false;
|
return false;
|
||||||
if (Len == -1)
|
if (Len == -1)
|
||||||
Len = strlen( Buffer );
|
Len = strlen( Buffer );
|
||||||
|
|
||||||
// Check debug level
|
// Check debug level
|
||||||
if (Level > DebugLevel) {
|
if (MsgLevel > DebugLevel) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,15 +67,7 @@ bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int L
|
|||||||
}
|
}
|
||||||
printf( "[%d] ", Len );
|
printf( "[%d] ", Len );
|
||||||
|
|
||||||
// Show Hex output
|
// Show Normal output
|
||||||
if (Show & OUT_HEX) {
|
|
||||||
for (int i=0; i<Len; i++) {
|
|
||||||
printf( "%02X ", Buffer[i] );
|
|
||||||
}
|
|
||||||
printf( "\n" );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show normal output
|
|
||||||
if (Show & OUT_NORMAL) {
|
if (Show & OUT_NORMAL) {
|
||||||
if (Show & OUT_ASIS) {
|
if (Show & OUT_ASIS) {
|
||||||
printf( "%s", Buffer );
|
printf( "%s", Buffer );
|
||||||
@@ -98,6 +89,24 @@ bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int L
|
|||||||
printf( "\n" );
|
printf( "\n" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show Hex output
|
||||||
|
if (Show & OUT_HEX) {
|
||||||
|
for (int i=0; i<Len; i++) {
|
||||||
|
printf( "%02X ", (unsigned char)Buffer[i] );
|
||||||
|
}
|
||||||
|
printf( "\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show Binary output
|
||||||
|
if (Show & OUT_BIN) {
|
||||||
|
for (int i=0; i<Len; i++) {
|
||||||
|
for (int j=0; j<8; j++) {
|
||||||
|
printf( "%d", (bool)((Buffer[i] << j) & 0x80) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf( "\n" );
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
13
LogCore.h
13
LogCore.h
@@ -18,10 +18,11 @@
|
|||||||
|
|
||||||
// Debug options
|
// Debug options
|
||||||
const short
|
const short
|
||||||
OUT_NORMAL = 1,
|
OUT_NORMAL = 1,
|
||||||
OUT_HEX = 2,
|
OUT_HEX = 2,
|
||||||
OUT_CRLF = 4,
|
OUT_BIN = 4,
|
||||||
OUT_ASIS = 8;
|
OUT_CRLF = 8,
|
||||||
|
OUT_ASIS = 16;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -29,9 +30,9 @@ typedef enum { dlNone = 0, dlLow = 1, dlMedium = 2, dlHigh = 3 } EDebugLevel;
|
|||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
bool LogMessage( EDebugLevel Level, const char * Format, ... );
|
bool LogMessage( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const char * Format, ... );
|
||||||
|
|
||||||
bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int Len, const char * Format, ... );
|
bool ShowOutput( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const short Show, const char * Buffer, int Len, const char * Format, ... );
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ extern char ProcessName[];
|
|||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Create Select
|
// Create Select
|
||||||
CSelect::CSelect( long SelectTimeout )
|
CSelect::CSelect( long SelectTimeout, EDebugLevel pDebugLevel )
|
||||||
{
|
{
|
||||||
// Clear List
|
// Clear List
|
||||||
FirstHandle = NULL;
|
FirstHandle = NULL;
|
||||||
@@ -38,8 +38,11 @@ CSelect::CSelect( long SelectTimeout )
|
|||||||
// Set Timeout
|
// Set Timeout
|
||||||
SetInterval( &Timeout, SelectTimeout );
|
SetInterval( &Timeout, SelectTimeout );
|
||||||
|
|
||||||
|
// Output
|
||||||
|
DebugLevel = pDebugLevel;
|
||||||
|
|
||||||
// Show status
|
// Show status
|
||||||
LogMessage( dlLow, "%s: Select - Created", ProcessName );
|
LogMessage( DebugLevel, dlLow, "%s: Select - Created", ProcessName );
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -57,7 +60,7 @@ CSelect::~CSelect()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Show status
|
// Show status
|
||||||
LogMessage( dlLow, "%s: Select - Destroyed", ProcessName );
|
LogMessage( DebugLevel, dlLow, "%s: Select - Destroyed", ProcessName );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -102,7 +105,7 @@ void CSelect::Add( int FD, bool Read, bool Write, CSelectableCore * Function )
|
|||||||
FD_SET( FD, &ReadTestFDS );
|
FD_SET( FD, &ReadTestFDS );
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "Select: FD [%d] - Add Read", FD );
|
LogMessage( DebugLevel, dlHigh, "Select: FD [%d] - Add Read", FD );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add Write Select
|
// Add Write Select
|
||||||
@@ -111,7 +114,7 @@ void CSelect::Add( int FD, bool Read, bool Write, CSelectableCore * Function )
|
|||||||
FD_SET( FD, &WriteTestFDS );
|
FD_SET( FD, &WriteTestFDS );
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "Select: FD [%d] - Add Write", FD );
|
LogMessage( DebugLevel, dlHigh, "Select: FD [%d] - Add Write", FD );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check Maximum File Handle
|
// Check Maximum File Handle
|
||||||
@@ -139,7 +142,7 @@ void CSelect::Remove( int FD, bool Read, bool Write )
|
|||||||
FD_CLR( FD, &ReadTestFDS);
|
FD_CLR( FD, &ReadTestFDS);
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "Select: FD [%d] - Remove Read", FD );
|
LogMessage( DebugLevel, dlHigh, "Select: FD [%d] - Remove Read", FD );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove from set for select write check
|
// Remove from set for select write check
|
||||||
@@ -148,7 +151,7 @@ void CSelect::Remove( int FD, bool Read, bool Write )
|
|||||||
FD_CLR( FD, &WriteTestFDS);
|
FD_CLR( FD, &WriteTestFDS);
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "Select: FD [%d] - Remove Write", FD );
|
LogMessage( DebugLevel, dlHigh, "Select: FD [%d] - Remove Write", FD );
|
||||||
}
|
}
|
||||||
// Handle will be removed in Test() if both Read & Write flags are false
|
// Handle will be removed in Test() if both Read & Write flags are false
|
||||||
}
|
}
|
||||||
@@ -170,7 +173,7 @@ bool CSelect::Test()
|
|||||||
Events = select( MaxFD, &ReadFDS, &WriteFDS, (fd_set*)NULL, &STimeout );
|
Events = select( MaxFD, &ReadFDS, &WriteFDS, (fd_set*)NULL, &STimeout );
|
||||||
if (Events < 0)
|
if (Events < 0)
|
||||||
{
|
{
|
||||||
LogMessage( dlHigh, "Select: Select operation failed" );
|
LogMessage( DebugLevel, dlHigh, "Select: Select operation failed" );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,13 +30,8 @@
|
|||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
//extern char ProcessName[];
|
CSelectableCore::CSelectableCore( const char * Name, CSelect * Selector, EDebugLevel pDebugLevel, int pOutputDisplay ) :
|
||||||
|
CFunctionCore( Name, pDebugLevel, pOutputDisplay )
|
||||||
extern EDebugLevel DebugLevel;
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
CSelectableCore::CSelectableCore( const char * Name, CSelect * Selector ) :
|
|
||||||
CFunctionCore( Name )
|
|
||||||
{
|
{
|
||||||
// Handles
|
// Handles
|
||||||
FirstHandle = NULL;
|
FirstHandle = NULL;
|
||||||
@@ -91,7 +86,7 @@ THandle * CSelectableCore::CreateHandle( const char * HandleName, bool CreateLo
|
|||||||
(*Handle)->FD = -1;
|
(*Handle)->FD = -1;
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Created", Name, HandleName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Created", Name, HandleName );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create Matching IO point
|
// Create Matching IO point
|
||||||
@@ -126,7 +121,7 @@ bool CSelectableCore::RemoveHandle( THandle * Handle )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Removed", Name, Handle->Name );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Removed", Name, Handle->Name );
|
||||||
|
|
||||||
// Destroy Child handle
|
// Destroy Child handle
|
||||||
DestroyHandle( Handle );
|
DestroyHandle( Handle );
|
||||||
@@ -184,7 +179,7 @@ bool CSelectableCore::SetPortHandle( THandle * Handle, const char * FileName )
|
|||||||
strcpy( Handle->FileName, FileName );
|
strcpy( Handle->FileName, FileName );
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Set as Port [%s]", Name, Handle->Name, FileName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as Port [%s]", Name, Handle->Name, FileName );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -211,7 +206,7 @@ bool CSelectableCore::SetSocketHandle( THandle * Handle, EConnectType Type, con
|
|||||||
Handle->PortNo = PortNo;
|
Handle->PortNo = PortNo;
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Set as %s [%s:%d]", Name, Handle->Name, ConnectTypeName[Type], Address, PortNo );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as %s [%s:%d]", Name, Handle->Name, ConnectTypeName[Type], Address, PortNo );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -238,7 +233,7 @@ bool CSelectableCore::ClearHandle( THandle * Handle )
|
|||||||
Handle->Type = ctNone;
|
Handle->Type = ctNone;
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Set as None", Name, Handle->Name );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as None", Name, Handle->Name );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -296,7 +291,7 @@ int CSelectableCore::OpenPort( THandle * Handle )
|
|||||||
if (access( Handle->FileName, F_OK ) != 0)
|
if (access( Handle->FileName, F_OK ) != 0)
|
||||||
{
|
{
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Port not found [%s]", Name, Handle->Name, Handle->FileName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port not found [%s]", Name, Handle->Name, Handle->FileName );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,12 +300,12 @@ int CSelectableCore::OpenPort( THandle * Handle )
|
|||||||
if (Handle->FD == -1)
|
if (Handle->FD == -1)
|
||||||
{
|
{
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Could not open Port [%s]", Name, Handle->Name, Handle->FileName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not open Port [%s]", Name, Handle->Name, Handle->FileName );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Port opened [%s]", Name, Handle->Name, Handle->FileName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port opened [%s]", Name, Handle->Name, Handle->FileName );
|
||||||
|
|
||||||
// Add to Select Lists
|
// Add to Select Lists
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -355,7 +350,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
if ((Handle->FD = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
if ((Handle->FD = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Failed to create Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to create Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set state
|
// Set state
|
||||||
Handle->State = csFailed;
|
Handle->State = csFailed;
|
||||||
@@ -367,7 +362,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
(setsockopt( Handle->FD, SOL_SOCKET, SO_REUSEADDR, &Reuse_opt, sizeof(Reuse_opt)) == -1))
|
(setsockopt( Handle->FD, SOL_SOCKET, SO_REUSEADDR, &Reuse_opt, sizeof(Reuse_opt)) == -1))
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Could not set socket options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not set socket options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set state
|
// Set state
|
||||||
Handle->State = csFailed;
|
Handle->State = csFailed;
|
||||||
@@ -382,7 +377,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
(setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) ))
|
(setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) ))
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set state
|
// Set state
|
||||||
Handle->State = csFailed;
|
Handle->State = csFailed;
|
||||||
@@ -397,7 +392,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
if (bind( Handle->FD, (struct sockaddr *)&address, addr_len ) < 0)
|
if (bind( Handle->FD, (struct sockaddr *)&address, addr_len ) < 0)
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Failed to bind Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to bind Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set state
|
// Set state
|
||||||
close( Handle->FD );
|
close( Handle->FD );
|
||||||
@@ -410,7 +405,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
if (listen( Handle->FD, 5 ) < 0)
|
if (listen( Handle->FD, 5 ) < 0)
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Failed to listen on Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to listen on Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set state
|
// Set state
|
||||||
close( Handle->FD );
|
close( Handle->FD );
|
||||||
@@ -420,7 +415,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle )
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Server binded and listening [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server binded and listening [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo );
|
||||||
|
|
||||||
// Add to Select Lists
|
// Add to Select Lists
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -457,9 +452,9 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle )
|
|||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
if ((errno == EAGAIN) || (errno == EWOULDBLOCK))
|
if ((errno == EAGAIN) || (errno == EWOULDBLOCK))
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Server failed to accept blocking connection (%s)", Name, Handle->Name, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server failed to accept blocking connection (%s)", Name, Handle->Name, strerror(errno) );
|
||||||
else
|
else
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Server failed to accept connection (%s)", Name, Handle->Name, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server failed to accept connection (%s)", Name, Handle->Name, strerror(errno) );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,7 +487,7 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle )
|
|||||||
(*RemoteClient)->State = csWaitingtoOpen;
|
(*RemoteClient)->State = csWaitingtoOpen;
|
||||||
|
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Server accepted Remote Client connection [%s]", Name, Handle->Name, ClientAddress );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server accepted Remote Client connection [%s]", Name, Handle->Name, ClientAddress );
|
||||||
|
|
||||||
// Add to Select Lists
|
// Add to Select Lists
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -512,7 +507,7 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle )
|
|||||||
else if (Handle->State == csWaitingtoOpen)
|
else if (Handle->State == csWaitingtoOpen)
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Remote Client connection open [%s]", Name, Handle->Name, Handle->Address );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Remote Client connection open [%s]", Name, Handle->Name, Handle->Address );
|
||||||
|
|
||||||
// Update state
|
// Update state
|
||||||
Handle->State = csOpen;
|
Handle->State = csOpen;
|
||||||
@@ -546,7 +541,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle )
|
|||||||
if ((Handle->FD = socket( AF_INET, SOCK_STREAM, 0 )) < 0)
|
if ((Handle->FD = socket( AF_INET, SOCK_STREAM, 0 )) < 0)
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Failed to create Client socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to create Client socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set Status
|
// Set Status
|
||||||
Handle->State = csFailed;
|
Handle->State = csFailed;
|
||||||
@@ -565,7 +560,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle )
|
|||||||
(setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) ))
|
(setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) ))
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle %s - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle %s - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Set State
|
// Set State
|
||||||
close( Handle->FD );
|
close( Handle->FD );
|
||||||
@@ -583,7 +578,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle )
|
|||||||
|
|
||||||
if (!connect( Handle->FD, (struct sockaddr *)&address, addr_len ))
|
if (!connect( Handle->FD, (struct sockaddr *)&address, addr_len ))
|
||||||
{
|
{
|
||||||
LogMessage( dlMedium, "%s: Handle %s - Client connected [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle %s - Client connected [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo );
|
||||||
|
|
||||||
// Add to Select Lists
|
// Add to Select Lists
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -597,7 +592,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle )
|
|||||||
else if ((errno == EAGAIN) || (errno == EWOULDBLOCK) || (errno == EINPROGRESS) || (errno == EALREADY))
|
else if ((errno == EAGAIN) || (errno == EWOULDBLOCK) || (errno == EINPROGRESS) || (errno == EALREADY))
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Client waiting to connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client waiting to connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Add to Select Lists
|
// Add to Select Lists
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -611,7 +606,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Client could not connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client could not connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) );
|
||||||
|
|
||||||
// Remove from Select List
|
// Remove from Select List
|
||||||
if (Select) {
|
if (Select) {
|
||||||
@@ -696,24 +691,24 @@ bool CSelectableCore::Close( THandle * Handle, bool CloseChildren )
|
|||||||
{
|
{
|
||||||
case ctPort:
|
case ctPort:
|
||||||
// Log Event
|
// Log Event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Port %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->FileName );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->FileName );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ctServer:
|
case ctServer:
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Server %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ctRemoteClient:
|
case ctRemoteClient:
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Remote Client connection %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Remote Client connection %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ctClient:
|
case ctClient:
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Client connection %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client connection %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ctNone:
|
case ctNone:
|
||||||
default:
|
default:
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - %s, invalid Handle type", Name, Handle->Name, ((Fail)? "failed" : "closed") );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - %s, invalid Handle type", Name, Handle->Name, ((Fail)? "failed" : "closed") );
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -741,7 +736,7 @@ bool CSelectableCore::Read( THandle * Handle )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Log Read Event
|
// Log Read Event
|
||||||
LogMessage( dlHigh, "%s: Handle '%s' - Read Event", Name, Handle->Name );
|
LogMessage( DebugLevel, dlHigh, "%s: Handle '%s' - Read Event", Name, Handle->Name );
|
||||||
|
|
||||||
// Check for closing/opening event on Socket
|
// Check for closing/opening event on Socket
|
||||||
if (Handle->Type == ctServer)
|
if (Handle->Type == ctServer)
|
||||||
@@ -817,8 +812,8 @@ bool CSelectableCore::Write( THandle * Handle )
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log Read Event
|
// Log Ready for Write Event
|
||||||
LogMessage( dlHigh, "%s: Handle '%s' - Write Event", Name, Handle->Name );
|
LogMessage( DebugLevel, dlHigh, "%s: Handle '%s' - Write Event", Name, Handle->Name );
|
||||||
|
|
||||||
if (Handle->State == csWaitingtoOpen)
|
if (Handle->State == csWaitingtoOpen)
|
||||||
{
|
{
|
||||||
@@ -845,7 +840,7 @@ bool CSelectableCore::Write( THandle * Handle )
|
|||||||
if (DebugLevel >= dlHigh) {
|
if (DebugLevel >= dlHigh) {
|
||||||
// Show event
|
// Show event
|
||||||
Len = Handle->OutBuffer->Peek( &Data );
|
Len = Handle->OutBuffer->Peek( &Data );
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update Buffer
|
// Update Buffer
|
||||||
@@ -881,7 +876,6 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force )
|
|||||||
char * Data = NULL;
|
char * Data = NULL;
|
||||||
TLocalIO * LocalIO = NULL;
|
TLocalIO * LocalIO = NULL;
|
||||||
TLinkedIO * Output = NULL;
|
TLinkedIO * Output = NULL;
|
||||||
char HeadStr[50];
|
|
||||||
|
|
||||||
// Check if buffered data
|
// Check if buffered data
|
||||||
if (!Handle || !Handle->InBuffer || !Handle->InBuffer->Len()) {
|
if (!Handle || !Handle->InBuffer || !Handle->InBuffer->Len()) {
|
||||||
@@ -893,7 +887,7 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force )
|
|||||||
{
|
{
|
||||||
// Show Packet
|
// Show Packet
|
||||||
Len = Handle->InBuffer->Peek( &Data );
|
Len = Handle->InBuffer->Peek( &Data );
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - IN-F:", Name, Handle->Name );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - IN-F:", Name, Handle->Name );
|
||||||
|
|
||||||
// Write buffer to Outputs
|
// Write buffer to Outputs
|
||||||
if (Handle->Type == ctRemoteClient) {
|
if (Handle->Type == ctRemoteClient) {
|
||||||
@@ -914,17 +908,12 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Log header
|
|
||||||
if (DebugLevel >= dlHigh) {
|
|
||||||
sprintf( HeadStr, "%s: Handle '%s' - IN-M:", Name, Handle->Name );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Search for end of packet marker
|
// Search for end of packet marker
|
||||||
while (Handle->InBuffer->FindStr( Handle->InMarker, Handle->InMarkerLen, Pos ))
|
while (Handle->InBuffer->FindStr( Handle->InMarker, Handle->InMarkerLen, Pos ))
|
||||||
{
|
{
|
||||||
// Show Packet
|
// Show Packet
|
||||||
Len = Handle->InBuffer->Peek( &Data, 0, Pos+1 );
|
Len = Handle->InBuffer->Peek( &Data, 0, Pos+1 );
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - IN-M:", Name, Handle->Name );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - IN-M:", Name, Handle->Name );
|
||||||
|
|
||||||
// Write buffer to Outputs
|
// Write buffer to Outputs
|
||||||
if (Handle->Type == ctRemoteClient) {
|
if (Handle->Type == ctRemoteClient) {
|
||||||
@@ -1025,12 +1014,12 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len )
|
|||||||
if (!(Handle = GetHandle( IOName )))
|
if (!(Handle = GetHandle( IOName )))
|
||||||
{
|
{
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlHigh, "%s: Local IO '%s' - Input rejected, Input not found", Name, IOName );
|
LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Input rejected, Input not found", Name, IOName );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log event
|
// Log event
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: LocalIO '%s' - IN:", Name, IOName );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: LocalIO '%s' - IN:", Name, IOName );
|
||||||
|
|
||||||
if (Handle->Type == ctServer)
|
if (Handle->Type == ctServer)
|
||||||
{
|
{
|
||||||
@@ -1055,7 +1044,7 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Show event
|
// Show event
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, ChildHandle->Name );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, ChildHandle->Name );
|
||||||
|
|
||||||
// Write directly to handle
|
// Write directly to handle
|
||||||
BytesWritten = WriteToFD( ChildHandle->FD, Data, Len );
|
BytesWritten = WriteToFD( ChildHandle->FD, Data, Len );
|
||||||
@@ -1084,7 +1073,7 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Show event
|
// Show event
|
||||||
ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name );
|
ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name );
|
||||||
|
|
||||||
// Write directly to handle
|
// Write directly to handle
|
||||||
BytesWritten = WriteToFD( Handle->FD, Data, Len );
|
BytesWritten = WriteToFD( Handle->FD, Data, Len );
|
||||||
@@ -1264,13 +1253,13 @@ bool CSelectableCore::SerialConfig( THandle * Handle, int Baud, short DataBits,
|
|||||||
if (tcsetattr( Handle->FD, TCSANOW, &newtio ) != 0)
|
if (tcsetattr( Handle->FD, TCSANOW, &newtio ) != 0)
|
||||||
{
|
{
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Port not configured", Name, Handle->Name );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port not configured", Name, Handle->Name );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Port configured
|
// Port configured
|
||||||
// Log event
|
// Log event
|
||||||
LogMessage( dlMedium, "%s: Handle '%s' - Port configured", Name, Handle->Name );
|
LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port configured", Name, Handle->Name );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -116,9 +116,12 @@ protected:
|
|||||||
int MaxFD;
|
int MaxFD;
|
||||||
timeval Timeout;
|
timeval Timeout;
|
||||||
|
|
||||||
|
// Output
|
||||||
|
EDebugLevel DebugLevel;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Life Cycle
|
// Life Cycle
|
||||||
CSelect( long SelectTimeout );
|
CSelect( long SelectTimeout, EDebugLevel DebugLevel );
|
||||||
~CSelect();
|
~CSelect();
|
||||||
|
|
||||||
// Manage FDs
|
// Manage FDs
|
||||||
@@ -182,7 +185,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Life Cycle
|
// Life Cycle
|
||||||
CSelectableCore( const char * Name, CSelect * Selector );
|
CSelectableCore( const char * Name, CSelect * Selector, EDebugLevel pDebugLevel, int pOuputDisplay );
|
||||||
~CSelectableCore();
|
~CSelectableCore();
|
||||||
|
|
||||||
// Finding Handles
|
// Finding Handles
|
||||||
|
|||||||
@@ -87,11 +87,11 @@ void SignalTerminate( int sig )
|
|||||||
std::cerr << "\r\n" << ProcessName << ": ***********************************\n";
|
std::cerr << "\r\n" << ProcessName << ": ***********************************\n";
|
||||||
|
|
||||||
// Create Log Entry
|
// Create Log Entry
|
||||||
LogMessage( dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount );
|
LogMessage( dlNone, dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount );
|
||||||
if (TermCount < MaxTermCount)
|
if (TermCount < MaxTermCount)
|
||||||
LogMessage( dlNone, "%s: ** Terminating normally... **", ProcessName );
|
LogMessage( dlNone, dlNone, "%s: ** Terminating normally... **", ProcessName );
|
||||||
else
|
else
|
||||||
LogMessage( dlNone, "%s: ** Terminating immediately! **", ProcessName );
|
LogMessage( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName );
|
||||||
|
|
||||||
std::cerr << ProcessName << ": ***********************************\n\n";
|
std::cerr << ProcessName << ": ***********************************\n\n";
|
||||||
|
|
||||||
@@ -121,8 +121,8 @@ void SignalAbort( int sig )
|
|||||||
std::cerr << "\n" << ProcessName << ": ********************************\n";
|
std::cerr << "\n" << ProcessName << ": ********************************\n";
|
||||||
|
|
||||||
// Create Log Entry - but don't post
|
// Create Log Entry - but don't post
|
||||||
LogMessage( dlNone, "%s: ** %s signal received **", ProcessName, SigName );
|
LogMessage( dlNone, dlNone, "%s: ** %s signal received **", ProcessName, SigName );
|
||||||
LogMessage( dlNone, "%s: ** Terminating immediately! **", ProcessName );
|
LogMessage( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName );
|
||||||
|
|
||||||
std::cerr << ProcessName << ": ********************************\n\n";
|
std::cerr << ProcessName << ": ********************************\n\n";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user