// Copyright 2014 The Chromium 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 "chrome/browser/drive/drive_service_interface.h"

namespace drive {

DriveServiceInterface::AddNewDirectoryOptions::AddNewDirectoryOptions() {
}

DriveServiceInterface::AddNewDirectoryOptions::~AddNewDirectoryOptions() {
}

DriveServiceInterface::InitiateUploadNewFileOptions::
    InitiateUploadNewFileOptions() {
}

DriveServiceInterface::InitiateUploadNewFileOptions::
    ~InitiateUploadNewFileOptions() {
}

DriveServiceInterface::InitiateUploadExistingFileOptions::
    InitiateUploadExistingFileOptions() {
}

DriveServiceInterface::InitiateUploadExistingFileOptions::
    ~InitiateUploadExistingFileOptions() {
}

}  // namespace drive
