Minor Update:
- Add GetAddress() to CApplciation - Call GetAddress() from GetHandleAddress() is SelectableCore - Correct "Name" overload in SelectableCore->Init()
This commit is contained in:
@@ -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 CApplication::Run( bool TerminateOnError )
|
||||||
{
|
{
|
||||||
bool CleanTerminate = true;
|
bool CleanTerminate = true;
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ public:
|
|||||||
CFunctionCore * AddFunction( const char * Type, const char * Name );
|
CFunctionCore * AddFunction( const char * Type, const char * Name );
|
||||||
CFunctionCore * GetFunction( const char * Name );
|
CFunctionCore * GetFunction( const char * Name );
|
||||||
|
|
||||||
|
CDataMember * GetAddress( const char * SearchAddress );
|
||||||
|
|
||||||
// Run Application
|
// Run Application
|
||||||
bool Run( bool TerminateOnError );
|
bool Run( bool TerminateOnError );
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -63,19 +63,10 @@ CSelectableBare::~CSelectableBare()
|
|||||||
CDataMember * CSelectableBare::GetHandleAddress( THandle * Handle, const char * HandleRef )
|
CDataMember * CSelectableBare::GetHandleAddress( THandle * Handle, const char * HandleRef )
|
||||||
{
|
{
|
||||||
CDataMember * AddressDef = NULL;
|
CDataMember * AddressDef = NULL;
|
||||||
char NamePath[100];
|
|
||||||
char * Address;
|
|
||||||
|
|
||||||
// Handle renamed?
|
if ((AddressDef = Application->GetAddress( HandleRef ))) {
|
||||||
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 (Log) Log->Message( LogLevel, dlMedium, "%s/%s: Handle '%s' - Use address '%s' ('%s')",
|
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;
|
return AddressDef;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ CFunctionCore * NewSelectableCore( const char * Name ) {
|
|||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Resolve action handlder
|
// Resolve action handler
|
||||||
void ResolveHandler( int Signal, siginfo_t * SignalInfo, void * Context )
|
void ResolveHandler( int Signal, siginfo_t * SignalInfo, void * Context )
|
||||||
{
|
{
|
||||||
TResolveReq * ResolveReq;
|
TResolveReq * ResolveReq;
|
||||||
@@ -107,7 +107,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig )
|
|||||||
CDataMember * SerialConfig;
|
CDataMember * SerialConfig;
|
||||||
THandle * Handle;
|
THandle * Handle;
|
||||||
char * Type;
|
char * Type;
|
||||||
char * Name;
|
char * PortName;
|
||||||
char * Address;
|
char * Address;
|
||||||
char * Port;
|
char * Port;
|
||||||
char * ParityText;
|
char * ParityText;
|
||||||
@@ -133,7 +133,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig )
|
|||||||
Type = (char*)HandleConfig->GetChStr( "Type", "TCPclient", true );
|
Type = (char*)HandleConfig->GetChStr( "Type", "TCPclient", true );
|
||||||
if (!strcasecmp( Type, "Serial" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
} else {
|
} else {
|
||||||
Address = (char*)HandleConfig->GetChStr( "Port/Address", NULL, true ); // Get default value
|
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" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
} else {
|
} else {
|
||||||
Address = (char*)HandleConfig->GetChStr( "Port/Address", NULL, true ); // Get default value
|
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" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
} else {
|
} else {
|
||||||
Address = (char*)HandleConfig->GetChStr( "Socket/Address", NULL, true ); // Get default Address value
|
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" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
} else {
|
} else {
|
||||||
Address = (char*)HandleConfig->GetChStr( "Socket/Address", NULL, true ); // Get default Address value
|
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" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
||||||
} else {
|
} else {
|
||||||
@@ -220,7 +220,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig )
|
|||||||
}
|
}
|
||||||
else if (!strcasecmp( Type, "UDPclient" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
||||||
} else {
|
} else {
|
||||||
@@ -232,7 +232,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig )
|
|||||||
}
|
}
|
||||||
else if (!strcasecmp( Type, "TCPserver" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
||||||
} else {
|
} else {
|
||||||
@@ -245,7 +245,7 @@ bool CSelectableCore::Init( CDataMember * FunctionConfig )
|
|||||||
}
|
}
|
||||||
else if (!strcasecmp( Type, "TCPclient" ))
|
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
|
Address = (char*)AddressDef->GetChStr( "Address", NULL, true ); // Get address list value
|
||||||
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
Port = (char*)AddressDef->GetChStr( "Port", "0", true ); // Get AddressList Port value
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user