Hub::Knots::TiedObject

- NAME
- SYNOPSIS
- DESCRIPTION

- Intention
- Implementation
- See also:

- METHODS
- INTERNAL
- AUTHOR
- COPYRIGHT
- UPDATED

# NAME

Hub::Knots::TiedObject - Tied object

Part of the Hub Library

Top

# SYNOPSIS

In your class:

        package __Package_Name__;

        use Hub qw(:lib);

        sub new {

            my $self = shift;

            my $class = ref( $self ) || $self;

            my $obj = bless {}, $class;

            tie %$obj, 'Hub::Knots::TiedObject', '__Tie_Package__';

            return $obj;

        }#new

Top

# DESCRIPTION

Perl5 does not let one implement tie methods for a normal blessed package. To get around this, the above constructor ties the blessed reference to this package, providing '__Tie_Package__' as the package which should implement the tie methods.

## Intention

To transparently provide `tie' methods inline with an existing class. For example, one may have a User class which supports several methods, such as `print', and we wish to update the database on the fly...

        my $user = new User( $conn, 'mary', 'alzxjVT8kR.aU' );
        $user->{'lname'} = "Lopez";
        $user->print();

## Implementation

TiedObject simply provides two hashes for the object: `public' and `private'. When data members are accessed, the 'public' hash is acted upon. If the index begins with an asterisk (*) then the private hash is used. The only value currently in the private hash is the reference to the tied object. In the above class '__Package_Name__':

        $self->{'*tied'};

Points to the reference returned by tie-ing '__Tie_Package__' to the public hash.

## See also:

the Hub::Data::Nest manpage

Top

# METHODS

Top

# INTERNAL

CLEAR | FETCH | SCALAR | UNTIE
DELETE | FIRSTKEY | STORE | _key
EXISTS | NEXTKEY | TIEHASH

CLEAR
  Tie interface method

DELETE
  Tie interface method

EXISTS
  Tie interface method

FETCH
  Tie interface method

FIRSTKEY
  Tie interface method

NEXTKEY
  Tie interface method

SCALAR
  Tie interface method

STORE
  Tie interface method

TIEHASH
  Tie interface method

       Usage: TIEHASH 'Hub::Knots::TiedObject', $PACKAGE

UNTIE
  Tie interface method

_key
  Determine which key (public or private) to use

Top

# AUTHOR

Ryan Gies

Top

# COPYRIGHT

Copyright (c) 2006 Livesite Networks, LLC. All rights reserved.

Copyright (c) 2000-2005 Ryan Gies. All rights reserved.

Top

# UPDATED

This file created by on at

Top