Important Update:
- FunctionCore/SelectableCore/FileCore/DeviceCore:
- Remove InputChannels
- Only OutputChannels -> LinkedChannels
- Remove PullInput/Output() methods
- Remove StoredOutput
- Add References to channels and linked channels
- Send SourceRef with output
- Receive TargetRef with input
- Filter output channels based on TargetRef
This commit is contained in:
@@ -319,9 +319,9 @@ bool CSelectableBare::ProcessInputBuffer( THandle * Handle, bool Force )
|
||||
|
||||
// Write buffer to Outputs
|
||||
if ((Handle->Type == ctTCPremote) || (Handle->Type == ctUNIXremote)) {
|
||||
Output( Handle->Parent->Channel, Data, Len );
|
||||
Output( Handle->Parent->Channel, NULL, true, Data, Len );
|
||||
} else {
|
||||
Output( Handle->Channel, Data, Len );
|
||||
Output( Handle->Channel, NULL, true, Data, Len );
|
||||
}
|
||||
|
||||
// Clear processed bytes from buffer
|
||||
@@ -339,9 +339,9 @@ bool CSelectableBare::ProcessInputBuffer( THandle * Handle, bool Force )
|
||||
|
||||
// Write buffer to Outputs
|
||||
if ((Handle->Type == ctTCPremote) || (Handle->Type == ctUNIXremote)) {
|
||||
Output( Handle->Parent->Channel, Data, Len );
|
||||
Output( Handle->Parent->Channel, NULL, true, Data, Len );
|
||||
} else {
|
||||
Output( Handle->Channel, Data, Len );
|
||||
Output( Handle->Channel, NULL, true, Data, Len );
|
||||
}
|
||||
|
||||
// Clear processed bytes from buffer
|
||||
@@ -675,7 +675,7 @@ int CSelectableBare::WriteToFD( int FD, const char * Data, int Len, bool Force )
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int CSelectableBare::Input( const char * ChannelName, const char * Data, int Len )
|
||||
int CSelectableBare::Input( const char * ChannelName, const char * SourceRef, const char * Data, int Len )
|
||||
{
|
||||
TChannel * Channel = NULL;
|
||||
THandle * Handle = NULL;
|
||||
@@ -691,20 +691,20 @@ int CSelectableBare::Input( const char * ChannelName, const char * Data, int Len
|
||||
// Get Channel
|
||||
if (!(Channel = GetChannel( ChannelName ))) {
|
||||
// Channel not found
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s' - Input rejected, Channel not found",
|
||||
ProcessName, Name, ChannelName );
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s'->'%s' - Input rejected, Channel not found",
|
||||
ProcessName, Name, ((SourceRef && *SourceRef)? SourceRef : "(Any)"), ChannelName );
|
||||
return 0;
|
||||
}
|
||||
else if (!Channel->InputEnabled) {
|
||||
// Channel disabled
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s' - Input rejected, Channel input disabled",
|
||||
ProcessName, Name, ChannelName );
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s'->'%s' - Input rejected, Channel input disabled",
|
||||
ProcessName, Name, ((SourceRef && *SourceRef)? SourceRef : "(Any)"), ChannelName );
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Log event
|
||||
if (Log) Log->Output( LogLevel, dlHigh, LogOutput, Data, Len, "%s/%s: Channel '%s' - IN:",
|
||||
ProcessName, Name, ChannelName );
|
||||
if (Log) Log->Output( LogLevel, dlHigh, LogOutput, Data, Len, "%s/%s: Channel '%s'->'%s' - IN:",
|
||||
ProcessName, Name, ((SourceRef && *SourceRef)? SourceRef : "(Any)"), ChannelName );
|
||||
|
||||
// Find Linked handle
|
||||
Handle = FirstHandle;
|
||||
@@ -722,8 +722,8 @@ int CSelectableBare::Input( const char * ChannelName, const char * Data, int Len
|
||||
|
||||
if (!HandleCount) {
|
||||
// Handle not found
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s' - Input rejected, No Handles found",
|
||||
ProcessName, Name, ChannelName );
|
||||
if (Log) Log->Message( LogLevel, dlHigh, "%s/%s: Channel '%s'->'%s' - Input rejected, No Handles found",
|
||||
ProcessName, Name, ((SourceRef && *SourceRef)? SourceRef : "(Any)"), ChannelName );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user