The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

TuxedoBuffer - Perl class to represent a Tuxedo Buffer.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  $tuxbuf = TuxedoBuffer->new( type, subtype, size );
  eg. $tuxbuf = TuxedoBuffer->new( "FML32", "", 1024 );

  ####################
  # instance methods #
  ####################

  $tuxbuf->SetBuffer( $buffer )
   This makes the TuxedoBuffer encapsulate the 'real' tuxedo buffer
   specified by $buffer.  The methods of the TuxedoBuffer $tuxbuf 
   will then be used on the internal $buffer held by $tuxbuf.  This
   method should not be needed by most Tuxedo client applications.  Its
   main purpose is for use in a tuxedo service where the TPSVCINFO->data
   element is to be encapsulated by a perl TuxedoBuffer object.

  $tuxbuf->size
   Returns the size in bytes of the TuxedoBuffer.

  $tuxbuf->type
   Returns the type of the TuxedoBuffer.

  $tuxbuf->subtype
   Returns the subtype of the TuxedoBuffer.

  $tuxbuf->print
   Prints out the type, subtype and size of the buffer using
   the perl 'print' function ( ie. prints to STDOUT ).

  $tuxbuf->resize( $newsize )
   Resizes the TuxedoBuffer to $newsize.

  $tuxbuf->free
   Frees the actual tuxedo buffer held internally by TuxedoBuffer.  This
   shouldn't have to be explicitly called by a perl program because the
   TuxedoBuffer destructor will call this method.

DESCRIPTION

   The TuxedoBuffer class should be thought of as an interface for all
   the other Tuxedo buffer classes, such as FML32Buffer or TPINITBuffer.
   Any new Tuxedo buffer types implemented in this perl module should
   have a new class created for them, and have that class inherit from
   the TuxedoBuffer class.  The TuxedoBuffer class can still be used 
   directly within a perl program.

NAME

FML32Buffer - Perl class representation of a Tuxedo FML32 Buffer. - Inherits from TuxedoBuffer.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  $fml32buf = FML32Buffer->new( size );
  eg. $fml32buf = FML32Buffer->new( 1024 );

  ####################
  # instance methods #
  ####################
  $fml32buf->AddField( $fname, $fvalue );
  eg. $fml32buf->AddField( "TA_CLASS", "T_CLIENT" );
   This adds the field to the FML32Buffer.  This will do optimistic
   buffer reallocation if required.  That is this method will attempt
   to add the field to the buffer.  If the field failed to
   be added to the buffer because of an FNOSPACE error, then the
   buffer will be automatically resized to allow the field to be added.
   Returns -1 on error.

  $fml32buf->SetField( $fname, $focc, $fvalue );
  eg. $fml32buf->SetField( "TA_CLASS", 0, "T_CLIENT" );
   This method is identical to $fml32buf->AddField except that you can
   specify the occurrence at which the field is added to the buffer.

  $fml32buf->GetField( $fname, $focc );
  eg. my $value = $fml32buf->GetField( "TA_CLASS", 0 );
   This method will return you the value of the field at the specified
   occurrence.  At the moment, if the field is not found, it will
   return you an empty string ( ie. "" ).  It does this because I put this 
   module together in about 1 day and haven't implemented proper error handling.

  $fml32buf->print
   This prints out the contents of the FML32 buffer.

NAME

FMLBuffer - Perl class representation of a Tuxedo FML Buffer. - Inherits from TuxedoBuffer.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  $fmlbuf = FMLBuffer->new( size );
  eg. $fmlbuf = FMLBuffer->new( 1024 );

  ####################
  # instance methods #
  ####################
  $fmlbuf->AddField( $fname, $fvalue );
  eg. $fmlbuf->AddField( "REPNAME", "SVC/*" );
   This adds the field to the FMLBuffer.  This will do optimistic
   buffer reallocation if required.  That is this method will attempt
   to add the field to the buffer.  If the field failed to
   be added to the buffer because of an FNOSPACE error, then the
   buffer will be automatically resized to allow the field to be added.
   Returns -1 on error.

  $fmlbuf->SetField( $fname, $focc, $fvalue );
  eg. $fmlbuf->SetField( "REPNAME", 0, "SVC/*" );
   This method is identical to $fmlbuf->AddField except that you can
   specify the occurrence at which the field is added to the buffer.

  $fmlbuf->GetField( $fname, $focc );
  eg. my $value = $fmlbuf->GetField( "REPVALUE", 0 );
   This method will return you the value of the field at the specified
   occurrence.  At the moment, if the field is not found, it will
   return you an empty string ( ie. "" ).  It does this because I put this 
   module together in about 1 day and haven't implemented proper 
   error handling.

  $fmlbuf->print
   This prints out the contents of the FML buffer.

