blob: 5c65e1d64661b156854570fb040e3cf66b8f2092 [file] [log] [blame]
Lei Zhang91af91d2012-08-03 11:02:20 -07001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MTPD_FILE_ENTRY_H_
6#define MTPD_FILE_ENTRY_H_
7
8#include <libmtp.h>
9
Lei Zhang91af91d2012-08-03 11:02:20 -070010#include <string>
11#include <vector>
12
Alex Vakulenkof695ea02016-01-22 19:20:14 -080013#include <base/macros.h>
Lei Zhang91af91d2012-08-03 11:02:20 -070014
Eric Caruso0076fa72017-08-21 15:31:19 -070015#include "system_api/proto_bindings/mtp_file_entry.pb.h"
Lei Zhang91af91d2012-08-03 11:02:20 -070016
Lei Zhangfa9e19a2012-08-31 14:36:59 -070017namespace mtpd {
Lei Zhang91af91d2012-08-03 11:02:20 -070018
19class FileEntry {
20 public:
21 explicit FileEntry(const LIBMTP_file_struct& file);
Lei Zhangfa9e19a2012-08-31 14:36:59 -070022 FileEntry();
Lei Zhang91af91d2012-08-03 11:02:20 -070023 ~FileEntry();
24
Lei Zhangfa9e19a2012-08-31 14:36:59 -070025 MtpFileEntry ToProtobuf() const;
Lei Zhang6cd0bfc2012-09-06 20:18:26 -070026 std::vector<uint8_t> ToDBusFormat() const;
Lei Zhangfa9e19a2012-08-31 14:36:59 -070027
Lei Zhang6cd0bfc2012-09-06 20:18:26 -070028 static std::vector<uint8_t> EmptyFileEntriesToDBusFormat();
29 static std::vector<uint8_t> FileEntriesToDBusFormat(
30 std::vector<FileEntry>& entries);
Lei Zhang91af91d2012-08-03 11:02:20 -070031
Lei Zhang12f55c22012-09-05 14:54:48 -070032 uint32_t item_id() const { return item_id_; }
33 uint32_t parent_id() const { return parent_id_; }
34 const std::string& file_name() const { return file_name_; }
35 uint64_t file_size() const { return file_size_; }
36 time_t modification_time() const { return modification_time_; }
37 LIBMTP_filetype_t file_type() const { return file_type_; }
38
Lei Zhang91af91d2012-08-03 11:02:20 -070039 private:
40 uint32_t item_id_;
41 uint32_t parent_id_;
42 std::string file_name_;
43 uint64_t file_size_;
Lei Zhangfa9e19a2012-08-31 14:36:59 -070044 time_t modification_time_;
Lei Zhang91af91d2012-08-03 11:02:20 -070045 LIBMTP_filetype_t file_type_;
46};
47
48} // namespace mtpd
49
50#endif // MTPD_FILE_ENTRY_H_