// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "shill/mock_virtual_device.h"

namespace shill {

MockVirtualDevice::MockVirtualDevice(ControlInterface* control,
                                     EventDispatcher* dispatcher,
                                     Metrics* metrics,
                                     Manager* manager,
                                     const std::string& link_name,
                                     int interface_index,
                                     Technology::Identifier technology)
    : VirtualDevice(control, dispatcher, metrics, manager, link_name,
                    interface_index, technology) {}

MockVirtualDevice::~MockVirtualDevice() {}

}  // namespace shill
