1# ----------------------------------------------------------------------
2#  PURPOSE:  Base class for all electrical appliances that interact
3#            with Outlets.
4#
5#   AUTHOR:  Michael J. McLennan       Phone: (610)712-2842
6#            AT&T Bell Laboratories   E-mail: michael.mclennan@att.com
7#
8#      RCS:  $Id: Appliance.tcl,v 1.1 1998/07/27 18:41:29 stanton Exp $
9# ----------------------------------------------------------------------
10#               Copyright (c) 1993  AT&T Bell Laboratories
11# ======================================================================
12# Permission to use, copy, modify, and distribute this software and its
13# documentation for any purpose and without fee is hereby granted,
14# provided that the above copyright notice appear in all copies and that
15# both that the copyright notice and warranty disclaimer appear in
16# supporting documentation, and that the names of AT&T Bell Laboratories
17# any of their entities not be used in advertising or publicity
18# pertaining to distribution of the software without specific, written
19# prior permission.
20#
21# AT&T disclaims all warranties with regard to this software, including
22# all implied warranties of merchantability and fitness.  In no event
23# shall AT&T be liable for any special, indirect or consequential
24# damages or any damages whatsoever resulting from loss of use, data or
25# profits, whether in an action of contract, negligence or other
26# tortuous action, arising out of or in connection with the use or
27# performance of this software.
28# ======================================================================
29
30itcl_class Appliance {
31
32	method power {power} {
33		if {[itcl_info objects [info which $outlet]] == ""} {
34			set outlet {}
35		}
36		if {$outlet == ""} {
37			error "cannot use $this: not plugged in"
38		}
39		$outlet use $power
40	}
41
42	public outlet {}
43}
44