Important Update:

- DataTreeCore:
  - Add GetLen() method to get length of (text) value
- FileCore:
  - Minor fix: rename MaxLen -> Len
This commit is contained in:
Charl Wentzel
2017-08-02 03:38:37 +02:00
parent 983a0c5002
commit ade3c10a1a
4 changed files with 22 additions and 6 deletions

View File

@@ -554,6 +554,21 @@ const char * CDataTree::GetStr( TDataMember * BaseMember, const char * Path, int
}
//---------------------------------------------------------------------------
const int CDataTree::GetLen( TDataMember * BaseMember, const char * Path )
{
TDataMember * Member;
// Validate
if ((Member = GetMember( BaseMember, Path, false )) &&
((Member->Type == jtString) || (Member->Type == jtFloat) || (Member->Type == jtInt) || (Member->Type == jtBool)) ) {
return Member->Len;
}
else {
return 0;
}
}
//---------------------------------------------------------------------------
const long CDataTree::GetInt( TDataMember * BaseMember, const char * Path, long Default, bool Create, const char * Mask )
{
TDataMember * Member;

View File

@@ -73,6 +73,7 @@ public:
const char * GetStr( TDataMember * BaseMember, const char * Path, const char * Default = NULL, bool Create = false );
const char * GetStr( TDataMember * BaseMember, const char * Path, int &Len, const char * Default = NULL, bool Create = false );
const int GetLen( TDataMember * BaseMember, const char * Path );
const long GetInt( TDataMember * BaseMember, const char * Path, long Default = 0, bool Create = false, const char * Mask = NULL );
const double GetFloat( TDataMember * BaseMember, const char * Path, double Default = 0.0, bool Create = false, const char * Mask = NULL );
const bool GetBool( TDataMember * BaseMember, const char * Path, bool Default = false, bool Create = false );

View File

@@ -240,7 +240,7 @@ int CFileCore::WriteToFD( int FD, const char * Data, int Len )
//---------------------------------------------------------------------------
// Manual Data Input/Output
int CFileCore::Input( const char * ChannelName, const char * Data, int MaxLen )
int CFileCore::Input( const char * ChannelName, const char * Data, int Len )
{
TFileHandle * FileHandle = NULL;
int BytesWritten = 0;
@@ -249,8 +249,8 @@ int CFileCore::Input( const char * ChannelName, const char * Data, int MaxLen )
if (!ChannelName || !Data) {
return 0;
}
else if (MaxLen == -1) {
MaxLen = strlen( Data );
else if (Len == -1) {
Len = strlen( Data );
};
// Get Channel
@@ -262,7 +262,7 @@ int CFileCore::Input( const char * ChannelName, const char * Data, int MaxLen )
}
// Log event
Log->Output( LogLevel, dlHigh, LogOutput, Data, MaxLen, "%s: Channel '%s' - IN:", Name, ChannelName );
Log->Output( LogLevel, dlHigh, LogOutput, Data, Len, "%s: Channel '%s' - IN:", Name, ChannelName );
// Open file
if (!OpenFile( FileHandle )) {
@@ -270,7 +270,7 @@ int CFileCore::Input( const char * ChannelName, const char * Data, int MaxLen )
}
// Handle Incoming data
BytesWritten = WriteToFD( FileHandle->FD, Data, MaxLen );
BytesWritten = WriteToFD( FileHandle->FD, Data, Len );
SetStartTime( &(FileHandle->PersistTime) );
// Return processed bytes

View File

@@ -68,7 +68,7 @@ public:
virtual bool SetFilePersistence( TFileHandle * FileHandle, bool Persistent, int PersistTimeout );
// Data Input
virtual int Input( const char * ChannelName, const char * Data, int MaxLen = -1 );
virtual int Input( const char * ChannelName, const char * Data, int Len = -1 );
// Processing data
virtual bool Process();