| Index: components/enhanced_bookmarks/item_position.h
|
| diff --git a/components/enhanced_bookmarks/item_position.h b/components/enhanced_bookmarks/item_position.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ea04be59355ffa7f1ff09d267b51ca6804d39644
|
| --- /dev/null
|
| +++ b/components/enhanced_bookmarks/item_position.h
|
| @@ -0,0 +1,57 @@
|
| +// 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.
|
| +
|
| +#ifndef COMPONENTS_ENHANCED_BOOKMARKS_ITEM_POSITION_H_
|
| +#define COMPONENTS_ENHANCED_BOOKMARKS_ITEM_POSITION_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +namespace enhanced_bookmarks {
|
| +
|
| +// Convenience class for generating string based relative ordering between
|
| +// bookmark nodes.
|
| +class ItemPosition {
|
| + public:
|
| + ~ItemPosition();
|
| +
|
| + // Creates a position suitable to use as a starting point.
|
| + static ItemPosition CreateInitialPosition();
|
| +
|
| + // Creates positions relative to other positions.
|
| + static ItemPosition CreateBefore(const ItemPosition& other);
|
| + static ItemPosition CreateBetween(const ItemPosition& before,
|
| + const ItemPosition& after);
|
| + static ItemPosition CreateAfter(const ItemPosition& other);
|
| +
|
| + bool IsValid() const;
|
| +
|
| + // Returns a string representation of the position. The string representations
|
| + // of two position have the same ordering as the positions themselves when
|
| + // compared using ASCII order.
|
| + std::string ToString() const;
|
| +
|
| + // Comparison functions.
|
| + bool Equals(const ItemPosition& other) const;
|
| + bool LessThan(const ItemPosition& other) const;
|
| +
|
| + private:
|
| + typedef std::vector<unsigned char> PositionVector;
|
| +
|
| + ItemPosition();
|
| + explicit ItemPosition(const PositionVector& position);
|
| +
|
| + static PositionVector CreateBeforeImpl(const PositionVector& before,
|
| + size_t from_index);
|
| + static PositionVector CreateBetweenImpl(const PositionVector& before,
|
| + const PositionVector& after);
|
| + static PositionVector CreateAfterImpl(const PositionVector& after,
|
| + size_t from_index);
|
| +
|
| + PositionVector position_;
|
| +};
|
| +
|
| +} // namespace enhanced_bookmarks
|
| +
|
| +#endif // COMPONENTS_ENHANCED_BOOKMARKS_ITEM_POSITION_H_
|
|
|