Important Update:

- ItemBufferCore:
  - New Class for storing items in a FIFO style buffer
- FunctionCore:
  - Implemented pulled input:
    - Function creates static output: StoredOutput & StoredOutputLen
    - Other Function pulls static output from input linked functions
- FunctionCore-ChannelBuffer:
  - Tried to create a processing buffer
  - Abandoned for now
This commit is contained in:
Charl Wentzel
2017-07-24 16:33:01 +02:00
parent 2f81d1fbbe
commit 3e0ff00dbe
6 changed files with 592 additions and 15 deletions

View File

@@ -14,8 +14,6 @@
// redA Libraries
#include "LogCore.h"
#include "DataTreeCore.h"
#include "CharBufferCore.h"
//---------------------------------------------------------------------------
@@ -65,11 +63,15 @@ protected:
// Channels
TChannel * FirstChannel;
// Output
// Logging
CLogCore * Log;
EDebugLevel LogLevel;
int LogOutput;
// Stored Output
char * StoredOutput;
int StoredOutputLen;
// Manage Channel
inline TChannel * GetChannel( const char * Name ) {
if (!Name) return NULL;
@@ -83,8 +85,9 @@ protected:
virtual bool LoadConfigData();
virtual bool LoadChannelLinkData();
// Manual Data Input/Output
virtual int Output( const TChannel * Channel, const char * Data, int Len );
// Data Input/Output
virtual int Output( const TChannel * Channel, const char * Data, int Len );
virtual bool PullInput( TChannel * Channel );
public:
// Life cycle
@@ -131,9 +134,13 @@ public:
return ((Channel)? Channel->OutputEnabled : false);
}
// Manual Data Input/Output
virtual int Input( const char * ChannelName, const char * Data, int MaxLen = -1 );
// Pushing Data Output -> Input
virtual int Output( const char * ChannelName, const char * Data, int Len = -1 );
virtual int Input( const char * ChannelName, const char * Data, int Len = -1 );
// Pulling Data Input <- Output
virtual bool PullInput( const char * ChannelName );
virtual bool PullOutput( const char * ChannelName, char ** Data, int * Len = NULL );
// Automated Data Input/Output
virtual bool LinkInputChannel( const char * ChannelName, const char * OutFunctionName, const char * OutChannelName, bool Bidirectional );