From 79d65188b1c1578a36403c0e5756c81dcc93d816 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Mon, 14 Apr 2008 21:54:00 -0400 Subject: Remove svn files --- perl/.svn/text-base/NASTD.pm.svn-base | 313 ---------------------------------- 1 file changed, 313 deletions(-) delete mode 100644 perl/.svn/text-base/NASTD.pm.svn-base (limited to 'perl/.svn/text-base/NASTD.pm.svn-base') diff --git a/perl/.svn/text-base/NASTD.pm.svn-base b/perl/.svn/text-base/NASTD.pm.svn-base deleted file mode 100644 index 70be2ff..0000000 --- a/perl/.svn/text-base/NASTD.pm.svn-base +++ /dev/null @@ -1,313 +0,0 @@ -# $Id: NASTD.pm,v 1.7 2001/10/29 11:18:20 shmit Exp $ - -package NASTD; - -use strict; -use Carp; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); - -require Exporter; -require DynaLoader; -require AutoLoader; - -@ISA = qw(Exporter DynaLoader); -# Items to export into callers namespace by default. Note: do not export -# names by default without a very good reason. Use EXPORT_OK instead. -# Do not simply export all your public functions/methods/constants. -@EXPORT = qw( - NAST_OK - NAST_SERVER_GONE - NAST_NOMEM - NAST_UNKNOWN_RESPONSE - NAST_TIMEDOUT - NAST_UNKNOWN_OPT - NAST_SERVER_ERR -); -$VERSION = '0.01'; - -sub AUTOLOAD { - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. If a constant is not found then control is passed - # to the AUTOLOAD in AutoLoader. - - my $constname; - ($constname = $AUTOLOAD) =~ s/.*:://; - croak "& not defined" if $constname eq 'constant'; - my $val = constant($constname, @_ ? $_[0] : 0); - if ($! != 0) { - if ($! =~ /Invalid/) { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else { - croak "Your vendor has not defined NASTD macro $constname"; - } - } - no strict 'refs'; - *$AUTOLOAD = sub () { $val }; - goto &$AUTOLOAD; -} - -bootstrap NASTD $VERSION; - -# Preloaded methods go here. - -# Autoload methods go after =cut, and are processed by the autosplit program. - -1; -__END__ -# Below is the stub of documentation for your module. You better edit it! - -=head1 NAME - -NASTD - Low level Perl extension for NASTD access methods - -=head1 SYNOPSIS - - use NASTD; - - $nasthole = &NASTD::nast_sphincter_new(); - &NASTD::nast_sphincter_close($nasthole); - - $rv = &NASTD::nast_options_get($nasthole); - $rv = &NASTD::nast_options_set($nasthole, @options); - - @values = &NASTD::nast_get_result($nasthole); - - $rv = &NASTD::nast_add($sphincter, $key); - $rv = &NASTD::nast_del($sphincter, $key); - $rv = &NASTD::nast_get($sphincter, $key); - $rv = &NASTD::nast_upd($sphincter, $key, $values); - - $rv = &NASTD::nast_stats($sphincter); - - $errcode = &NASTD::nast_geterr($sphincter); - $errstring = &NASTD::nast_errmsg($sphincter); - -=head1 DESCRIPTION - -The Perl NASTD module allows access to the NASTD server via a Perl -interface. It allows you to do anything you could do through C, such as -get records, update records, or delete records. It also allows setting -of various NASTD connection options, as you would through C. - -=head2 Opening a sphincter - -To do any work with NASTD at all, you must first open a sphincter, -through which you talk to your NASNASTole. This is fairly -straightforward: just call C and save the -returned handle. When you're done with the connection to your NAST, call -C to terminate it and free all memory of it. - -You may specify an optional argument, which points to the unix domain -socket name that you wish to use. By default, this is set to -"/tmp/nastd.sock". - -When an error occurs in C, you cannot call -C since there's no sphincter with which to call it. -Instead, an error message will be printed on B for you to -diagnose, and the return value will be undefined. - -=head2 Checking errors - -There are many places during an NASTD session that errors can be -generated. To check for the presense of an error, call C -with the sphincter returned from C. This will -return an error code, which is defined below under B. - -If you would rather a printable string be returned, you can call -C with an open sphincter, and a printable string will be -returned. - -=head2 Performing a query - -Once you have an open sphincter, obtained via C, -you can start to query it with C, C, -C, and C. - -The B<$key> is just that, a case-sensitive key for the database you're -querying. It's function depends on which query function you're using: - - Function Key Meaning - -------- ----------- - nast_add() Add this key to NASTD, with default values. - nast_del() Delete this key from NASTD. - nast_get() Return values associated with this key. - nast_upd() Update this key in NASTD with my values. - -All four of these functions return a status. If everything went okay, -then 0 is returned, otherwise -1 is returned, and you should check for -an error with C. - -In the case of C, C, and C all you -need to do is call the query function and check for errors. If there -are no errors, then everything went fine. - -However, in the case of C, you probably want the values -nastociated with the query you made. To get these values, you have to -call C, which returns an array of values. - -=head2 Updating the database via C - -C works like the other query functions, except that in -addition to the key, you also need to pass an array of values. The -array needs to have the same number of elements as the NASTD database -has, and the elements should be in the same order as that specified in -the special key, "B<_VALUES_>" (see B, -below). - -If the key you are trying to update does not exist, the server creates -it and gives it the values you specified in your value array. For this -reason C is preferable to C. In fact, -C may not exist very much longer. - -=head2 Key concepts and values - -It is recommended that before you try to do any real work with a -particular NASTD suppository, you first investigate the contents of the -special keys B<_KEY_> and B<_VALUES_>. You can do a regular query on -them using C followed by -C to investigate their columns. - - Special Key Value Meaning - ----------- ------------- - _KEY_ The type of key the database is keyed on, - e.g., "username" would mean this database - is a username -> _VALUES_ mapping. - _VALUES_ The data being stored for every key in - the database. The order here is important, - as it's the same order that you'll get - when calling nast_get_result(). - _DELIM_ Only used internally to the NASTD server. - -As noted above, the B<_VALUES_> key shows what data you can find in the -NASTD database, as well as the order it is returned in. This is why you -should investigate this key before trying to do any real work with -NASTD. You have to know what columns mean what values for any real -decision making to be done. - -=head2 Server options - -In order to fine-tune server performance and behaviour, it is possible -to set various server-side options through the C and -C APIs. - -The interface is a bit clumsy at the low level - you pass in an array -to C which has the options in a specific order, and -you get an array back from C which contains the -options in a specific order. - -It is recommended that before you call C that you -first obtain the default options from the server through -C and manipulate the values you care about. Then -pass that array back to C. - -The options you can set are as follows (remember to keep this order!): - - Index C Option Name Meaning (type) - ----- ------------- -------------- - 0 use_qcache Whether or not to use the - in-memory query cache. (BOOL) - 1 use_localdb Whether or not to use the on-disk - database. (BOOL) - 2 fallthrough_async Whether or not to use an - asynchronous API for fallthrough - queries. (BOOL) - 3 always_fallthrough Whether or not to always check - the fallthrough cache over the - local ones. Setting this to 1 - is the same as setting use_qcache - and use_localdb to 0. (BOOL) - 4 fail_once Whether or not to check a query - in the local and in-memory storage - once, and fail if the result isn't - found the first time, then defer - the next query to the fallthrough - queue. (BOOL) - 5 no_fallthrough Disable fallthrough queriers to - MySQL server. (BOOL) - -=head1 STATISTICS - -The C function is used to gather server statistics. First -you call C, which grabs the statistics and stores them as -a result. Then you call C as you would for a query. - -The statistics come back in a human readable array, suitable for printing. - -=head1 CONSTANTS - -The only constants returned are via C: - - Error Code Meaning - ---------- ------- - NAST_OK No errors occured. - NAST_SERVER_GONE The connection to the server no longer - exists. - NAST_NOMEM The client has run out of memory performing - an operation. - NAST_UNKNOWN_RESPONSE The server sent us a response we can't - understand. - NAST_TIMEDOUT The soft timeout on a query has elapsed. - This normally means the server is a bit - bogged down, and the query should be - retried. - NAST_UNKNOWN_OPT The server sent us an unknown option or - we tried to set an unknown option. - NAST_SERVER_ERR Generic server side error. Check - nast_errmsg() for more details. - -=head1 SAMPLE PROGRAM - - #!/usr/bin/env perl - - use NASTD; - - $nasthole = &NASTD::nast_sphincter_new(); - if (!defined($nasthole)) { - # Error message already printed. - exit(1); - } - - # Don't fallthrough to MySQL for this query. - # First we get the default options from the server, then tweak - # the ones we care about, and update the server with our options. - @options = &NASTD::nast_options_get($nasthole); - if (!defined(@options)) { - print STDERR "Couldn't get options: " . - &NASTD::nast_errmsg($nasthole) . "\n"; - } - $options[5] = 1; - - if (&NASTD::nast_options_set($nasthole, @options) == -1) { - print STDERR "Couldn't set options: " . - &NASTD::nast_errmsg($nasthole) . "\n"; - } - - # Get some values. - if (&NASTD::nast_get($nasthole, "shmit") == -1) { - print STDERR "Couldn't perform get: " . - &NASTD::nast_errmsg($nasthole) . "\n"; - &NASTD::nast_close_sphincter($nasthole); - exit(1); - } - - @vals = &NASTD::nast_get_result($nasthole); - $nitems = $#vals + 1; - print "Number of columns: $nitems.\n"; - for ($i = 0; $i < $nitems; $i++) { - $val = shift(@vals); - print "Result[$i]: $val\n"; - } - - &NASTD::nast_sphincter_close($nasthole); - -=head1 BUGS - -fail_once behaviour is not working as of this writing. - -=head1 AUTHOR - -Brian Cully > - -=cut -- cgit v1.2.3