| KiokuDB documentation | Contained in the KiokuDB distribution. |
KiokuDB::Set::Loaded - Implementation of loaded sets
# created automatically when deferred sets are vivified
This is the implementation of a loaded set. A KiokuDB::Set::Deferred automatically upgrades into a loaded set when its set members are retrieved.
| KiokuDB documentation | Contained in the KiokuDB distribution. |
#!/usr/bin/perl package KiokuDB::Set::Loaded; use Moose; use Carp qw(croak); use namespace::clean -except => 'meta'; with qw(KiokuDB::Set::Storage); extends qw(KiokuDB::Set::Base); sub loaded { 1 } sub includes { shift->_objects->includes(@_) } sub remove { shift->_objects->remove(@_) } sub members { shift->_objects->members } sub insert { my ( $self, @objects ) = @_; croak "Can't insert non reference into a KiokuDB::Set" if grep { not ref } @objects; $self->_objects->insert(@objects) } sub _set_ids { my ( $self, $id_set ) = @_; # replace the object set with the ID set $self->_set_objects( $id_set ); # and go back to being deferred bless $self, "KiokuDB::Set::Deferred"; } __PACKAGE__->meta->make_immutable; __PACKAGE__ __END__