[media.sessions] Rm dead code

Migration is finished; this code is no longer included in the build.

TEST: Rm dead code
Change-Id: I65f1623fdcd96c6ddd85eaf34a3e763df01f94d5
diff --git a/src/media/sessions/src/proxies/session.rs b/src/media/sessions/src/proxies/session.rs
deleted file mode 100644
index b1a0e3a..0000000
--- a/src/media/sessions/src/proxies/session.rs
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright 2019 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// TODO(turnage): Remove file after migrating clients to sessions2.
-
-use crate::{
-    fidl_clones::*, log_error::log_error_discard_result, mpmc,
-    state::active_session_queue::ActiveSessionQueue, state::session_list::SessionList, Ref, Result,
-};
-use fidl::encoding::OutOfLine;
-use fidl::endpoints::*;
-use fidl_fuchsia_media::Metadata;
-use fidl_fuchsia_media_sessions::*;
-use fuchsia_async as fasync;
-use fuchsia_zircon as zx;
-use futures::{future::try_join, Future, FutureExt, StreamExt, TryStreamExt};
-use std::{
-    collections::HashMap,
-    ops::{Deref, DerefMut},
-    rc::Rc,
-};
-
-#[derive(Clone, Debug)]
-pub struct SessionRegistration {
-    pub id: Rc<zx::Event>,
-    pub koid: zx::Koid,
-    pub is_local: bool,
-}
-
-/// `Session` is the in-process proxy to a media session.
-#[derive(Clone)]
-pub struct Session {
-    proxy: Rc<SessionProxy>,
-    state: Ref<SessionState>,
-    events: mpmc::Receiver<Clonable<SessionEvent>>,
-    cancel_signal: mpmc::Receiver<()>,
-}
-
-#[derive(Debug, Clone)]
-pub enum SessionCollectionEvent {
-    Added,
-    Removed,
-}
-
-impl Session {
-    pub async fn serve(
-        client_end: ClientEnd<SessionMarker>,
-        registration: SessionRegistration,
-        active_session_queue: Ref<ActiveSessionQueue>,
-        session_list: Ref<SessionList>,
-        collection_event_sink: mpmc::Sender<(SessionRegistration, SessionCollectionEvent)>,
-        active_session_sink: mpmc::Sender<Option<SessionRegistration>>,
-    ) -> Result<Self> {
-        let proxy = client_end.into_proxy()?;
-        let mut event_stream = proxy.take_event_stream();
-        let event_sender = mpmc::Sender::default();
-        let event_receiver = event_sender.new_receiver();
-        let cancel_signaller = mpmc::Sender::with_buffer_size(1);
-        let cancel_signal = cancel_signaller.new_receiver();
-        let state = Ref::default();
-        let session = Session {
-            proxy: Rc::new(proxy),
-            events: event_receiver,
-            state: state.clone(),
-            cancel_signal,
-        };
-        fasync::spawn_local(async move {
-            while let Ok(Some(event)) = event_stream.try_next().await {
-                if is_active_status(&event) && registration.is_local {
-                    let ref mut queue = active_session_queue.lock().await;
-                    let active_session_changed = queue.promote_session(registration.clone());
-                    if active_session_changed {
-                        active_session_sink.send(queue.active_session()).await;
-                    }
-                }
-                state.lock().await.deref_mut().update(&event);
-                event_sender.send(Clonable(event)).await;
-            }
-            session_list.lock().await.deref_mut().remove(registration.koid);
-            active_session_queue.lock().await.deref_mut().remove_session(&registration);
-            collection_event_sink
-                .send((registration.clone(), SessionCollectionEvent::Removed))
-                .await;
-            cancel_signaller.send(()).await;
-        });
-        Ok(session)
-    }
-
-    pub async fn connect(&self, server_end: ServerEnd<SessionMarker>) -> Result<()> {
-        let (request_stream, control_handle) = server_end.into_stream_and_control_handle()?;
-        let events_to_catch_up_client = self.state.lock().await.deref().events();
-        for event in events_to_catch_up_client {
-            if Self::send_event(&control_handle, &event).is_err() {
-                // Client is disconnected.
-                return Ok(());
-            }
-        }
-
-        fasync::spawn_local(
-            try_join(self.request_forwarder(request_stream), self.event_forwarder(control_handle))
-                .map(log_error_discard_result),
-        );
-        Ok(())
-    }
-
-    fn request_forwarder(
-        &self,
-        mut request_stream: SessionRequestStream,
-    ) -> impl Future<Output = Result<()>> {
-        let proxy = self.proxy.clone();
-        let mut cancel_signal = self.cancel_signal.clone();
-        async move {
-            let mut cancel_signal = cancel_signal.next().fuse();
-            loop {
-                futures::select! {
-                    request = request_stream.select_next_some() => {
-                        Self::serve_request(proxy.deref(), request?).await?;
-                    },
-                    _cancel = cancel_signal => {
-                        break;
-                    }
-                }
-            }
-            Ok(())
-        }
-    }
-
-    fn event_forwarder(
-        &self,
-        control_handle: SessionControlHandle,
-    ) -> impl Future<Output = Result<()>> {
-        let mut event_stream = self.events.clone();
-        let mut cancel_signal = self.cancel_signal.clone();
-        async move {
-            let mut cancel_signal = cancel_signal.next().fuse();
-            loop {
-                futures::select! {
-                    Clonable(event) = event_stream.select_next_some() => {
-                        Self::send_event(&control_handle, &event)?;
-                    }
-                    _cancel = cancel_signal => {
-                        break;
-                    }
-                }
-            }
-            Ok(())
-        }
-    }
-
-    fn send_event(control_handle: &SessionControlHandle, event: &SessionEvent) -> Result<()> {
-        Ok(match event {
-            SessionEvent::OnPlaybackStatusChanged { playback_status } => control_handle
-                .send_on_playback_status_changed(clone_playback_status(playback_status)),
-            SessionEvent::OnMetadataChanged { media_metadata } => {
-                control_handle.send_on_metadata_changed(&mut media_metadata.clone())
-            }
-            SessionEvent::OnPlaybackCapabilitiesChanged { playback_capabilities } => control_handle
-                .send_on_playback_capabilities_changed(clone_playback_capabilities(
-                    playback_capabilities,
-                )),
-            SessionEvent::OnMediaImagesChanged { media_images } => {
-                let mut images: Vec<MediaImage> =
-                    media_images.iter().map(clone_media_image).collect();
-                control_handle.send_on_media_images_changed(&mut images.iter_mut())
-            }
-        }?)
-    }
-
-    async fn serve_request(proxy: &SessionProxy, request: SessionRequest) -> Result<()> {
-        match request {
-            SessionRequest::Play { .. } => proxy.play()?,
-            SessionRequest::Pause { .. } => proxy.pause()?,
-            SessionRequest::Stop { .. } => proxy.stop()?,
-            SessionRequest::SeekToPosition { position, .. } => proxy.seek_to_position(position)?,
-            SessionRequest::SkipForward { skip_amount, .. } => proxy.skip_forward(skip_amount)?,
-            SessionRequest::SkipReverse { skip_amount, .. } => proxy.skip_reverse(skip_amount)?,
-            SessionRequest::NextItem { .. } => proxy.next_item()?,
-            SessionRequest::PrevItem { .. } => proxy.prev_item()?,
-            SessionRequest::SetPlaybackRate { playback_rate, .. } => {
-                proxy.set_playback_rate(playback_rate)?
-            }
-            SessionRequest::SetRepeatMode { repeat_mode, .. } => {
-                proxy.set_repeat_mode(repeat_mode)?
-            }
-            SessionRequest::SetShuffleMode { shuffle_on, .. } => {
-                proxy.set_shuffle_mode(shuffle_on)?
-            }
-            SessionRequest::BindGainControl { gain_control_request, .. } => {
-                proxy.bind_gain_control(gain_control_request)?
-            }
-            SessionRequest::ConnectToExtension { extension, channel, .. } => {
-                proxy.connect_to_extension(&extension, channel)?
-            }
-            SessionRequest::GetMediaImageBitmap {
-                url,
-                mut minimum_size,
-                mut desired_size,
-                responder,
-            } => {
-                let mut bitmap = proxy.get_media_image_bitmap(
-                    &url,
-                    &mut minimum_size,
-                    &mut desired_size,
-                ).await?;
-                let response = bitmap.as_mut().map(|b| OutOfLine(b.deref_mut()));
-                responder.send(response)?
-            }
-        };
-        Ok(())
-    }
-}
-
-/// `SessionState` keeps the last advertised state from each of a session's event
-/// streams so that new clients can be caught up when they connect.
-#[derive(Debug, Default)]
-struct SessionState {
-    playback_status: Option<PlaybackStatus>,
-    playback_capabilities: Option<PlaybackCapabilities>,
-    media_metadata: Option<Metadata>,
-    media_images: HashMap<MediaImageType, MediaImage>,
-}
-
-impl Clone for SessionState {
-    fn clone(&self) -> Self {
-        Self {
-            playback_status: self.playback_status.as_ref().map(clone_playback_status),
-            playback_capabilities: self
-                .playback_capabilities
-                .as_ref()
-                .map(clone_playback_capabilities),
-            media_metadata: self.media_metadata.clone(),
-            media_images: self
-                .media_images
-                .iter()
-                .map(|(image_type, image)| (*image_type, clone_media_image(image)))
-                .collect(),
-        }
-    }
-}
-
-impl SessionState {
-    /// Returns the state with each field represented as an event.
-    pub fn events(&self) -> Vec<SessionEvent> {
-        let mut events = Vec::new();
-
-        if let Some(event) = self
-            .playback_status
-            .as_ref()
-            .map(clone_playback_status)
-            .map(|playback_status| SessionEvent::OnPlaybackStatusChanged { playback_status })
-        {
-            events.push(event);
-        }
-
-        if let Some(event) =
-            self.playback_capabilities.as_ref().map(clone_playback_capabilities).map(
-                |playback_capabilities| SessionEvent::OnPlaybackCapabilitiesChanged {
-                    playback_capabilities,
-                },
-            )
-        {
-            events.push(event);
-        }
-
-        if let Some(event) = self
-            .media_metadata
-            .clone()
-            .map(|media_metadata| SessionEvent::OnMetadataChanged { media_metadata })
-        {
-            events.push(event);
-        }
-
-        // We don't want to send an empty list of media images on first connection.
-        if !self.media_images.is_empty() {
-            events.push(SessionEvent::OnMediaImagesChanged {
-                media_images: self.media_images.values().map(clone_media_image).collect(),
-            });
-        }
-
-        events
-    }
-
-    fn update(&mut self, event: &SessionEvent) {
-        match event {
-            SessionEvent::OnPlaybackStatusChanged { ref playback_status } => {
-                self.playback_status.get_or_insert_with(|| clone_playback_status(playback_status));
-            }
-            SessionEvent::OnMetadataChanged { ref media_metadata } => {
-                self.media_metadata.get_or_insert_with(|| media_metadata.clone());
-            }
-            SessionEvent::OnPlaybackCapabilitiesChanged { ref playback_capabilities } => {
-                self.playback_capabilities
-                    .get_or_insert_with(|| clone_playback_capabilities(playback_capabilities));
-            }
-            SessionEvent::OnMediaImagesChanged { media_images } => {
-                for image in media_images {
-                    self.media_images
-                        .entry(image.image_type)
-                        .or_insert_with(|| clone_media_image(image));
-                }
-            }
-        }
-    }
-}
-
-fn is_active_status(event: &SessionEvent) -> bool {
-    match event {
-        SessionEvent::OnPlaybackStatusChanged {
-            playback_status: PlaybackStatus { playback_state: Some(PlaybackState::Playing), .. },
-            ..
-        } => true,
-        _ => false,
-    }
-}