11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass Device(object):
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  """ A base class of devices.
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  A device instance contains all the necessary information for constructing
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  a platform backend object for remote platforms.
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  Attributes:
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    name: A device name string in human-understandable term.
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    guid: A unique id of the device. Subclass of device must specify this
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      id properly so that device objects to a same actual device must have same
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      guid.
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    """
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  def __init__(self, name, guid):
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    self._name = name
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    self._guid = guid
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  @property
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  def name(self):
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    return self._name
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  @property
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  def guid(self):
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    return self._guid
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  @classmethod
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  def GetAllConnectedDevices(cls):
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    raise NotImplementedError()
33