ISS PowerPoint Presentation
Download
Report
Transcript ISS PowerPoint Presentation
Using EXTERN
Dave Doulton
Information Systems
Services
Contents
What are EXTERN functions?
How do you use them?
How do you create them?
Examples of usage.
Information Systems
Services
What are EXTERN Functions?
EXTERN and EXTERNS are two functions held in
the extern.dll (Dynamically Linked Library).
These functions can do anything you wish provided
you can create the dll.
Your dll is placed in the SIR directory in place of the
supplied version.
Note they can both take string or numeric
parameters which can do different things but only
return a numeric from EXTERN and a string from
EXTERNS
Information Systems
Services
How do you use them?
EXTERN
num = EXTERN ( X )
Invokes a user-supplied external function from the EXTERN dll.
The function can take a numeric or string parameter and calls a
different user function for each case.
The extern.dll library supplied by SIR contains dummy functions
which return zero.
EXTERNS
str = EXTERNS ( X )
Invokes a user-supplied external function from the EXTERN dll.
The function can take a numeric or string parameter and calls a
different user function for each case.
The extern.dll library supplied by SIR contains dummy functions
which return blank (a zero length string).
Information Systems
Services
How do you create them?
To create the functions you can used the supplied
template which can be found in the api/examples
subdirectory of the directory where SIR is installed.
Information Systems
Services
How do you create them?
//
// Skeleton of user defined EXTERN function.
//
// Use this to build your own extern.dll to use the PQL EXTERN and EXTERNS functions.
// See the examples in the API directory.
//
#ifndef __StdCall
#ifdef _WIN32
#define __StdCall __stdcall
#else
#define __StdCall
#endif
#endif
//
// The sirdbms executable links to these functions as defined:
//
const char * __StdCall SIRExtern1 (char * buffer);
double __StdCall SIRExtern2 (char * buffer);
const char * __StdCall SIRExtern3 (double num);
double __StdCall SIRExtern4 (double num);
Information Systems
Services
How do you create them?
//
// PQL Function str=EXTERNS(string)
//
const char * __StdCall SIRExtern1 (char * buffer) {
return "";
}
//
// PQL Function num=EXTERN(string)
//
double __StdCall SIRExtern2 (char * buffer) {
return 0;
}
//
// PQL Function str=EXTERNS(num)
//
const char * __StdCall SIRExtern3 (double num) {
return "";
}
//
// PQL Function num=EXTERN(num)
//
double __StdCall SIRExtern4 (double num) {
return 0;
}
Information Systems
Services
Examples of usage
David Baxter has made a dll that reads web pages.
Note not all web pages can be read. It is a matter of
trial and error to check if the pages you want are
readable.
The web addresses are entered without the http:// in
the version I am using and that will be available on
the SUG website.
Information Systems
Services
Examples of usage
I have 5 example programs
1. Writing the contents of a web page to a file.
2. Reading Share prices from the msn money website.
3. Reading Weather information from the BBC weather
website.
4. Reading Train Live Running from the National rail
website.
5. Reading Formula 1 results from F1 web pages
Information Systems
Services
Examples of usage
The descriptions of the extern functionality in this dll
are as follows:
num=EXTERN(string)
It takes a url filename and returns a socket id. It’s
quick and dirty and just goes to port 80
str=EXTERNS(num)
Num is the socket id from before and it returns a
single character at a time from the http server.
num=EXTERN(num)
Num is the socket id from before and cleans up.
Information Systems
Services
Examples of usage
The example programs use a subprocedure to read
from the web server up to the next >.
This usually results in fairly small chunks of text to
analyse.
The lines are searched for predetermined text that
allows the extraction of the required data.
Information Systems
Services
Examples of usage
See the example programs.
Information Systems
Services
Any Questions?
Information Systems
Services