About Us Documentation

Contact Site Map
 

  

WinPak
Documentation

Tcl_CreateAlias





Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



_________________________________________________________________

NAME

Tcl_IsSafe,  Tcl_MakeSafe,  Tcl_CreateSlave,   Tcl_GetSlave,
     Tcl_GetMaster,      Tcl_GetInterpPath,      Tcl_CreateAlias,
     Tcl_CreateAliasObj,      Tcl_GetAlias,      Tcl_GetAliasObj,
     Tcl_ExposeCommand,  Tcl_HideCommand  -  manage  multiple Tcl
     interpreters, aliases and hidden commands.

SYNOPSIS

#include <tcl.h>

     int
     Tcl_IsSafe(interp)

     int
     Tcl_MakeSafe(interp)

     Tcl_Interp *
     Tcl_CreateSlave(interp, slaveName, isSafe)

     Tcl_Interp *
     Tcl_GetSlave(interp, slaveName)

     Tcl_Interp *
     Tcl_GetMaster(interp)

     int
     Tcl_GetInterpPath(askingInterp, slaveInterp)

     int                                                           |
     Tcl_CreateAlias(slaveInterp, srcCmd, targetInterp, targetCmd, argc, argv)|

     int                                                           |
     Tcl_CreateAliasObj(slaveInterp, srcCmd, targetInterp, targetCmd, objc, objv)|

     int
     Tcl_GetAlias(interp, srcCmd, targetInterpPtr, targetCmdPtr, argcPtr, argvPtr)

     int                                                           |
     Tcl_GetAliasObj(interp, srcCmd, targetInterpPtr, targetCmdPtr, objcPtr, objvPtr)|

     int                                                           |
     Tcl_ExposeCommand(interp, hiddenCmdName, cmdName)             |

     int                                                           |
     Tcl_HideCommand(interp, cmdName, hiddenCmdName)               |

ARGUMENTS

|
     Tcl_Interp             *interp           (in)                      ||
                                                        Inter-  |
                                                        preter in  |



Tcl                                                             1






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



                                                        which  to  |
                                                        execute  |
                                                        the  |
                                                        specified  |
                                                        command.   |

     char                   *slaveName        (in)                      ||
                                                        Name   of  |
                                                        slave  |
                                                        inter-  |
                                                        preter to  |
                                                        create or  |
                                                        manipu-  |
                                                        late.      |

     int                    isSafe            (in)                      ||
                                                        If   non-  |
                                                        zero,   a  |
                                                        ``safe''  |
                                                        slave  |
                                                        that   is  |
                                                        suitable  |
                                                        for  run-  |
                                                        ning  |
                                                        untrusted  |
                                                        code   is  |
                                                        created,  |
                                                        otherwise  |
                                                        a trusted  |
                                                        slave  is  |
                                                        created.   |

     Tcl_Interp             *slaveInterp      (in)                      ||
                                                        Inter-  |
                                                        preter to  |
                                                        use   for  |
                                                        creating  |
                                                        the  |
                                                        source  |
                                                        command  |
                                                        for    an  |
                                                        alias  |
                                                        (see  |
                                                        below).    |

     char                   *srcCmd           (in)                      ||
                                                        Name   of  |
                                                        source  |
                                                        command  |
                                                        for  |
                                                        alias.     |




Tcl                                                             2






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



     Tcl_Interp             *targetInterp     (in)                      ||
                                                        Inter-  |
                                                        preter  |
                                                        that con-  |
                                                        tains the  |
                                                        target  |
                                                        command  |
                                                        for    an  |
                                                        alias.     |

     char                   *targetCmd        (in)                      ||
                                                        Name   of  |
                                                        target  |
                                                        command  |
                                                        for alias  |
                                                        in   tar-  |
                                                        getIn-  |
                                                        terp.      |

     int                    argc              (in)                      ||
                                                        Count  of  |
                                                        addi-  |
                                                        tional  |
                                                        arguments  |
                                                        to   pass  |
                                                        to    the  |
                                                        alias  |
                                                        command.   |

     char                   **argv            (in)                      ||
                                                        Vector of  |
                                                        strings,  |
                                                        the addi-  |
                                                        tional  |
                                                        arguments  |
                                                        to   pass  |
                                                        to    the  |
                                                        alias  |
                                                        command.  |
                                                        This  |
                                                        storage  |
                                                        is  owned  |
                                                        by    the  |
                                                        caller.    |

     int                    objc              (in)                      ||
                                                        Count  of  |
                                                        addi-  |
                                                        tional  |
                                                        object  |
                                                        arguments  |
                                                        to   pass  |