NAME

TPINITBuffer - Perl class representation of a Tuxedo TPINIT Buffer. - Inherits from TuxedoBuffer.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  $tpinitbuf = TPINITBuffer->new( size );
  eg. $tpinitbuf = TPINITBuffer->new( 1024 );

  ####################
  # instance methods #
  ####################
  $tpinitbuf->usrname
  get: $usrname = $tpinitbuf->usrname;
  set: $tpinit->usrname( "FRED" );

  $tpinitbuf->cltname
  get: $cltname = $tpinitbuf->cltname;
  set: $tpinit->cltname( "PERL" );

  $tpinitbuf->passwd
  get: $passwd = $tpinitbuf->passwd;
  set: $tpinit->passwd( "1234678" );

  $tpinitbuf->data
  get: $data = $tpinitbuf->data;
  set: $tpinit->data( "qwertyui" );
   Note that although tuxedo allows binary data to be inserted into the
   data element of a tpinit buffer, the current implementation of this
   method only allows a string to be inserted into the data element.  This
   will be modified in a future release.

  $tpinitbuf->flags
  get: $flags = $tpinitbuf->flags;
  set: $tpinit->flags( "0" );
    flags is usually a long value but I got lazy.  This method will convert the
    specified string into a long on insertion and visa versa on retrieval.  This
    will also be updated in a later version.

  $tpinitbuf->print
    This will print out the value of the elements in the TPINIT buffer.

NAME

TuxedoMessenger - Perl class representation of a Tuxedo Messenger. A messenger is an abstraction of the things that a tuxedo client and server have in common. They can both call services, start and end transactions, queue and dequeue requests. This class should be considered abstract and never used directly. Instead the TuxedoClient or TuxedoServer classes that inherit from this class should be used.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  TuxedoMessenger->call( servicename, inbuf, outbuf, flags );
  eg.
    my $tuxclient = TuxedoClient->new;
    my $fml32buf = FML32Buffer->new(1024);
    $fml32buf->AddField( "TA_CLASS", "T_CLIENT" );
    $fml32buf->AddField( "TA_OPERATION", "GET" );
    $tuxclient->call( ".TMIB",$fml32buf,$fml32buf, 0 );
    $fml32buf->print

   In the above example, the call method comes from a TuxedoClient object.
   This is deliberate.  DO NOT USE THE TuxedoMessenger CLASS DIRECTLY.  It
   should be considered as an abstract class ( C++ terminology ), and only
   those objects that inherit from this class can call the methods inside
   of it.

NAME

TuxedoClient - Perl class representation of a Tuxedo Client. - Inherits from TuxedoMessenger.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  TuxedoClient->new();
  eg. $tuxclient = TuxedoClient->new();
  Creates a new TuxedoClient instance.

  ####################
  # instance methods #
  ####################
  $tuxclient->attributes
   This returns the TPINITBuffer object held internally by the TuxedoClient.
   This should be used to set client attributes before logging onto a
   tuxedo system.  See TPINITBuffer for a description of the methods that can
   be used on the return value from this method.
  eg.
    $tuxclient->attributes->usrname("FRED");
    $tuxclient->attributes->cltname("PERL");
    $tuxclient->attributes->passwd("12345678");
    $tuxclient->logon;

  $tuxclient->logon
    This logs the client onto the tuxedo system.  For the native version ( which
    is the only version at the moment ), this will use the TUXCONFIG environment
    variable to determine which tuxedo system to connect to.

  $tuxclient->logoff
    Disconnects the client from the tuxedo system.

NAME

TuxedoServer - Perl class representation of a Tuxedo Server. - Inherits from TuxedoMessenger.

SYNOPSIS

  use TUXEDO;

  #################
  # class methods #
  #################
  TuxedoServer->return( rval, rcode, rbuf, flags );
  eg. TuxedoServer->return( TUXEDO::TPSUCCESS, 0, $fml32buf, 0 );
   This Invokes the Tuxedo tpreturn function to return from a service.
   rbuf has to be a TuxedoBuffer ( or inherited from it ).  This
   method tells the rbuf destructor not to free the buffer held
   internally by the object, because it is automatically freed by
   the tpreturn function.  This method only makes sense in a perl
   interpreted Tuxedo service.

COPYRIGHT

The TUXEDO module is Copyright (c) 1999 Anthony Fryer. Australia. All rights reserved.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.

