diff options
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/services/include/android/os/DropBoxManager.h | 12 | ||||
| -rw-r--r-- | libs/services/src/os/DropBoxManager.cpp | 34 |
2 files changed, 44 insertions, 2 deletions
diff --git a/libs/services/include/android/os/DropBoxManager.h b/libs/services/include/android/os/DropBoxManager.h index 8717178bb7d6..2ed203d9f865 100644 --- a/libs/services/include/android/os/DropBoxManager.h +++ b/libs/services/include/android/os/DropBoxManager.h @@ -57,7 +57,7 @@ public: // and a handle will be passed to the system process, so no additional permissions // are required from the system process. Returns NULL if the file can't be opened. Status addFile(const String16& tag, const string& filename, int flags); - + class Entry : public virtual RefBase, public Parcelable { public: Entry(); @@ -65,7 +65,12 @@ public: virtual status_t writeToParcel(Parcel* out) const; virtual status_t readFromParcel(const Parcel* in); - + + const vector<uint8_t>& getData() const; + const unique_fd& getFd() const; + int32_t getFlags() const; + int64_t getTimestamp() const; + private: Entry(const String16& tag, int32_t flags); Entry(const String16& tag, int32_t flags, int fd); @@ -80,6 +85,9 @@ public: friend class DropBoxManager; }; + // Get the next entry from the drop box after the specified time. + Status getNextEntry(const String16& tag, long msec, Entry* entry); + private: enum { HAS_BYTE_ARRAY = 8 diff --git a/libs/services/src/os/DropBoxManager.cpp b/libs/services/src/os/DropBoxManager.cpp index bbb45f022a87..1c760e850e4f 100644 --- a/libs/services/src/os/DropBoxManager.cpp +++ b/libs/services/src/os/DropBoxManager.cpp @@ -143,6 +143,29 @@ DropBoxManager::Entry::readFromParcel(const Parcel* in) return NO_ERROR; } +const vector<uint8_t>& +DropBoxManager::Entry::getData() const +{ + return mData; +} + +const unique_fd& +DropBoxManager::Entry::getFd() const +{ + return mFd; +} + +int32_t +DropBoxManager::Entry::getFlags() const +{ + return mFlags; +} + +int64_t +DropBoxManager::Entry::getTimestamp() const +{ + return mTimeMillis; +} DropBoxManager::DropBoxManager() { @@ -195,5 +218,16 @@ DropBoxManager::add(const Entry& entry) return service->add(entry); } +Status +DropBoxManager::getNextEntry(const String16& tag, long msec, Entry* entry) +{ + sp<IDropBoxManagerService> service = interface_cast<IDropBoxManagerService>( + defaultServiceManager()->getService(android::String16("dropbox"))); + if (service == NULL) { + return Status::fromExceptionCode(Status::EX_NULL_POINTER, "can't find dropbox service"); + } + return service->getNextEntry(tag, msec, entry); +} + }} // namespace android::os |