Tcl                                                             3






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



                                                        to    the  |
                                                        alias  |
                                                        object  |
                                                        command.   |

     Tcl_Object             **objv            (in)                      ||
                                                        Vector of  |
                                                        Tcl_Obj  |
                                                        struc-  |
                                                        tures,  |
                                                        the addi-  |
                                                        tional  |
                                                        object  |
                                                        argumenst  |
                                                        to   pass  |
                                                        to    the  |
                                                        alias  |
                                                        object  |
                                                        command.  |
                                                        This  |
                                                        storage  |
                                                        is  owned  |
                                                        by    the  |
                                                        caller.    |

     Tcl_Interp             **targetInterpPtr (in)                      ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store the  |
                                                        address  |
                                                        of    the  |
                                                        inter-  |
                                                        preter  |
                                                        where   a  |
                                                        target  |
                                                        command  |
                                                        is  |
                                                        defined  |
                                                        for    an  |
                                                        alias.     |

     char                   **targetCmdPtr    (out)                     ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store the  |
                                                        address  |
                                                        of    the  |
                                                        name   of  |
                                                        the  tar-  |
                                                        get  |



Tcl                                                             4






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



                                                        command  |
                                                        for    an  |
                                                        alias.     |

     int                    *argcPtr          (out)                     ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store  |
                                                        count  of  |
                                                        addi-  |
                                                        tional  |
                                                        arguments  |
                                                        to     be  |
                                                        passed to  |
                                                        the  |
                                                        alias.  |
                                                        The loca-  |
                                                        tion   is  |
                                                        in  |
                                                        storage  |
                                                        owned  by  |
                                                        the  |
                                                        caller.    |

     char                   ***argvPtr        (out)                     ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store   a  |
                                                        vector of  |
                                                        strings,  |
                                                        the addi-  |
                                                        tional  |
                                                        arguments  |
                                                        to   pass  |
                                                        to     an  |
                                                        alias.  |
                                                        The loca-  |
                                                        tion   is  |
                                                        in  |
                                                        storage  |
                                                        owned  by  |
                                                        the  |
                                                        caller,  |
                                                        the  vec-  |
                                                        tor    of  |
                                                        strings  |
                                                        is  owned  |
                                                        by    the  |
                                                        called  |
                                                        function.  |



Tcl                                                             5






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



     int                    *objcPtr          (out)                     ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store  |
                                                        count  of  |
                                                        addi-  |
                                                        tional  |
                                                        object  |
                                                        arguments  |
                                                        to     be  |
                                                        passed to  |
                                                        the  |
                                                        alias.  |
                                                        The loca-  |
                                                        tion   is  |
                                                        in  |
                                                        storage  |
                                                        owned  by  |
                                                        the  |
                                                        caller.    |

     Tcl_Obj                ***objvPtr        (out)                     ||
                                                        Pointer  |
                                                        to  loca-  |
                                                        tion   to  |
                                                        store   a  |
                                                        vector of  |
                                                        Tcl_Obj  |
                                                        struc-  |
                                                        tures,  |
                                                        the addi-  |
                                                        tional  |
                                                        arguments  |
                                                        to   pass  |
                                                        to     an  |
                                                        object  |
                                                        alias  |
                                                        command.  |
                                                        The loca-  |
                                                        tion   is  |
                                                        in  |
                                                        storage  |
                                                        owned  by  |
                                                        the  |
                                                        caller,  |
                                                        the  vec-  |
                                                        tor    of  |
                                                        Tcl_Obj  |
                                                        struc-  |
                                                        tures  is  |
                                                        owned  by  |



Tcl                                                             6






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



                                                        the  |
                                                        called  |
                                                        function.  |

     char                   *cmdName          (in)                      ||
                                                        Name   of  |
                                                        an  |
                                                        exposed  |
                                                        command  |
                                                        to   hide  |
                                                        or  |
                                                        create.    |

     char                   *hiddenCmdName    (in)                      ||
                                                        Name  |
                                                        under  |
                                                        which   a  |
                                                        hidden  |
                                                        command  |
                                                        is stored  |
                                                        and  with  |
                                                        which  it  |
                                                        can    be  |
                                                        exposed  |
                                                        or  |
                                                        invoked.
_________________________________________________________________


DESCRIPTION

These procedures are intended for  access  to  the  multiple
     interpreter  facility  from  inside  C programs. They enable
     managing multiple interpreters in a  hierarchical  relation-
     ship,  and  the  management  of  aliases, commands that when
     invoked in one interpreter  execute  a  command  in  another
     interpreter.  The  return  value  for  those procedures that
     return an int is either TCL_OK or TCL_ERROR. If TCL_ERROR is
     returned  then  the result field of the interpreter contains
     an error message.

     Tcl_CreateSlave creates a new  interpreter  as  a  slave  of
     interp.   It also creates a slave command named slaveName in
     interp which allows interp to manipulate the new  slave.  If
     isSafe is zero, the command creates a trusted slave in which
     Tcl code has access to all the Tcl commands.  If  it  is  1,
     the  command  creates a ``safe'' slave in which Tcl code has
     access only to set of Tcl commands defined as ``Safe  Tcl'';
     see the manual entry for the Tcl interp command for details.
     If the creation of the new slave interpreter failed, NULL is
     returned.





