Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

RedHat 9 (Linux i386) - man page for stooop (redhat section n)

stooop(n)		   Simple Tcl Only Object Oriented Programming			stooop(n)

NAME
       stooop - Object oriented extension.

SYNOPSIS
       package require Tcl 8.3

       package require stooop ?4.2?

       ::stooop::class name body

       ::stooop::new class ?arg arg ...?

       ::stooop::delete object ?object ...?

       ::stooop::virtual proc name {this ?arg arg ...?} ?body?

       ::stooop::classof object

       ::stooop::new object

       ::stooop::printObjects ?pattern?

       ::stooop::record

       ::stooop::report ?pattern?

DESCRIPTION
       This  package provides commands to extend Tcl in an object oriented manner, using a famil-
       iar C++ like syntax and behaviour. Stooop only introduces a few new commands: class,  new,
       delete,	virtual  and  classof. Along with a few coding conventions, that is basically all
       you need to know to use stooop. Stooop is meant to be as simple to use as possible.

       This manual is very succinct and is to be used as a quick reminder for the programmer, who
       should have read the thorough stooop.html HTML documentation at this point.

       ::stooop::class name body
	      This  command  creates  a  class.  The body, similar in contents to a Tcl namespace
	      (which a class actually also is), contains  member  procedure  definitions.  Member
	      procedures can also be defined outside the class body, by prefixing their name with
	      class::, as you would proceed with namespace procedures.

	      proc class {this ?arg arg ...?} ?base {?arg arg ...?} ...? body
		     This is the constructor procedure for the class. It is invoked  following	a
		     new  invocation  on the class. It must have the same name as the class and a
		     first argument named  this.  Any  number  of  base  classes  specifications,
		     including	arguments  to  be passed to their constructor, are allowed before
		     the actual body of the procedure.

	      proc ~class {this} body
		     This is the destructor procedure for the class. It is  invoked  following	a
		     delete  invocation. Its name must be the concatenation of a single ~ charac-
		     ter followed by the class name (as in C++). It must have a  single  argument
		     named this.

	      proc name {this ?arg arg ...?} body
		     This  is  a  member  procedure  of the class, as its first argument is named
		     this. It allows a simple access of member data for the object referenced  by
		     this inside the procedure. For example:
			set ($this,data) 0

	      proc name {?arg arg ...?} body
		     This  is  a  static  (as in C++) member procedure of the class, as its first
		     argument is not named this. Static (global) class data can  be  accessed  as
		     in:
			set (data) 0

	      proc class {this copy} body
		     This  is  the  optional  copy procedure for the class. It must have the same
		     name as the class and exactly 2 arguments named this and copy. It is invoked
		     following a new invocation on an existing object of the class.

       ::stooop::new class ?arg arg ...?
	      This  command is used to create an object. The first argument is the class name and
	      is followed by the arguments needed  by  the  corresponding  class  constructor.	A
	      unique identifier for the object just created is returned.

       ::stooop::delete object ?object ...?
	      This  command is used to delete one or several objects. It takes one or more object
	      identifiers as argument(s).

       ::stooop::virtual proc name {this ?arg arg ...?} ?body?
	      The virtual specifier may be used on member procedures to achieve dynamic  binding.
	      A  procedure  in	a  base  class	can then be redefined (overloaded) in the derived
	      class(es). If the base class procedure is invoked on an object, it is actually  the
	      derived class procedure which is invoked, if it exists. If the base class procedure
	      has no body, then it is considered to be a pure virtual and the derived class  pro-
	      cedure is always invoked.

       ::stooop::classof object
	      This command returns the class of the existing object passed as single parameter.

       ::stooop::new object
	      This  command  is  used to create an object by copying an existing object. The copy
	      constructor of the corresponding class is invoked if it exists, otherwise a  simple
	      copy of the copied object data members is performed.

DEBUGGING
       Environment variables

	      STOOOPCHECKDATA
		     Setting  this  variable  to  any  true  value will cause stooop to check for
		     invalid member or class data access.

	      STOOOPCHECKPROCEDURES
		     Setting this variable to any true value  will  cause  stooop  to  check  for
		     invalid member procedure arguments and pure interface classes instanciation.

	      STOOOPCHECKALL
		     Setting  this  variable to any true value will cause stooop to activate both
		     procedure and data member checking.

	      STOOOPCHECKOBJECTS
		     Setting this variable to any true value will cause stooop to activate object
		     checking.	The  following	stooop namespace procedures then become available
		     for debugging: printObjects, record and report.

	      STOOOPTRACEPROCEDURES
		     Setting this environment variable to either stdout, stderr or a  file  name,
		     activates	procedure  tracing.  The  stooop  library will then output to the
		     specified channel 1 line of informational text  for  each	member	procedure
		     invocation.

	      STOOOPTRACEPROCEDURESFORMAT
		     Defines  the  trace procedures output format. Defaults to "class: %C, proce-
		     dure: %p, object: %O, arguments: %a".

	      STOOOPTRACEDATA
		     Setting this environment variable to either stdout, stderr or a  file  name,
		     activates data tracing. The stooop library will then output to the specified
		     channel 1 line of informational text for each member data access.

	      STOOOPTRACEDATAFORMAT
		     Defines the trace data output format. Defaults to "class: %C, procedure: %p,
		     array: %A, object: %O, member: %m, operation: %o, value: %v".

	      STOOOPTRACEDATAOPERATIONS
		     When tracing data output, by default, all read, write and unsetting accesses
		     are reported, but the user can set this variable to any combination  of  the
		     r,  w and u letters for more specific tracing (please refer to the trace Tcl
		     manual page for more information).

	      STOOOPTRACEALL
		     Setting this environment variable to either stdout, stderr or a  file  name,
		     enables both procedure and data tracing.

       ::stooop::printObjects ?pattern?
	      Prints  an  ordered list of existing objects, in creation order, oldest first. Each
	      output line contains the class name, object identifier  and  the	procedure  within
	      which  the  creation  occured.  The optional pattern argument (as in the Tcl string
	      match command) can be used to limit the output to matching class names.

       ::stooop::record
	      When invoked, a snapshot of all existing stooop objects  is  taken.  Reporting  can
	      then  be	used  at a later time to see which objects were created or deleted in the
	      interval.

       ::stooop::report ?pattern?
	      Prints the created and deleted objects since  the  ::stooop::record  procedure  was
	      invoked  last. If present, the pattern argument limits the output to matching class
	      names.

EXAMPLES
       Please see the full HTML documentation in stooop.html.

KEYWORDS
       class, object, oriented, C++

stooop					       4.2					stooop(n)


All times are GMT -4. The time now is 07:44 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password