| // Copyright (c) 2012 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 MTPD_FILE_ENTRY_H_ |
| #define MTPD_FILE_ENTRY_H_ |
| |
| #include <libmtp.h> |
| |
| #include <string> |
| #include <vector> |
| |
| #include <base/macros.h> |
| |
| #include "system_api/proto_bindings/mtp_file_entry.pb.h" |
| |
| namespace mtpd { |
| |
| class FileEntry { |
| public: |
| explicit FileEntry(const LIBMTP_file_struct& file); |
| FileEntry(); |
| ~FileEntry(); |
| |
| MtpFileEntry ToProtobuf() const; |
| std::vector<uint8_t> ToDBusFormat() const; |
| |
| static std::vector<uint8_t> EmptyFileEntriesToDBusFormat(); |
| static std::vector<uint8_t> FileEntriesToDBusFormat( |
| const std::vector<FileEntry>& entries); |
| |
| uint32_t item_id() const { return item_id_; } |
| uint32_t parent_id() const { return parent_id_; } |
| const std::string& file_name() const { return file_name_; } |
| uint64_t file_size() const { return file_size_; } |
| time_t modification_time() const { return modification_time_; } |
| LIBMTP_filetype_t file_type() const { return file_type_; } |
| |
| private: |
| uint32_t item_id_; |
| uint32_t parent_id_; |
| std::string file_name_; |
| uint64_t file_size_; |
| time_t modification_time_; |
| LIBMTP_filetype_t file_type_; |
| }; |
| |
| } // namespace mtpd |
| |
| #endif // MTPD_FILE_ENTRY_H_ |