blob: 4e7a65b75a0513bc6cbed5f9feed52f780f95bf4 [file] [log] [blame]
// Copyright (c) 2011 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.
#ifndef CROS_DISKS_MOUNT_OPTIONS_H_
#define CROS_DISKS_MOUNT_OPTIONS_H_
#include <string>
#include <utility>
#include <vector>
#include <base/strings/string_piece.h>
#include "cros-disks/platform.h"
namespace cros_disks {
// Checks if after applying all the "ro and "rw" options
// in order, the resulting mount should be read-only.
bool IsReadOnlyMount(const std::vector<std::string>& options);
// Finds the last value assigned to a parameter named |name|. Returns true if
// found.
bool GetParamValue(const std::vector<std::string>& params,
base::StringPiece name,
std::string* value) WARN_UNUSED_RESULT;
// Adds a '|name|=|value|' parameter to the container.
void SetParamValue(std::vector<std::string>* params,
base::StringPiece name,
base::StringPiece value);
// Returns whether params contain the exact param value.
bool HasExactParam(const std::vector<std::string>& params,
base::StringPiece param);
// Removes all elements equal to the provided and returns the count of
// removed elements.
size_t RemoveParamsEqualTo(std::vector<std::string>* params,
base::StringPiece param);
// Removes all elements like '|name|=|value|' with the name equal to the
// provided and returns the count of removed elements.
size_t RemoveParamsWithSameName(std::vector<std::string>* params,
base::StringPiece name);
// Joins params into a comma separated string. Returns false if comma is
// encountered in an element.
bool JoinParamsIntoOptions(const std::vector<std::string>& params,
std::string* out) WARN_UNUSED_RESULT;
} // namespace cros_disks
#endif // CROS_DISKS_MOUNT_OPTIONS_H_