From c2c08c527cf090a5fae6ad2c11b5521b6c477a89 Mon Sep 17 00:00:00 2001 From: Charl Wentzel Date: Sun, 8 Sep 2019 10:01:38 +0200 Subject: [PATCH] Minor Update: - Add GetAddress() to CApplciation - Call GetAddress() from GetHandleAddress() is SelectableCore - Correct "Name" overload in SelectableCore->Init() --- ApplicationCore.cpp | 18 ++++++++++++++++++ ApplicationCore.h | 2 ++ SelectableBare.cpp | 13 ++----------- SelectableCore.cpp | 20 ++++++++++---------- 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/ApplicationCore.cpp b/ApplicationCore.cpp index 5c90216..2244562 100644 --- a/ApplicationCore.cpp +++ b/ApplicationCore.cpp @@ -404,6 +404,24 @@ CFunctionCore * CApplication::GetFunction( const char * Name ) } //--------------------------------------------------------------------------- +CDataMember * CApplication::GetAddress( const char * SearchAddress ) +{ + CDataMember * AddressDef = NULL; + char NamePath[100]; + char * Address; + + // Address renamed? + sprintf( NamePath, "Application/Addresses/Rename/%s", SearchAddress ); + if (!(Address = (char*)Config->GetChStr( NamePath, NULL, false ))) { + Address = (char*)SearchAddress; + } + + // Get address def + AddressDef = AddressList->GetChild( Address ); + return AddressDef; +} +//--------------------------------------------------------------------------- + bool CApplication::Run( bool TerminateOnError ) { bool CleanTerminate = true; diff --git a/ApplicationCore.h b/ApplicationCore.h index ef630d6..24c6b7a 100644 --- a/ApplicationCore.h +++ b/ApplicationCore.h @@ -102,6 +102,8 @@ public: CFunctionCore * AddFunction( const char * Type, const char * Name ); CFunctionCore * GetFunction( const char * Name ); + CDataMember * GetAddress( const char * SearchAddress ); + // Run Application bool Run( bool TerminateOnError ); }; diff --git a/SelectableBare.cpp b/SelectableBare.cpp index 07e3994..931a70b 100644 --- a/SelectableBare.cpp +++ b/SelectableBare.cpp @@ -63,19 +63,10 @@ CSelectableBare::~CSelectableBare() CDataMember * CSelectableBare::GetHandleAddress( THandle * Handle, const char * HandleRef ) { CDataMember * AddressDef = NULL; - char NamePath[100]; - char * Address; - // Handle renamed? - sprintf( NamePath, "Application/Addresses/Rename/%s", HandleRef ); - if (!(Address = (char*)Application->Config->GetChStr( NamePath, NULL, false ))) { - Address = (char*)HandleRef; - } - - // Get address def - if ((AddressDef = Application->AddressList->GetChild( Address ))) { + if ((AddressDef = Application->GetAddress( HandleRef ))) { if (Log) Log->Message( LogLevel, dlMedium, "%s/%s: Handle '%s' - Use address '%s' ('%s')", - ProcessName, Name, Handle->Name, Address, HandleRef ); + ProcessName, Name, Handle->Name, AddressDef->GetName(), HandleRef ); } return AddressDef; } diff --git a/SelectableCore.cpp b/SelectableCore.cpp index 62a6a6f..4336761 100644 --- a/SelectableCore.cpp +++ b/SelectableCore.cpp @@ -41,7 +41,7 @@ CFunctionCore * NewSelectableCore( const char * Name ) { } //--------------------------------------------------------------------------- -// Resolve action handlder +// Resolve action handler void ResolveHandler( int Signal, siginfo_t * SignalInfo, void * Context ) { TResolveReq * ResolveReq; @@ -107,7 +107,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) CDataMember * SerialConfig; THandle * Handle; char * Type; - char * Name; + char * PortName; char * Address; char * Port; char * ParityText; @@ -133,7 +133,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) Type = (char*)HandleConfig->GetChStr( "Type", "TCPclient", true ); if (!strcasecmp( Type, "Serial" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Port/Name", NULL )) && (AddressDef = Application->AddressList->GetChild( Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Port/Name", NULL )) && (AddressDef = Application->AddressList->GetChild( PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value } else { Address = (char*)HandleConfig->GetChStr( "Port/Address", NULL, true ); // Get default value @@ -177,7 +177,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "LinePrinter" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Port/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Port/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value } else { Address = (char*)HandleConfig->GetChStr( "Port/Address", NULL, true ); // Get default value @@ -187,7 +187,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "UNIXserver" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value } else { Address = (char*)HandleConfig->GetChStr( "Socket/Address", NULL, true ); // Get default Address value @@ -198,7 +198,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "UNIXclient" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value } else { Address = (char*)HandleConfig->GetChStr( "Socket/Address", NULL, true ); // Get default Address value @@ -208,7 +208,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "UDPserver" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value } else { @@ -220,7 +220,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "UDPclient" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value } else { @@ -232,7 +232,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "TCPserver" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value } else { @@ -245,7 +245,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig ) } else if (!strcasecmp( Type, "TCPclient" )) { - if ((Name = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, Name ))) { + if ((PortName = (char*)HandleConfig->GetChStr( "Socket/Name", NULL )) && (AddressDef = GetHandleAddress( Handle, PortName ))) { Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value } else {