require 'drb'
$hvor = 'i stua'

class Videospiller  
  
  include DRbUndumped   # Gjør slik at Videospiller ikke kan serialiseres.
  def start
    puts "Videospiller: 'Press play on tape #{$hvor}.'"
  end

  class Kontroll 
    def initialize( spiller )
      @spiller = spiller
    end    
    def hvor_er_du?
      puts "Kontroll: 'Jeg er #{$hvor}.'"
    end
    def start
      @spiller.start
    end
  end # Kontroll

end # Videospiller

class Tjener 
  def initialize
    @spiller = Videospiller.new
  end
  def ny_fjernkontroll     # pass-by-value
    Videospiller::Kontroll.new( DRbObject.new( @spiller ) )  
  end
  def ny_kontroll          # pass-by-reference
    Videospiller::Kontroll.new( @spiller )
  end
  def hent_streng   # pass-by-value
    'En streng, en streng, mitt kongerike for en streng.'
  end
  def hent_standard_utput  # pass-by-reference da IO er en av
    $stdout                # klassene som ikke kan serialiseres.
  end
end

if __FILE__ == $0 then # Start tjeneren med våre utvidelser, og
  load 'drb_server.rb' # gjenbruker koden fra forrige eksempel.
end
