~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Open Mash Cross Reference
mash/tcl/degas/degasserver/deglet_service.tcl

Component: ~ [ mash ] ~ [ apps ] ~ [ gsm ] ~ [ lib ] ~ [ otcl ] ~ [ srm ] ~ [ tcl8.3 ] ~ [ tclcl ] ~ [ tk8.3 ] ~ [ tutorials ] ~

  1 import MashLib
  2 
  3 # A Service class encapsulates a service by a gateway for another gateway
  4 # or a client.  
  5 
  6 Class DegletService
  7 
  8 DegletService instproc init {client_addr id} {
  9 #       $self set input_session_  $src_addr
 10 #       $self set dest_addr_ $dest_addr
 11 #       $self set client_rtcp_addr_ $client_rtcp_addr
 12 #       $self set output_session_ $send_session
 13 #       $self set input_session_ $recv_session
 14         $self set client_addr_ $client_addr
 15         $self set src_list_ ""
 16         $self set id_ $id
 17         $self reset_best_gateway
 18 }
 19 
 20 
 21 DegletService instproc set_input_session { s } {
 22         $self set input_session_ $s
 23 }
 24 
 25 
 26 DegletService instproc set_output_session { s } {
 27         $self set output_session_ $s
 28 }
 29 
 30 
 31 DegletService instproc set_agent { a } {
 32         $self set agent_ $a
 33 }
 34 
 35 
 36 DegletService instproc parse_spec {spec} {
 37         $self set bandwidth_ [lindex $spec 0]
 38         $self set load_ [lindex $spec 1]
 39 }
 40 
 41 DegletService instproc destroy { } {
 42         $self instvar output_session_ input_session_ service_state_ stable_state_ agent_
 43 
 44         #assert [info exists service_state_] "service state not exists"
 45         delete $service_state_
 46         delete $agent_
 47 
 48 }
 49 
 50 DegletService instproc get_send_group { } { $self set dest_addr_ }
 51 DegletService instproc get_bandwidth { } { $self set bandwidth_ }
 52 DegletService instproc get_load { } { $self set load_ }
 53 DegletService instproc get_client_rtcp_addr { } { $self set client_rtcp_addr_ }
 54 DegletService instproc get_send_session { } { $self set output_session_ }
 55 DegletService instproc get_recv_session { } { $self set input_session_ }
 56 DegletService instproc get_sources { } { $self set src_list_ }
 57 
 58 DegletService instproc get_best_gateway { {id 0} } { 
 59         $self instvar best_gateway_
 60         if {![info exists best_gateway_($id)]} {
 61                 return ""
 62         } else {
 63                 return [$self set best_gateway_($id)]
 64         }
 65 }
 66 
 67 DegletService instproc get_best_score { {id 0} } { 
 68         $self instvar best_score_
 69         if {![info exists best_score_($id)]} {
 70                 return ""
 71         } else {
 72                 return [$self set best_score_($id)]
 73         }
 74 }
 75 
 76 DegletService instproc add_source { src_addr } {
 77         $self instvar src_list_ 
 78         if {[lsearch $src_list_ $src_addr] == -1} {
 79                 lappend src_list_ $src_addr
 80         }
 81 }
 82 
 83 DegletService instproc del_source { src_addr } {
 84         $self instvar src_list_ 
 85         set pos [lsearch $src_list_ $src_addr] 
 86         if {$pos == -1} {
 87                 return
 88         }
 89 
 90         set src_list_ [lreplace $src_list_ $pos $pos]
 91 }
 92 
 93 DegletService instproc reset_best_gateway { {id 0} } {
 94         $self set best_gateway_($id) ""
 95         $self set best_score_($id) 0
 96 }
 97 
 98 DegletService instproc update_best_gateway { score gateway {id 0} } {
 99         $self instvar best_score_ best_gateway_
100         if {![info exists best_score_($id)]} {
101                 set best_score_($id) 0
102         }
103         if {$best_score_($id) < $score} {
104                 set best_gateway_($id) $gateway
105                 set best_score_($id) $score
106         }
107 }
108 
109 DegletService instproc set_service_state { state } {
110         $self set service_state_ $state
111 }
112 
113 DegletService instproc refresh_service_state { } {
114         [$self set service_state_] refresh
115 }
116 
117 DegletService instproc get_spec { } {
118         $self instvar bandwidth_ load_
119         return "{$bandwidth_ $load_}"
120 }
121 
122 DegletService instproc get_client_addr { } {
123         return [$self set client_addr_]
124 }
125 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.