// 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.

#ifndef SMBPROVIDER_ITERATOR_SHARE_ITERATOR_H_
#define SMBPROVIDER_ITERATOR_SHARE_ITERATOR_H_

#include "smbprovider/iterator/directory_iterator.h"
#include "smbprovider/smbprovider_helper.h"

namespace smbprovider {

// ShareIterator is an implementation of BaseDirectoryIterator that only
// iterates through shares.
class ShareIterator : public BaseDirectoryIterator {
  using BaseDirectoryIterator::BaseDirectoryIterator;

 public:
  ShareIterator(ShareIterator&& other) = default;

 protected:
  bool ShouldIncludeEntryType(uint32_t smbc_type) const override {
    return IsSmbShare(smbc_type);
  }

  DISALLOW_COPY_AND_ASSIGN(ShareIterator);
};

}  // namespace smbprovider

#endif  // SMBPROVIDER_ITERATOR_SHARE_ITERATOR_H_
