ns-nam.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (c) 1997 Regents of the University of California.
  3. # All rights reserved.
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. #    notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. #    notice, this list of conditions and the following disclaimer in the
  11. #    documentation and/or other materials provided with the distribution.
  12. # 3. All advertising materials mentioning features or use of this software
  13. #    must display the following acknowledgement:
  14. #  This product includes software developed by the MASH Research
  15. #  Group at the University of California Berkeley.
  16. # 4. Neither the name of the University nor of the Research Group may be
  17. #    used to endorse or promote products derived from this software without
  18. #    specific prior written permission.
  19. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  20. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  23. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  24. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  25. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  26. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  27. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  28. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  29. # SUCH DAMAGE.
  30. #
  31. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/lib/ns-nam.tcl,v 1.3 1997/07/24 21:18:58 heideman Exp $
  32. #
  33. Class NamSimulator -superclass Simulator
  34. NamSimulator instproc init { outfile } {
  35. $self next
  36. $self set chan_ [open $outfile w]
  37. $self set nam_config_ "proc nam_config {net} {n"
  38. }
  39. NamSimulator instproc node {} {
  40. set n [$self next]
  41. set namcmd "t$net node [$n id] circlen"
  42. $self instvar nam_config_
  43. set nam_config_ $nam_config_$namcmd
  44. return $n
  45. }
  46. NamSimulator instproc simplex-link { n1 n2 bw delay type } {
  47. $self next $n1 $n2 $bw $delay $type
  48. set id1 [$n1 id]
  49. set id2 [$n2 id]
  50. $self instvar nam_config_ link_mark_
  51. if { ![info exists link_mark_($id2,$id1)] } {
  52. set namcmd "tauto_mklink $net $id1 $id2 $bw $delay n"
  53. set nam_config_ $nam_config_$namcmd
  54. }
  55. set link_mark_($id1,$id2) 1
  56. set namcmd "t$net queue $id1 $id2 0.5 n"
  57. set nam_config_ $nam_config_$namcmd
  58. }
  59. NamSimulator instproc config_dump {} {
  60. $self instvar nam_config_
  61. set nam_config_ $nam_config_}n
  62. $self instvar chan_
  63. puts $chan_ $nam_config_
  64. close $chan_
  65. }