Exported constants.

The constanst below can be access by prefixing with TUXEDO:: eg. TUXEDO::TPSUCCESS

  ATMI_H
  BADFLDID
  FADD
  FALIGNERR
  FBADACM
  FBADFLD
  FBADNAME
  FBADTBL
  FBADVIEW
  FCONCAT
  FDEL
  FEINVAL
  FEUNIX
  FFTOPEN
  FFTSYNTAX
  FIRSTFLDID
  FJOIN
  FLD_CARRAY
  FLD_CHAR
  FLD_DOUBLE
  FLD_FLOAT
  FLD_LONG
  FLD_SHORT
  FLD_STRING
  FMALLOC
  FMAXNULLSIZE
  FMAXVAL
  FMINVAL
  FML32_H
  FMLMOD
  FMLTYPE32
  FNOCNAME
  FNOSPACE
  FNOTFLD
  FNOTPRES
  FOJOIN
  FSTDXINT
  FSYNTAX
  FTYPERR
  FUPDATE
  FVFOPEN
  FVFSYNTAX
  FVIEWCACHESIZE
  FVIEWNAMESIZE
  F_BOTH
  F_COUNT
  F_FTOS
  F_LENGTH
  F_NONE
  F_OFF
  F_OFFSET
  F_PROP
  F_SIZE
  F_STOF
  Ferror32
  MAXFBLEN32
  MAXTIDENT
  QMEABORTED
  QMEBADMSGID
  QMEBADQUEUE
  QMEBADRMID
  QMEINUSE
  QMEINVAL
  QMENOMSG
  QMENOSPACE
  QMENOTA
  QMENOTOPEN
  QMEOS
  QMEPROTO
  QMESYSTEM
  QMETRAN
  RESERVED_BIT1
  TMCORRIDLEN
  TMMSGIDLEN
  TMQNAMELEN
  TMSRVRFLAG_COBOL
  TPABSOLUTE
  TPACK
  TPAPPAUTH
  TPCONV
  TPCONVCLTID
  TPCONVMAXSTR
  TPCONVTRANID
  TPCONVXID
  TPEABORT
  TPEBADDESC
  TPEBLOCK
  TPEDIAGNOSTIC
  TPED_MAXVAL
  TPED_MINVAL
  TPED_SVCTIMEOUT
  TPED_TERM
  TPEEVENT
  TPEHAZARD
  TPEHEURISTIC
  TPEINVAL
  TPEITYPE
  TPELIMIT
  TPEMATCH
  TPEMIB
  TPENOENT
  TPEOS
  TPEOTYPE
  TPEPERM
  TPEPROTO
  TPERELEASE
  TPERMERR
  TPESVCERR
  TPESVCFAIL
  TPESYSTEM
  TPETIME
  TPETRAN
  TPEVPERSIST
  TPEVQUEUE
  TPEVSERVICE
  TPEVTRAN
  TPEV_DISCONIMM
  TPEV_SENDONLY
  TPEV_SVCERR
  TPEV_SVCFAIL
  TPEV_SVCSUCC
  TPEXIT
  TPFAIL
  TPGETANY
  TPGOTSIG
  TPMAXVAL
  TPMINVAL
  TPMULTICONTEXTS
  TPNOAUTH
  TPNOBLOCK
  TPNOCHANGE
  TPNOFLAGS
  TPNOREPLY
  TPNOTIME
  TPNOTRAN
  TPQBEFOREMSGID
  TPQCORRID
  TPQFAILUREQ
  TPQGETBYCORRID
  TPQGETBYMSGID
  TPQMSGID
  TPQPEEK
  TPQPRIORITY
  TPQREPLYQ
  TPQTIME_ABS
  TPQTIME_REL
  TPQTOP
  TPQWAIT
  TPRECVONLY
  TPSA_FASTPATH
  TPSA_PROTECTED
  TPSENDONLY
  TPSIGRSTRT
  TPSUCCESS
  TPSYSAUTH
  TPTOSTRING
  TPTRAN
  TPUNSOLERR
  TPU_DIP
  TPU_IGN
  TPU_MASK
  TPU_SIG
  TP_CMT_COMPLETE
  TP_CMT_LOGGED
  VIEWTYPE32
  XATMI_SERVICE_NAME_LENGTH
  X_COMMON
  X_C_TYPE
  X_OCTET
  _FLDID32
  _QADDON
  _TMDLLENTRY
  _TM_FAR
  tperrno
  tpurcode

AUTHOR

Anthony Fryer, apfryer@hotmail.com

SEE ALSO

perl(1).