#######################################################################
## proc send_expect_report
## 
## Copyright (c) David L. Fisher, 1999
## 
## This software is copyrighted David L. Fisher.  The following 
## terms apply to all files associated with the software unless
## explicitly disclaimed in individual files.
## 
## The author hereby grants permission to use, copy, modify,
## distribute, and license this software and its documentation for any
## purpose, provided that existing copyright notices are retained in
## all copies and that this notice is included verbatim in any
## distributions. No written agreement, license, or royalty fee is
## required for any of the authorized uses. Modifications to this
## software may be copyrighted by their authors and need not follow
## the licensing terms described here, provided that the new terms are
## clearly indicated on the first page of each file where they apply. 
## 
## IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY PARTY
## FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
## ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
## DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
## POSSIBILITY OF SUCH DAMAGE.
## 
## THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
## NON-INFRINGEMENT.  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
## AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE
## MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
## 
## GOVERNMENT USE: If you are acquiring this software on behalf of the 
## U.S. government, the Government shall have only "Restricted Rights"
## in the software and related documentation as defined in the Federal 
## Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
## are acquiring the software on behalf of the Department of Defense,
## the software shall be classified as "Commercial Computer Software"
## and the Government shall have only "Restricted Rights" as defined
## in Clause 252.227-7013 (c) (1) of DFARs.  Notwithstanding the
## foregoing, the authors grant the U.S. Government and others acting
## in its behalf permission to use and distribute the software in
## accordance with the terms specified in this license.
## 
#######################################################################

#######################################################################
## NAME
##      send_expect_report
##
## DESCRIPTION
##      Generate a report on the settings and results of the
##      send_expect interface
##
## INPUTS
##      outputmode	0 = output to stderr
##			1 = return data
##                      2 = output to stderr and return data
##                      3 = no output
##      
## OUTPUTS
##      If outputmode is 1, returns report as string
##      Otherwise, returns 0;
##
## NOTE
##      Regardless of outputmode, the sendGlobals(report) is updated.
##
#######################################################################
proc send_expect_report { {outputmode 0} } {
    global sendGlobals;

    ##------------------------------------------------------------------------
    ## here is where to format the report message however you want
    ##------------------------------------------------------------------------
    set data "";
    append data "Interface/send_expect statistics:\n";
    append data "Transmission Errors: $sendGlobals(errors)\n";
    append data "Transmission Kills:  $sendGlobals(kills)\n";
    append data "Mode failures/Max allowed:\n";
    append data "Mode 1: $sendGlobals(Mode1Failures)/$sendGlobals(Mode1FailMax)\n";
    append data "Mode 2: $sendGlobals(Mode2Failures)/$sendGlobals(Mode2FailMax)\n";
    append data "Mode 3: $sendGlobals(Mode3Failures)/$sendGlobals(Mode3FailMax)\n";

    ##------------------------------------------------------------------------
    ## report on the interface settings for this execution
    ##------------------------------------------------------------------------
    append data "\nSettings for the send_expect interface:\n\n";
    foreach name [lsort [array names sendGlobals]] {
	if { "$name" == "report" } {
	    ## don't want to add the report to the report here...
	    continue;
	}
        append data [format "%-18s : %-s\n" $name $sendGlobals($name)];
    }

    ## update a global for external use
    set sendGlobals(report) "$data";
    
    ## now determine where the report goes
    if { $outputmode == 0 || $outputmode == 2 } {
	puts stderr "$data";  
    }
    if { $outputmode == 1 || $outputmode == 2 } {
	return "$data";
    }
    return 0;
}











