Refine MediaAnalytics framework
Rework some interfaces to avoid unnecessary sp<> mechanisms;
document which side of caller/callee owns pointers afterwards.
Rework internal attribute representation, add support routines.
Bug: 33547720
Test: Boot, ran subset of CTS media tests
Change-Id: Id0d65bd6a847704dc98d38be9aa5e1ce63c20e1c
diff --git a/media/libmediaanalyticsservice/MediaAnalyticsService.h b/media/libmediaanalyticsservice/MediaAnalyticsService.h
index f9afeb2..3e2298f 100644
--- a/media/libmediaanalyticsservice/MediaAnalyticsService.h
+++ b/media/libmediaanalyticsservice/MediaAnalyticsService.h
@@ -36,11 +36,12 @@
public:
- virtual int64_t submit(sp<MediaAnalyticsItem> item, bool forcenew);
+ // on this side, caller surrenders ownership
+ virtual int64_t submit(MediaAnalyticsItem *item, bool forcenew);
- virtual List<sp<MediaAnalyticsItem>>
+ virtual List<MediaAnalyticsItem *>
*getMediaAnalyticsItemList(bool finished, int64_t ts);
- virtual List<sp<MediaAnalyticsItem>>
+ virtual List<MediaAnalyticsItem *>
*getMediaAnalyticsItemList(bool finished, int64_t ts, MediaAnalyticsItem::Key key);
@@ -68,24 +69,25 @@
int32_t mMaxRecords;
// input validation after arrival from client
- bool contentValid(sp<MediaAnalyticsItem>);
- bool rateLimited(sp<MediaAnalyticsItem>);
+ bool contentValid(MediaAnalyticsItem *);
+ bool rateLimited(MediaAnalyticsItem *);
// the ones that are still open
// (newest at front) since we keep looking for them
- List<sp<MediaAnalyticsItem>> *mOpen;
+ List<MediaAnalyticsItem *> *mOpen;
// the ones we've finalized
// (oldest at front) so it prints nicely for dumpsys
- List<sp<MediaAnalyticsItem>> *mFinalized;
+ List<MediaAnalyticsItem *> *mFinalized;
// searching within these queues: queue, key
- sp<MediaAnalyticsItem> findItem(List<sp<MediaAnalyticsItem>> *,
- sp<MediaAnalyticsItem>, bool removeit);
+ MediaAnalyticsItem *findItem(List<MediaAnalyticsItem *> *,
+ MediaAnalyticsItem *, bool removeit);
- void saveItem(sp<MediaAnalyticsItem>);
- void saveItem(List<sp<MediaAnalyticsItem>>*, sp<MediaAnalyticsItem>, int);
- void deleteItem(List<sp<MediaAnalyticsItem>>*, sp<MediaAnalyticsItem>);
+ void saveItem(MediaAnalyticsItem);
+ void saveItem(List<MediaAnalyticsItem *> *, MediaAnalyticsItem *, int);
+ void deleteItem(List<MediaAnalyticsItem *> *, MediaAnalyticsItem *);
- String8 dumpQueue(List<sp<MediaAnalyticsItem>> *);
+ String8 dumpQueue(List<MediaAnalyticsItem*> *);
+ String8 dumpQueue(List<MediaAnalyticsItem*> *, nsecs_t);
};