1*3f982cf4SFabien Sanglard// Copyright 2018 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard// Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard// found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglardpackage osp 6*3f982cf4SFabien Sanglard 7*3f982cf4SFabien Sanglard// TODO(jophba): 8*3f982cf4SFabien Sanglard// - Send a response message 9*3f982cf4SFabien Sanglard// - Make a nice object API with methods 10*3f982cf4SFabien Sanglard// - Make it possible to have a presentation receiver that is a client 11*3f982cf4SFabien Sanglard// - Close connection on unknown message types 12*3f982cf4SFabien Sanglard 13*3f982cf4SFabien Sanglardimport ( 14*3f982cf4SFabien Sanglard "context" 15*3f982cf4SFabien Sanglard "crypto/tls" 16*3f982cf4SFabien Sanglard) 17*3f982cf4SFabien Sanglard 18*3f982cf4SFabien Sanglardfunc RunPresentationReceiver(ctx context.Context, mdnsInstanceName string, port int, cert tls.Certificate, presentUrl func(string)) { 19*3f982cf4SFabien Sanglard messages := make(chan interface{}) 20*3f982cf4SFabien Sanglard go ReadMessagesAsServer(ctx, mdnsInstanceName, port, cert, messages) 21*3f982cf4SFabien Sanglard for msg := range messages { 22*3f982cf4SFabien Sanglard switch m := msg.(type) { 23*3f982cf4SFabien Sanglard case PresentationStartRequest: 24*3f982cf4SFabien Sanglard presentUrl(m.URL) 25*3f982cf4SFabien Sanglard } 26*3f982cf4SFabien Sanglard } 27*3f982cf4SFabien Sanglard} 28