blob: cf6d81afcb165c3b0873280443cb71ca22e8c07c [file] [log] [blame]
// 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_COPY_PROGRESS_INTERFACE_H_
#define SMBPROVIDER_COPY_PROGRESS_INTERFACE_H_
#include <string>
namespace smbprovider {
// Keeps track of an in-progress copy operation.
//
// A copy is started by constructing a CopyProgress (either file or recursive)
// and calling StartCopy(). The copy is continued by calling ContinueCopy().
class CopyProgressInterface {
public:
virtual ~CopyProgressInterface() = default;
// Starts a copy of |source| to |target|. Returns true if ContinueCopy must be
// called again. Returns false if the copy is complete or has failed. |error|
// is 0 if the copy completed successfully, and errno otherwise.
virtual bool StartCopy(const std::string& source,
const std::string& target,
int32_t* error) = 0;
// Continues the copy. Returns true if ContinueCopy must be called again.
// Returns false if the copy is complete or has failed. |error| is 0 if the
// copy completed successfully, and errno otherwise.
virtual bool ContinueCopy(int32_t* error) = 0;
};
} // namespace smbprovider
#endif // SMBPROVIDER_COPY_PROGRESS_INTERFACE_H_