Cache-Cache
view release on metacpan or search on metacpan
lib/Cache/SharedMemoryBackend.pm view on Meta::CPAN
my ( $proto ) = @_;
my $class = ref( $proto ) || $proto;
return $class->SUPER::new( );
}
sub delete_key
{
my ( $self, $p_namespace, $p_key ) = @_;
my $store_ref = $self->_get_locked_store_ref( );
delete $store_ref->{ $p_namespace }{ $p_key };
$self->_set_locked_store_ref( $store_ref );
}
sub delete_namespace
{
my ( $self, $p_namespace ) = @_;
my $store_ref = $self->_get_locked_store_ref( );
delete $store_ref->{ $p_namespace };
$self->_set_locked_store_ref( $store_ref );
}
sub store
{
my ( $self, $p_namespace, $p_key, $p_data ) = @_;
my $store_ref = $self->_get_locked_store_ref( );
$store_ref->{ $p_namespace }{ $p_key } = $p_data;
$self->_set_locked_store_ref( $store_ref );
}
# create a IPC::ShareLite share under the ipc_identifier
sub _Instantiate_Share
{
my ( $p_ipc_identifier ) = Static_Params( @_ );
Assert_Defined( $p_ipc_identifier );
lib/Cache/SharedMemoryBackend.pm view on Meta::CPAN
Assert_Defined( $p_hash_ref );
my $share = _Instantiate_Share( $p_ipc_identifier );
$share->store( Freeze_Data( $p_hash_ref ) );
$share->unlock( LOCK_UN );
}
sub _get_locked_store_ref
{
return _Restore_Shared_Hash_Ref_With_Lock( $IPC_IDENTIFIER );
}
sub _set_locked_store_ref
{
my ( $self, $p_store_ref ) = @_;
_Store_Shared_Hash_Ref_And_Unlock( $IPC_IDENTIFIER, $p_store_ref );
}
sub _get_store_ref
{
return _Restore_Shared_Hash_Ref( $IPC_IDENTIFIER );
( run in 0.548 second using v1.01-cache-2.11-cpan-49f99fa48dc )