deleg_method - Interpreter utilities

[ Tcllib Home | Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]

# deleg_method(n) 0.2 tcllib "Interpreter utilities"

## Name

deleg_method - Creation of comm delegates (snit methods)

## Synopsis

- package require Tcl 8.3
- package require snit ?1.1?
- package require interp::delegate::method ?0.2?

- ::interp::delegate::method ?-async? name arguments comm id

## Description

This package provides a single command for use within snit type definition (i.e. actually a snit::macro) for the convenient creation of methods which delegate the actual work to a remote location via a "channel" created by the package comm.

## API

::interp::delegate::method ?-async? name arguments comm id

  This commands creates a method which is named by name. All invokations of this method will delegate the actual work to the remote location identified by the comm channel comm and the endpoint id.

  The name of the remote method invoked by the delegator is identical to the name of the method itself.

  Normally the generated method marshalls the arguments, and returns the result from the remote method as its own result. If however the option -async was specified then the generated method will not wait for a result and return immediately.

## Bugs, Ideas, Feedback

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category interp of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide unified diffs, i.e the output of diff -u.

Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## Keywords

comm, delegation, interpreter, method, snit

## Category

Programming tools

## Copyright

Copyright © 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>