From 0d014802c5b3fe62cc73819b34739a2e43d26668 Mon Sep 17 00:00:00 2001 From: eaw Date: Sat, 14 Mar 2026 10:06:35 +0000 Subject: [PATCH] Update README from eaw.app website content --- README.md | 140 +++++++++++++++++++++++++++--------------------------- 1 file changed, 71 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 79ce287..31a73bd 100755 --- a/README.md +++ b/README.md @@ -1,22 +1,24 @@ -Please consult my [GitHub](https://pdsmart.github.io) website for more upto date information. -
+# libraries +**Website:** [engineers@work](https://eaw.app) | **Repository:** [git.eaw.app/eaw/libraries](https://git.eaw.app/eaw/libraries) + +--- This repository is a collection of software libraries I've developed over time, some which I aim to use with the ZPU Evo. -Currently there is an issue with the ZPU GCC Toolchain in that it doesnt support network programming or the newlib library. This means UX wont fully build for the ZPU Evo but it is something I will endeavour to resolve as I want network functionality and threads in zOS. +Currently there is an issue with the ZPU GCC Toolchain in that it doesn't support network programming or the newlib library. This means UX won't fully build for the ZPU Evo but it is something I will endeavour to resolve as I want network functionality and threads in zOS.
-# UX Library +## UX Library In 1994 most C program creation involved buying expensive toolkits (such as Rogue Wave) and cobbling the often faulty library API's together or writing your own which was no trivial task. Today, most modern languages have very rich eco systems, ie. Java, Perl, Python etc. Libraries can be found for C/C++ such as this one which are open source to speed development but you may have to look hard. -I wrote this library to make it easier to write C programs for clients and often the whole toolkit was eventually given to the client and enhanced considerably for them whilst designing their applications (unfortunately due to licensing I couldnt back port the enhancements). +I wrote this library to make it easier to write C programs for clients and often the whole toolkit was eventually given to the client and enhanced considerably for them whilst designing their applications (unfortunately due to licensing I couldn't back port the enhancements). It makes it much easier to write C programs on Linux, Solaris and Windows and for embedded development will be very useful. The ZPU Evo is one such target for this toolkit, hence bringing it back to life. The methods in the UX Library are described below ordered by the module to which they belong. If a method begins with '_' then it is internal and normally not called directly, albeit being C there is no Private definition to methods or their data so you can call them if it helps. -### ux_cli +### ux_cli Unix or Windows Command Line Processing functions. @@ -27,7 +29,7 @@ Unix or Windows Command Line Processing functions. |Returns: |R_OK - Parameter obtained.
R_FAIL - Parameter does not exist.| |Prototype: |`int GetCLIParam( int nArgc /* I: Argc or equiv */, UCHAR **Argv /* IO: Argv or equiv */, UCHAR *szParm /* I: Param flag to look for */, UINT nParmType /* I: Type of param (ie int) */, UCHAR *pVar /* O: Pointer to variable for parm */, UINT nVarLen /* I: Length pointed to by pVar */, UINT nZapParam ) /* I: Delete argument after proc */`| -### ux_cmprs +### ux_cmprs A set of methods to compress/decompress data. The basic code stems from a LINUX public domain lzw compression/decompression algorithm, basically tidied up a little and enhanced to allow embedding within programs. Eventually, a more hi-tech algorithm will be implemented, but for now, this lzw appears to have very high compression ratio's on text. @@ -59,7 +61,7 @@ A set of methods to compress/decompress data. The basic code stems from a LINUX |Returns: |0 = Worthless CPU waste (No compression)
-1 = General error
-2 = Logical error
-3 = Expand error
>0 = OK/total length| |Prototype: |`int RLZW( code *si /* I: Data to be decompressed */, byte *so /* O: Decompressed data */, int silen /* I: Compressed length */, int len ) /* I: Expected length of decompressed data. */`| -### ux_comms +### ux_comms Generic network communications routines. These form the basis of daemon functionality, receiving connections and scheduling processes and callbacks. @@ -85,13 +87,13 @@ Generic network communications routines. These form the basis of daemon function |**Function**: |**_SL_FdBlocking**| |Description: |Set a file descriptors blocking mode.| |Thread Safe: | Yes| - |Returns: |R_OK - Mode set.
R_FAIL - Couldnt set mode.| + |Returns: |R_OK - Mode set.
R_FAIL - Couldn't set mode.| |Prototype: |`int _SL_FdBlocking( int nFd /* File descr to perform action on*/, int nBlock ) /* Block (1) or non-blocking (0) */`| | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SL_AcceptClient**| - |Description: |Accept an incoming request from a client. Builds a duplicate table entry for the client (if one doesnt already exist) and allocates a unique Channel Id to it.| + |Description: |Accept an incoming request from a client. Builds a duplicate table entry for the client (if one doesn't already exist) and allocates a unique Channel Id to it.| |Thread Safe: | No, ensures only SL library thread may enter.| |Returns: |R_OK - Comms functionality initialised.
R_FAIL - Initialisation failed, see Errno.
| | |E_NOMEM - Memory exhaustion.| @@ -120,7 +122,7 @@ Generic network communications routines. These form the basis of daemon function |Description: |Attempt to make a connection with a remote server.| |Thread Safe: | No, forces SL thread entry only.| |Returns: |R_OK -
R_FAIL -
| - | |E_NOMEM - Memory exhaustion.
E_NOSOCKET - Couldnt allocate a socket for connection.| + | |E_NOMEM - Memory exhaustion.
E_NOSOCKET - Couldn't allocate a socket for connection.| |Prototype: |`int _SL_ConnectToServer( SL_NETCONS *spNetCon )| | | | @@ -138,7 +140,7 @@ Generic network communications routines. These form the basis of daemon function |Description: |Process the data held in a network connection's receive buffer. If a complete packet has been assembled and passed a CRC check, pass the data to the subscribing application via its callback.| |Thread Safe: | No, forces SL thread entry only.| |Returns: |R_OK -
R_FAIL -
| - | |E_NOMEM - Memory exhaustion.
E_NOSOCKET - Couldnt allocate a socket for connection.| + | |E_NOMEM - Memory exhaustion.
E_NOSOCKET - Couldn't allocate a socket for connection.| |Prototype: |`int _SL_ProcessRecvBuf( SL_NETCONS *spNetCon )`| | | | @@ -197,7 +199,7 @@ Generic network communications routines. These form the basis of daemon function |**Function**: |**SL_Exit**| |Description: |Decommission the Comms module ready for program termination or re-initialisation.| |Thread Safe: | No, API function, only allows one thread at a time.| - |Returns: |R_OK - Exit succeeded.
R_FAIL - Couldnt perform exit processing, see errno.| + |Returns: |R_OK - Exit succeeded.
R_FAIL - Couldn't perform exit processing, see errno.| | | |Prototype: |`int SL_Exit( UCHAR *szErrMsg ) /* O: Error message buffer */`| @@ -212,9 +214,9 @@ Generic network communications routines. These form the basis of daemon function | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**SL_GetChanId**| - |Description: |Get a channel Id from a given IP addr. If the IP addr doesnt exist or is still pending a connection, return 0 as an error.| + |Description: |Get a channel Id from a given IP addr. If the IP addr doesn't exist or is still pending a connection, return 0 as an error.| |Thread Safe: | No, API function only allows one thread at a time.| - |Returns: |> 0 - Channel Id associated with IP address.
0 - Couldnt find an associated channel.| + |Returns: |> 0 - Channel Id associated with IP address.
0 - Couldn't find an associated channel.| |Prototype: |`UINT SL_GetChanId( ULNG lIPaddr ) /* I: Address to xlate */`| | | | @@ -232,7 +234,7 @@ Generic network communications routines. These form the basis of daemon function |Description: |Add an entry into the Network Connections table as a Server. An entry is built up and a socket created and set listening.| |Thread Safe: | No, API Function, only allows one thread at a time.| |Returns: |R_OK - Successfully added.
R_FAIL - Error, see Errno.| - | |E_NOMEM - Memory exhaustion.
E_BADPARM - Bad parameters passed.
E_EXISTS - Entry already exists.
E_NOSOCKET - Couldnt grab a socket.
E_NOLISTEN - Couldnt listen on given port.| + | |E_NOMEM - Memory exhaustion.
E_BADPARM - Bad parameters passed.
E_EXISTS - Entry already exists.
E_NOSOCKET - Couldn't grab a socket.
E_NOLISTEN - Couldn't listen on given port.| |Prototype: |`int SL_AddServer( UINT nPortNo /* I: Port to listen on */, UINT nForkForAccept /* I: Fork prior to accept */, void (*nDataCallback)() /* I: Data ready callback */, void (*nCntrlCallback)(int, ...) ) /* I: Control callback */`| | | | @@ -284,7 +286,7 @@ Generic network communications routines. These form the basis of daemon function |**Function**: |**SL_SendData**| |Description: |Transmit a packet of data to a given destination identified by it channel Id.| |Thread Safe: | No, API function, only allows one thread at a time.| - |Returns: |R_OK - Data sent successfully.
R_FAIL - Couldnt send data, see Errno.| + |Returns: |R_OK - Data sent successfully.
R_FAIL - Couldn't send data, see Errno.| | |E_INVCHANID - Invalid channel Id.
E_BUSY - Channel is busy, retry later.
E_BADSOCKET - Internal failure on socket, terminal.
E_NOSERVICE - No remote connection established yet.| |Prototype: |`int SL_SendData( UINT nChanId /* I: Channel Id to send data on */, UCHAR *szData /* I: Data to be sent */, UINT nDataLen ) /* I: Length of data */`| @@ -293,14 +295,14 @@ Generic network communications routines. These form the basis of daemon function |**Function**: |**SL_BlockSendData**| |Description: |Transmit a packet of data to a given destination but ensure it is sent prior to exit. If an error occurs, then return it to the caller. | |Thread Safe: | No, API function, only allows one thread at a time.| - |Returns: |R_OK - Data sent successfully.
R_FAIL - Couldnt send data, see Errno.| + |Returns: |R_OK - Data sent successfully.
R_FAIL - Couldn't send data, see Errno.| | |E_INVCHANID - Invalid channel Id.
E_BADSOCKET - Internal failure on socket, terminal.
E_NOSERVICE - No remote connection established yet.| |Prototype: |`int SL_BlockSendData( UINT nChanId /* I: Channel Id to send data on */, UCHAR *szData /* I: Data to be sent */, UINT nDataLen ) /* I: Length of data */`| | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**SL_Poll**| - |Description: |Function for programs which cant afford UX taking control of the CPU. This function offers these type of applications the ability to allow comms processing by frequently calling this Poll function.| + |Description: |Function for programs which can't afford UX taking control of the CPU. This function offers these type of applications the ability to allow comms processing by frequently calling this Poll function.| |Thread Safe: | No, API function, only allows one thread at a time.| |Returns: |R_OK - System closing down.R_FAIL - Catastrophe, see Errno.| | | | @@ -315,7 +317,7 @@ Generic network communications routines. These form the basis of daemon function | | | |Prototype: |`int SL_Kernel( void )`| -### ux_lgr +### ux_lgr General purpose standalone (programmable) logging utilities. @@ -326,7 +328,7 @@ General purpose standalone (programmable) logging utilities. |Returns: |Non.| |Prototype: |`void Lgr( int nLevel /* I: Level of error message/or command */, ... ) /* I: Varargs */`| -### ux_linkl +### ux_linkl A library of linked list functions for creating, deleting, searching (etc..) linked lists. @@ -343,7 +345,7 @@ A library of linked list functions for creating, deleting, searching (etc..) lin |**Function**: |**DelItem**| |Description: |Delete an element from a given linked list. The underlying carried data is not freed, it is assumed that the caller will free that, as it was the caller that allocated it.| |Returns: |R_OK - Item deleted successfully.
R_FAIL - Failure in deletion, see Errno.| - | |E_BADHEAD - Head pointer is bad.
E_BADTAIL - Tail pointer is bad.
E_MEMFREE - Couldnt free memory to sys pool.
E_NOKEY - No search key provided.| + | |E_BADHEAD - Head pointer is bad.
E_BADTAIL - Tail pointer is bad.
E_MEMFREE - Couldn't free memory to sys pool.
E_NOKEY - No search key provided.| |Prototype: |`int DelItem( LINKLIST **spHead /* IO: Pointer to head of list */, LINKLIST **spTail /* IO: Pointer to tail of list */, void *spKey /* I: Addr of item, direct update */, UINT *nKey /* I: Integer based search key */, ULNG *lKey /* I: Long based search key */, UCHAR *szKey ) /* I: String based search key */`| | | | @@ -394,7 +396,7 @@ A library of linked list functions for creating, deleting, searching (etc..) lin | |E_BADHEAD - Head pointer is bad.| |Prototype: |`int SizeList( LINKLIST *spHead /* I: Pointer to head of list */, UINT *nCnt ) /* O: Count of elements in list */`| -### ux_mon +### ux_mon Interactive Monitor functionality. Provides a suite of interactive commands (HTML or Natural Language) that a user can issue to an executing application that incorporates these facilities. @@ -408,7 +410,7 @@ Interactive Monitor functionality. Provides a suite of interactive commands (HTM | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_ML_InterpretHTMLRequest**| - |Description: |Buffer from an external client (ie. Web Browser) contains a an HTML request. Interpret it into a set of actions through comparisons and deductions.| + |Description: |Buffer from an external client (ie. Web Browser) contains an HTML request. Interpret it into a set of actions through comparisons and deductions.| |Returns: |Non.| |Prototype: |`UINT _ML_InterpretHTMLRequest( ML_MONLIST *spMon /* I: Monitor Desc */, ML_CONLIST *spCon /* I: Connection Desc */, UCHAR *szData ) /* I: Command Buffer */`| @@ -451,7 +453,7 @@ Interactive Monitor functionality. Provides a suite of interactive commands (HTM | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**ML_Exit**| |Description: |Decommission the Monitor module ready for program termination or re-initialisation.| - |Returns: |R_OK - Exit succeeded.
R_FAIL - Couldnt perform exit processing, see errno.| + |Returns: |R_OK - Exit succeeded.
R_FAIL - Couldn't perform exit processing, see errno.| | | |Prototype: |`int ML_Exit( UCHAR *szErrMsg ) /* O: Error message buffer */`| @@ -466,7 +468,7 @@ Interactive Monitor functionality. Provides a suite of interactive commands (HTM | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**ML_AddMonCommand**| |Description: |Add a command to the interactive monitors database of recognised reserved words. When a command comes in from an external user, if checks it against its reserved word list for verification and identification.| - |Returns: |R_OK - Command added.
R_FAIL - Couldnt add command, see errno.| + |Returns: |R_OK - Command added.
R_FAIL - Couldn't add command, see errno.| | | |Prototype: |`int ML_AddMonCommand( UINT nMonPort /* I: Service Mon Port */, UCHAR *szCommand /* I: Command in text */, int (*nCallback)()) /* I: Command callback */`| @@ -474,7 +476,7 @@ Interactive Monitor functionality. Provides a suite of interactive commands (HTM | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**ML_DelMonCommand**| |Description: |Delete a command currently active in a monitor channels database of recognised words.| - |Returns: |R_OK - Command deleted.
R_FAIL - Couldnt delete command, see errno.| + |Returns: |R_OK - Command deleted.
R_FAIL - Couldn't delete command, see errno.| | | |Prototype: |`int ML_DelMonCommand( UINT nMonPort, /* I: Service Mon Port */, UCHAR *szCommand ) /* I: Command to delete */`| @@ -482,11 +484,11 @@ Interactive Monitor functionality. Provides a suite of interactive commands (HTM | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**ML_Broadcast**| |Description: |Broadcast a message to all listening monitor processes.| - |Returns: |R_OK - Data sent to some/all successfully.
R_FAIL - Couldnt send to any, see Errno.| + |Returns: |R_OK - Data sent to some/all successfully.
R_FAIL - Couldn't send to any, see Errno.| | | | |Prototype: |`int ML_Broadcast( UCHAR *szData /* I: Data to be sent */, UINT nDataLen ) /* I: Length of data */`| -### ux_str +### ux_str General purpose string processing funtions. Additions to those which exist within the C libraries. @@ -521,7 +523,7 @@ General purpose string processing funtions. Additions to those which exist withi | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**StrPut**| - |Description: |Put a string INTO another string. Same as strcpy BUT it doesnt terminate the destination string.| + |Description: |Put a string INTO another string. Same as strcpy BUT it doesn't terminate the destination string.| |Returns: |R_OK - Cannot fail ... will I be eating my words...?| |Prototype: |`UINT StrPut( UCHAR *spDestBuf /* I: Destination buffer to copy into */, UCHAR *spSrcBuf /* I: Source buffer to copy from */, UINT nBytes ) /* I: Number of bytes to copy */`| @@ -570,14 +572,14 @@ General purpose string processing funtions. Additions to those which exist withi | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**StrCaseCmp**| - |Description: |A function to perform string compares regardless of character case. Provided mainly for operating systems that dont possess such functionality.| + |Description: |A function to perform string compares regardless of character case. Provided mainly for operating systems that don't possess such functionality.| |Returns: |0 - Strings compare.
> 0
< 0| |Prototype: |`int StrCaseCmp( const char *szSrc /* I: Base string to compare against */, const char *szCmp ) /* I: Comparator string */`| | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**StrnCaseCmp**| - |Description: |A function to perform string compares regardless of character case for a specified number of characters within both strings. Provided mainly for operating systems that dont possess such functionality.| + |Description: |A function to perform string compares regardless of character case for a specified number of characters within both strings. Provided mainly for operating systems that don't possess such functionality.| |Returns: |0 - Strings compare.
> 0
< 0| |Prototype: |`int StrnCaseCmp( const char *szSrc /* I: Base string to compare against */, const char *szCmp /* I: Comparator string */, size_t nCount ) /* I: Number of bytes to compare */`| @@ -585,10 +587,10 @@ General purpose string processing funtions. Additions to those which exist withi | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**SplitFQFN**| |Description: |A function to split a fully qualified filename into a directory and filename components.| - |Returns: |R_OK - Filename split.
R_FAIL - Couldnt split due to errors, ie. memory.| + |Returns: |R_OK - Filename split.
R_FAIL - Couldn't split due to errors, ie. memory.| |Prototype: |`int SplitFQFN( char *szFQFN /* I: Fully Qualified File Name */, char **szDir /* O: Directory component */, char **szFN ) /* O: Filename component */`| -### Example UX test program +### Example UX test program This example can be found in the repository in the ux_test folder. @@ -690,7 +692,7 @@ int _HTML_GetHandler( UINT nChanId, /* I: Channel Id of new con */ ML_Send(nChanId, "Content-type: text/html\n\n", 0); /* Scan the buffer for the recognised browser end of stream: - * HTTP/version. If it doesnt exist, send an error message to client + * HTTP/version. If it doesn't exist, send an error message to client * and exit. */ if( (spMsgBuf=(UCHAR *)malloc((strlen(szData)*3)+1)) == NULL ) @@ -1146,7 +1148,7 @@ int main( int argc, /* I: Count of available arguments */
-# SDD Library +## SDD Library The Server Data-source Driver library is a set of API's for communicating with a data source. Currently drivers have been written for: - Audio Playback - not technically a data source, more a data target but the SDD library is bi-directional in nature. @@ -1162,27 +1164,27 @@ The drivers are opened via the MDC layer or directly in an application wishing t The methods in the SDD Library are described below ordered by the driver to which they belong. If a method begins with '_' then it is internal and normally not called directly, albeit being C there is no Private definition to methods or their data so you can call them if it helps. -### Audio driver sdd_aupl +### Audio driver sdd_aupl | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_AUPL_GetStrArg**| |Description: |Function to scan an input buffer and extract a string based argument. | - |Returns: |SDD_FAIL- Couldnt obtain argument.
SDD_OK - Argument obtained. | + |Returns: |SDD_FAIL- Couldn't obtain argument.
SDD_OK - Argument obtained. | |Prototype: |`int _AUPL_GetStrArg( UCHAR *snzDataBuf /* I: Input buffer */, int nDataLen /* I: Len of data */, UCHAR *szArg /* I: Arg to look for */, UCHAR **pszPath ) /* O: Pointer to argument */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_AUPL_ValidatePath**| |Description: |Function to validate the existence of a path. | - |Returns: |SDD_FAIL- Couldnt validate PATH.
SDD_OK - PATH validated. | + |Returns: |SDD_FAIL- Couldn't validate PATH.
SDD_OK - PATH validated. | |Prototype: |`int _AUPL_ValidatePath( UCHAR *pszPath ) /* I: Path to validate */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_AUPL_ValidateFile**| |Description: |Function to validate the existence of a file or to validate that a file can be created. | - |Returns: |SDD_FAIL- Couldnt obtain Filename or validate it.
SDD_OK - Filename obtained and validated. | + |Returns: |SDD_FAIL- Couldn't obtain Filename or validate it.
SDD_OK - Filename obtained and validated. | |Prototype: |`int _AUPL_ValidateFile( UCHAR *pszPath /* I: Path to file */, UCHAR *pszFile /* I: File to validate */, UINT nWriteFlag ) /* I: Read = 0, Write = 1 */` | | | | @@ -1220,13 +1222,13 @@ The methods in the SDD Library are described below ordered by the driver to whic |Returns: |No returns. | |Prototype: |`void aupl_ProcessOOB( UCHAR nCommand ) /* I: OOB Command */` | -### FTP Protocol driver sdd_ftpx +### FTP Protocol driver sdd_ftpx | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_FTPX_GetStrArg**| |Description: |Function to scan an input buffer and extract a string based argument. | - |Returns: |SDD_FAIL- Couldnt obtain argument.
SDD_OK - Argument obtained. | + |Returns: |SDD_FAIL- Couldn't obtain argument.
SDD_OK - Argument obtained. | |Prototype: |`int _FTPX_GetStrArg( UCHAR *snzDataBuf /* I: Input buffer */, int nDataLen /* I: Len of data */, UCHAR *szArg /* I: Arg to look for */, UCHAR **pszPath ) /* O: Pointer to argument */` | | | | @@ -1247,7 +1249,7 @@ The methods in the SDD Library are described below ordered by the driver to whic | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_FTPX_PutReadData**| |Description: |Function to read an open stream and transmit the data contents to the caller via the callback mechanism. | - |Returns: |SDD_FAIL- Couldnt obtain PATH.
SDD_OK - PATH obtained. | + |Returns: |SDD_FAIL- Couldn't obtain PATH.
SDD_OK - PATH obtained. | |Prototype: |`int _FTPX_PutReadData( FILE *fpFile /* I: Stream to read from */, int (*fSendDataCB)(UCHAR *, UINT) /* I: CB to send data to */, UCHAR *szErrMsg ) /* O: Error text */` | | | | @@ -1324,14 +1326,14 @@ The methods in the SDD Library are described below ordered by the driver to whic | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_FTPX_FTPInit**| |Description: |Function to initialise a connection with an FTP server. The caller provides the name/IP address of the server and the user name/password to complete the connection. | - |Returns: |SDD_FAIL - Couldnt make connection with given details.
SDD_OK - FTP connection made. | + |Returns: |SDD_FAIL - Couldn't make connection with given details.
SDD_OK - FTP connection made. | |Prototype: |`int _FTPX_FTPInit( UCHAR *szFTPServer /* I: Name of FTP server */, UCHAR *szUserName /* I: User name to login with */, UCHAR *szPassword /* I: Password for login */, UCHAR *szErrMsg ) /* O: Error message if failed */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_FTPX_FTPClose**| |Description: |Function to close a connected FTP connection and tidy up in preparation for next task. | - |Returns: |SDD_FAIL - Failed to close properly, library wont work again.
SDD_OK - Closed. | + |Returns: |SDD_FAIL - Failed to close properly, library won't work again.
SDD_OK - Closed. | |Prototype: |`int _FTPX_FTPClose( UCHAR *szErrMsg ) /* O: Generated error messages */` | | | | @@ -1383,7 +1385,7 @@ The methods in the SDD Library are described below ordered by the driver to whic |Returns: |No returns. | |Prototype: |`void ftpx_ProcessOOB( UCHAR nCommand ) /* I: OOB Command */` | -### Java driver sdd_java +### Java driver sdd_java | | | | ---------- | ----------------------------------------------------------------------------- | @@ -1413,13 +1415,13 @@ The methods in the SDD Library are described below ordered by the driver to whic |Returns: |No returns. | |Prototype: |`void java_ProcessOOB( UCHAR nCommand ) /* I: OOB Command */` | -### ODBC driver sdd_odbc +### ODBC driver sdd_odbc | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_ODBC_GetArg**| |Description: |Function to scan an input buffer and extract a required argument from it. | - |Returns: |SDD_FAIL- Couldnt obtain argument.
SDD_OK - Argument obtained and validated. | + |Returns: |SDD_FAIL- Couldn't obtain argument.
SDD_OK - Argument obtained and validated. | |Prototype: |`int _ODBC_GetArg( UCHAR *szArgType /* I: Type of Arg to scan for */, UCHAR *snzDataBuf /* I: Input buffer */, int nDataLen /* I: Len of data */, UCHAR **pszArg ) /* O: Pointer to Arg */` | | | | @@ -1485,34 +1487,34 @@ The methods in the SDD Library are described below ordered by the driver to whic |Returns: |No returns. | |Prototype: |`void odbc_ProcessOOB( UCHAR nCommand ) /* I: OOB Command */` | -### SCMD driver sdd_scmd +### SCMD driver sdd_scmd | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SCMD_GetStrArg**| |Description: |Function to scan an input buffer and extract a string based argument. | - |Returns: |SDD_FAIL- Couldnt obtain argument.
SDD_OK - Argument obtained. | + |Returns: |SDD_FAIL- Couldn't obtain argument.
SDD_OK - Argument obtained. | |Prototype: |`int _SCMD_GetStrArg( UCHAR *snzDataBuf /* I: Input buffer */, int nDataLen /* I: Len of data */, UCHAR *szArg /* I: Arg to look for */, UCHAR **pszPath ) /* O: Pointer to argument */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SCMD_ValidatePath**| |Description: |Function to validate the existence of a path. | - |Returns: |SDD_FAIL- Couldnt validate PATH.
SDD_OK - PATH validated. | + |Returns: |SDD_FAIL- Couldn't validate PATH.
SDD_OK - PATH validated. | |Prototype: |`int _SCMD_ValidatePath( UCHAR *pszPath ) /* I: Path to validate */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SCMD_ValidateFile**| |Description: |Function to validate the existence of a file or to validate that a file can be created. | - |Returns: |SDD_FAIL- Couldnt obtain Filename or validate it.
SDD_OK - Filename obtained and validated. | + |Returns: |SDD_FAIL- Couldn't obtain Filename or validate it.
SDD_OK - Filename obtained and validated. | |Prototype: |`int _SCMD_ValidateFile( UCHAR *pszPath /* I: Path to file */, UCHAR *pszFile /* I: File to validate */, UINT nWriteFlag ) /* I: Read = 0, Write = 1 */` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SCMD_ValidateTime**| |Description: |Function to validate a time value given as an ascii string. | - |Returns: |SDD_FAIL- Couldnt obtain a TIME or validate it.
SDD_OK - TIME obtained and validated. | + |Returns: |SDD_FAIL- Couldn't obtain a TIME or validate it.
SDD_OK - TIME obtained and validated. | |Prototype: |`int _SCMD_ValidateTime( UCHAR *pszTime /* I: Time to verify */, ULNG *lTime ) /* O: Time in seconds */` | | | | @@ -1533,7 +1535,7 @@ The methods in the SDD Library are described below ordered by the driver to whic | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SCMD_PutReadData**| |Description: |Function to read an open stream and transmit the data contents to the caller via the callback mechanism. | - |Returns: |SDD_FAIL- Couldnt obtain PATH.
SDD_OK - PATH obtained. | + |Returns: |SDD_FAIL- Couldn't obtain PATH.
SDD_OK - PATH obtained. | |Prototype: |`int _SCMD_PutReadData( FILE *fpFile /* I: Stream to read from */, int (*fSendDataCB)(UCHAR *, UINT) /* I: CB to send data to */, UCHAR *szErrMsg ) /* O: Error text */` | | | | @@ -1578,13 +1580,13 @@ The methods in the SDD Library are described below ordered by the driver to whic |Returns: |No returns. | |Prototype: |`void scmd_ProcessOOB( UCHAR nCommand ) /* I: OOB Command */` | -### Sybase driver sdd_sybc +### Sybase driver sdd_sybc | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_SYBC_GetArg**| |Description: |Function to scan an input buffer and extract a required argument from it. | - |Returns: |SDD_FAIL- Couldnt obtain argument.
SDD_OK - Argument obtained and validated. | + |Returns: |SDD_FAIL- Couldn't obtain argument.
SDD_OK - Argument obtained and validated. | |Prototype: |`int _SYBC_GetArg( UCHAR *szArgType /* I: Type of Arg to scan for */, UCHAR *snzDataBuf /* I: Input buffer */, int nDataLen /* I: Len of data */, UCHAR **pszArg ) /* O: Pointer to Arg */` | | | | @@ -1645,7 +1647,7 @@ The methods in the SDD Library are described below ordered by the driver to whic
-# VDW Library +## VDW Library The Virtual Data Warehouse Library was a set of API's to build a Virtual Data Warehouse. Typically these methods are used to build a set of cross platform (Linux, SunOS, Solaris, Windows) daemons each sited on a server with a data source. The daemon would have a set of SDD drivers built in and would open the required data sources and communicate with an application or the MDC layer and serve accordingly. ie. A SQL Server on Network A, a Sybase Server on Network B, an FTP source on Network C, a VDW daemon would be placed on a server in all the 3 networks and open connections with the data source. Via routing, an MDC application sat on Network D would be able to query all the sources as needed. @@ -1718,27 +1720,27 @@ The methods in the VDW Library are as follows. If a method begins with '_' then
-# MDC Library +## MDC Library The Meta Data Communications API was part of my Virtual Data Warehouse design which sought to encapsulate disparate systems and data sources and through the MDC API's provide a central uniform way of querying them, ie. Sybase, SQL Server, FTP CSV, Flat File etc. The application would make a normalized request, irrespective of data source, to the MDC layer and the MDC would take care of targetting the correct source and any needed transalations. At the moment I can see no use for it in the ZPU Evo but it may be useful if your trying to join disparate data sources using the VDW daemons. The methods in the MDC Library are described below ordered by the functionality to which they belong. If a method begins with '_' then it is internal and normally not called directly, albeit being C there is no Private definition to methods or their data so you can call them if it helps. -### MDC Server API +### MDC Server API | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_MDC_SendACK** | |Description: |Function to send an acknowledge to the client in response to a data block received correctly or a request processed successfully. | - |Returns: |MDC_FAIL- Couldnt transmit an ACK message to the client.
MDC_OK - ACK sent successfully. | + |Returns: |MDC_FAIL- Couldn't transmit an ACK message to the client.
MDC_OK - ACK sent successfully. | |Prototype: |`int _MDC_SendACK( void )` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_MDC_SendNAK** | - |Description: |Function to send a negative acknowledge to the client in to a data block which arrived incorrectly or a request which couldnt be processed successfully. | - |Returns: |MDC_FAIL- Couldnt transmit a NAK message to the client.
MDC_OK - NAK sent successfully. | + |Description: |Function to send a negative acknowledge to the client in to a data block which arrived incorrectly or a request which couldn't be processed successfully. | + |Returns: |MDC_FAIL- Couldn't transmit a NAK message to the client.
MDC_OK - NAK sent successfully. | |Prototype: |`int _MDC_SendNAK( UCHAR szErrMsg /* I: Error msg to send with NAK */ )` | | | | @@ -1776,7 +1778,7 @@ The methods in the MDC Library are described below ordered by the functionality |Returns: |No Return Values. | |Prototype: |`int MDC_TimerCB( ULNG lTimePeriod /* I: CB Time in Millseconds */, UINT nEnable /* I: Enable(TRUE)/Dis(FALSE) CB */, UINT nAstable /* I: Astable(TRUE) or Mono CB */, void (fTimerCB)(void) /* I: Function to call back */ )` | -### MDC Client API +### MDC Client API | | | | ---------- | ----------------------------------------------------------------------------- | @@ -1915,7 +1917,7 @@ The methods in the MDC Library are described below ordered by the functionality | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**MDC_SetTimeout** | |Description: |Function to program one of the system timeout values from the default to a user setting. | - |Returns: | MDC_OK - Setting changed.
MDC_FAIL - Setting couldnt be changed, see error message. | + |Returns: | MDC_OK - Setting changed.
MDC_FAIL - Setting couldn't be changed, see error message. | |Prototype: |`int MDC_SetTimeout( UCHAR *pszWhichTimeout /* I: Timeout to set */, UINT nTimeoutValue /* I: New value */, UCHAR *pszErrMsg /* O: Error message */ )` | | | | @@ -1946,30 +1948,30 @@ The methods in the MDC Library are described below ordered by the functionality |Returns: | MDC_OK, MDC_FAIL, MDC_NODAEMON, MDC_NOSERVICE, MDC_BADPARMS | |Prototype: |`int MDC_ChangeService( UINT nChanId /* I: Chan ID of srvc */, SERVICEDETAILS *serviceDet /* I: Service details */ )` | -### MDC Common API +### MDC Common API | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_MDC_Init** | |Description: |Function to perform MDC initialisation. The library performs checking to ensure that initialisation only occurs once prior to an _MDC_Terminate. | - |Returns: |MDC_FAIL- Couldnt initialise library.
MDC_OK - Library initialised. | + |Returns: |MDC_FAIL- Couldn't initialise library.
MDC_OK - Library initialised. | |Prototype: |`int _MDC_Init( void )` | | | | | ---------- | ----------------------------------------------------------------------------- | |**Function**: |**_MDC_Terminate** | |Description: |Function to shutdown the MDC library. After a successful shutdown, _MDC_Init may be called to re-initialise the library. If MDC_Terminate fails, program exit is advised. | - |Returns: |MDC_FAIL- Couldnt perform a clean shutdown.
MDC_OK - Library successfully shutdown. | + |Returns: |MDC_FAIL- Couldn't perform a clean shutdown.
MDC_OK - Library successfully shutdown. | |Prototype: |`int _MDC_Terminate( void )` |
-## Licenses +## Licenses These software libraries are licensed under the GNU Public Licence v3. -### The Gnu Public License v3 +### The Gnu Public License v3 The source and binary files in this project marked as GPL v3 are free software: you can redistribute it and-or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.