Tcl                                                             7






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



     Tcl_IsSafe returns 1 if interp is ``safe'' (was created with
     the TCL_SAFE_INTERPRETER flag specified), 0 otherwise.

     Tcl_MakeSafe makes interp ``safe'' by removing all  non-core
     and  core  unsafe  functionality. Note that if you call this
     after adding some extension to an interpreter, all traces of
     that extension will be removed from the interpreter.

     Tcl_GetSlave returns a pointer to  a  slave  interpreter  of
     interp.  The  slave  interpreter is identified by slaveName.
     If no such slave interpreter exists, NULL is returned.

     Tcl_GetMaster returns a pointer to the master interpreter of
     interp.  If  interp  has no master (it is a top-level inter-
     preter) then NULL is returned.

     Tcl_GetInterpPath sets the result field in  askingInterp  to
     the  relative  path  between  askingInterp  and slaveInterp;
     slaveInterp must be a slave of askingInterp. If the computa-
     tion of the relative path succeeds, TCL_OK is returned, else
     TCL_ERROR is returned and the result field  in  askingInterp
     contains the error message.

     Tcl_CreateAlias creates an object command  named  srcCmd  in  |
     slaveInterp  that  when invoked, will cause the command tar-  |
     getCmd to be invoked in targetInterp. The  arguments  speci-  |
     fied  by  the strings contained in argv are always prepended  |
     to any arguments supplied in the invocation  of  srcCmd  and  |
     passed  to  targetCmd.   This operation returns TCL_OK if it  |
     succeeds, or TCL_ERROR if it fails; in that case,  an  error  |
     message  is  left in the object result of slaveInterp.  Note  |
     that there are no restrictions on the ancestry  relationship  |
     (as created by Tcl_CreateSlave) between slaveInterp and tar-  |
     getInterp. Any two interpreters can  be  used,  without  any  |
     restrictions on how they are related.                         |

     Tcl_CreateAliasObj is similar to  Tcl_CreateAliasObj  except  |
     that  it  takes  a  vector  of objects to pass as additional  |
     arguments instead of a vector of strings.

     Tcl_GetAlias returns information about an alias aliasName in
     interp.  Any of the result fields can be NULL, in which case
     the corresponding datum is not returned. If a  result  field
     is non-NULL, the address indicated is set to the correspond-
     ing datum.  For example, if targetNamePtr is non-NULL it  is
     set  to  a  pointer to the string containing the name of the
     target command.                                               |

     Tcl_GetAliasObj is similar to Tcl_GetAlias  except  that  it  |
     returns  a pointer to a vector of Tcl_Obj structures instead  |
     of a vector of strings.                                       |




Tcl                                                             8






Tcl_CreateSlave(3)   Tcl Library Procedures                   7.6



     Tcl_ExposeCommand moves the command named hiddenCmdName from  |
     the  set  of hidden commands to the set of exposed commands,  |
     putting it under the name cmdName. HiddenCmdName must be the  |
     name  of  an  existing hidden command, or the operation will  |
     return TCL_ERROR and leave an error message  in  the  result  |
     field  in  interp.   If  an  exposed  command  named cmdName  |
     already exists, the operation returns TCL_ERROR  and  leaves  |
     an  error  message  in  the object result of interp.  If the  |
     operation succeeds, it returns TCL_OK.  After executing this  |
     command,  attempts  to  use cmdName in a call to Tcl_Eval or  |
     with the Tcl eval command will again succeed.                 |

     Tcl_HideCommand moves the command named cmdName from the set  |
     of exposed commands to the set of hidden commands, under the  |
     name hiddenCmdName.  CmdName must be the name of an existing  |
     exposed  command, or the operation will return TCL_ERROR and  |
     leave an error message  in  the  object  result  of  interp.  |
     Currently  both  cmdName  and hiddenCmdName must not contain  |
     namespace qualifiers, or the operation will return TCL_ERROR  |
     and  leave  an error message in the object result of interp.  |
     The CmdName will be looked up in the global  namespace,  and  |
     not  relative  to the current namespace, even if the current  |
     namespace is not the global one.  If a hidden command  whose  |
     name  is  hiddenCmdName  already  exists, the operation also  |
     returns TCL_ERROR and the result field in interp contains an  |
     error  message.   If  the  operation  succeeds,  it  returns  |
     TCL_OK.  After  executing  this  command,  attempts  to  use  |
     cmdName  in  a call to Tcl_Eval or with the Tcl eval command  |
     will fail.                                                    |

SEE ALSO

|
     For a description of the Tcl interface  to  multiple  inter-  |
     preters, see interp(n).                                       |


KEYWORDS

|
     alias, command, exposed commands,  hidden  commands,  inter-  |
     preter, invoke, master, slave,                                |


Tcl                                                             9



Prepared by Ready-to-Run Software, Inc. 

To return to the Ready-to-Run Software Super ReadyPak Table of contents please presshere

 

Email addresses listed on this site may  NOT be used for unsolicited commercial email.

Ready-to-Run Software, Inc Privacy Statement

Portions (c)Copyright, 1996-2005 by Ready-to-Run Software, Inc
(All rights reserved.)
212 Cedar Cove
Lansing, NY 14882
Phone: 607 533 UNIX (8649)
Fax: 607 533 4002