IPC::MM man page on OpenServer

Man page or keyword search:  
man Server   5388 pages
apropos Keyword Search (all sections)
Output format
OpenServer logo
[printable version]

MM(3)		      User Contributed Perl Documentation		 MM(3)

NAME
       IPC::MM - Perl interface to Ralf Engelschall's mm library

SYNOPSIS
	 use IPC::MM;

	 $MMSIZE = 65536;
	 $MMFILE = 'mm_file';

	 $mm = mm_create($MMSIZE, $MM_FILE);

	 $scalar = mm_make_scalar($mm);
	 tie $tied_scalar, 'IPC::MM::Scalar', $scalar;
	 $tied_scalar = 'hello';

	 $btree = mm_make_btree_table($mm);
	 tie %tied_hash, 'IPC::MM::BTree', $btree;
	 $tied_hash{key} = 'val';

	 $hash = mm_make_hash($mm);
	 tie %tied_hash, 'IPC::MM::Hash', $hash;
	 $tied_hash{key} = 'val';

	 $num = mm_maxsize();

	 $num = mm_available($mm);

	 $errstr = mm_error();

	 mm_display_info($mm);

	 mm_destroy($mm);

DESCRIPTION
       IPC::MM provides an interface to Ralf Engelschall's mm library, allow-
       ing memory to be shared between multiple processes in a relatively con-
       venient way.

       IPC::MM provides methods to create and destoy shared memory segments
       and to access data structures within those shared memory segments, as
       well as miscellaneous methods. Additionally, it provides a tied inter-
       face for scalars and hashes.

METHODS
       $mm = mm_create($size, $file)
	   This method creates a shared memory segment. It corresponds to the
	   function in mm of the same name.

	   $size is the size of the shared memory segment, in bytes. A size of
	   0 means to allocate the maximum allowed size which is platform
	   dependent.

	   $file is a filesystem path to a file which may be used as a lock
	   file for synchronizing access.

       $rc = mm_permission($mm, $mode, $owner, $group)
	   This method sets the filesystem mode, owner, and group for the
	   shared memory segment mm. It will only do anything when the under-
	   lying shared memory segment is based on files. It corresponds to
	   the function in mm of the same name.

	   $mm is the shared memory segment returned by mm_create.

	   $mode, $owner, and $group are passed directly to chown and chmod.

       mm_destroy($mm)
	   This method destroys a shared memory segment created by mm_create.

	   $mm is the shared memory segment returned by mm_create.

       $scalar = mm_make_scalar($mm)
       mm_free_scalar($scalar)
       $val = mm_scalar_get($scalar)
       $rc = mm_scalar_set($scalar, $val)
	   This family of methods provides a data structure for use by scalar
	   variables.

	   mm_make_scalar allocates the data structure used by the scalar.

	   mm_free_scalar frees a data structure created by mm_make_scalar.

	   mm_scalar_get returns the contents of the scalar, $scalar.

	   mm_scalar_set sets the contents of the scalar, $scalar, to $val.

	   $val is simply a Perl scalar value, meaning that it can be a
	   string, a number, a reference, et al.

	   It is possible for mm_scalar_set to fail if there is not enough
	   shared memory.

	   It is possible to make the scalar a tied variable, like so:

	     tie $tied_scalar, 'IPC::MM::Scalar', $scalar;

       $btree = mm_make_btree_table($mm)
       mm_clear_btree_table($btree)
       mm_free_btree_table($btree)
       $val = mm_btree_table_get($btree, $key)
       $rc = mm_btree_table_insert($btree, $key, $val)
       $oldval = mm_btree_table_delete($btree, $key)
       $rc = mm_btree_table_exists($btree, $key)
       $key = mm_btree_table_first_key($btree)
       $key = mm_btree_table_next_key($btree, $key)
	   This family of methods provides a btree data structure for use by
	   hashes.

	   mm_make_btree_table allocates the data structure.

	   mm_clear_btree_table clears the data structure, making it empty.

	   mm_free_btree_table frees the data structure.

	   mm_btree_table_get returns the value associated with $key.

	   mm_btree_table_insert inserts a new entry into the btree, with $key
	   equal to $val.

	   mm_btree_table_delete deletes the entry in the btree identified by
	   $key.

	   mm_btree_table_exists tests for the existence of an entry in the
	   btree identified by $key.

	   mm_btree_table_first_key returns the first key in the btree.

	   mm_btree_table_next_key returns the next key after $key in the
	   btree.

	   It is possible to tie a btree to a hash, like so:

	     tie %tied_hash, 'IPC::MM::BTree', $btree;

	   One interesting characteristic of the btree is that it is pre-
	   sorted, so keys %tied_hash will return a sorted list of items.

       $hash = mm_make_hash($mm)
       mm_hash_clear($hash)
       mm_free_hash($hash)
       $val = mm_hash_get($hash, $key)
       $rc = mm_hash_insert($hash, $key, $val)
       $oldval = mm_hash_delete($hash, $key)
       $rc = mm_hash_exists($hash, $key)
       $key = mm_hash_first_key($hash)
       $key = mm_hash_next_key($hash, $key)
	   This family of methods implements a shared memory hash list. These
	   hash lists are not presorted like btrees, but they can be faster
	   than btrees (especially unbalanced btrees).

	   mm_make_hash allocates the data structure.

	   mm_clear_hash clears the data structure, making it empty.

	   mm_free_hash frees the data structure.

	   mm_hash_get returns the value associated with $key.

	   mm_hash_insert inserts a new entry into the hash, with $key equal
	   to $val.

	   mm_hash_delete deletes the entry in the hash identified by $key.

	   mm_hash_exists tests for the existence of an entry in the hash
	   identified by $key.

	   mm_hash_first_key returns the first key in the hash.

	   mm_hash_next_key returns the next key after $key in the hash.

	   It is possible to tie a shared-memory hash to a perl hash, like so:

	     tie %tied_hash, 'IPC::MM::Hash', $hash;

       $rc = mm_lock($mm, $mode)
	   This method locks the shared memory pool $mm for the current
	   process in order to perform either shared/read-only (mode
	   MM_LOCK_RD) or exclusive/read-write (mode MM_LOCK_RW) operations.

       $rc = mm_unlock($mm)
	   This method unlocks the shared memory pool $mm.

       $num = mm_maxsize
	   This method returns the maximum allowable size for a shared memory
	   segment.  It corresponds to the function of the same name in the mm
	   library.

       $num = mm_available($mm)
	   This method returns the number of free bytes left in a shared mem-
	   ory segment.	 It corresponds to the function of the same name in
	   the mm library.

	   $mm is a shared memory segment created by mm_create.

       $errstr = mm_error
	   This method returns an error string, if any. It corresponds to the
	   function of the same name in mm.

       mm_display_info($mm)
	   This method displays some miscellaneous information about a shared
	   memory segment. It corresponds to the function of the same name in
	   mm.

BUGS
       No effort is made to balance the btree.

AUTHOR
       Copyright (c) 1999, Arthur Choung <arthur@etoys.com>.  All rights
       reserved.

       This module is free software; you may redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       mm, IPC::Shareable, perl.

       perl(1).

perl v5.8.8			  2000-08-11				 MM(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OpenServer

List of man pages available for OpenServer

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net