summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/services/include/android/os/DropBoxManager.h12
-rw-r--r--libs/services/src/os/DropBoxManager.cpp34
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