Loading services/camera/libcameraservice/utils/RingBuffer.h→include/media/RingBuffer.h +0 −0 File moved. View file services/camera/libcameraservice/CameraService.h +1 −1 Original line number Diff line number Diff line Loading @@ -38,9 +38,9 @@ #include "CameraFlashlight.h" #include "common/CameraModule.h" #include "media/RingBuffer.h" #include "utils/AutoConditionLock.h" #include "utils/ClientManager.h" #include "utils/RingBuffer.h" #include <set> #include <string> Loading services/mediaresourcemanager/ResourceManagerService.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ status_t ResourceManagerService::dump(int fd, const Vector<String16>& /* args */ } } } result.append(" Logs:\n"); result.append(mServiceLog->toString()); result.append(" Events logs (most recent at top):\n"); result.append(mServiceLog->toString(" " /* linePrefix */)); write(fd, result.string(), result.size()); return OK; Loading services/mediaresourcemanager/ServiceLog.cpp +19 −10 Original line number Diff line number Diff line Loading @@ -27,28 +27,37 @@ static const size_t kDefaultMaxNum = 100; namespace android { ServiceLog::ServiceLog() : mMaxNum(kDefaultMaxNum) {} ServiceLog::ServiceLog(size_t maxNum) : mMaxNum(maxNum) {} ServiceLog::ServiceLog() : mMaxNum(kDefaultMaxNum), mLogs(mMaxNum) {} ServiceLog::ServiceLog(size_t maxNum) : mMaxNum(maxNum), mLogs(mMaxNum) {} void ServiceLog::add(const String8 &log) { Mutex::Autolock lock(mLock); time_t now = time(0); char buf[64]; strftime(buf, sizeof(buf), "%m-%d %T", localtime(&now)); String8 formattedLog = String8::format("%s %s", buf, log.string()); if (mLogs.add(formattedLog) == mMaxNum) { mLogs.removeAt(0); } mLogs.add(String8::format("%s %s", buf, log.string())); } String8 ServiceLog::toString() const { String8 ServiceLog::toString(const char *linePrefix) const { Mutex::Autolock lock(mLock); String8 result; for (size_t i = 0; i < mLogs.size(); ++i) { result.append(mLogs[i]); result.append("\n"); for (const auto& log : mLogs) { addLine(log.string(), linePrefix, &result); } if (mLogs.size() == mMaxNum) { addLine("...", linePrefix, &result); } else if (mLogs.size() == 0) { addLine("[no events yet]", linePrefix, &result); } return result; } void ServiceLog::addLine(const char *log, const char *prefix, String8 *result) const { if (prefix != NULL) { result->append(prefix); } result->append(log); result->append("\n"); } } // namespace android services/mediaresourcemanager/ServiceLog.h +7 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <utils/threads.h> #include <utils/Vector.h> #include "media/RingBuffer.h" namespace android { class ServiceLog : public RefBase { Loading @@ -31,12 +33,14 @@ public: ServiceLog(size_t maxNum); void add(const String8 &log); String8 toString() const; String8 toString(const char *linePrefix = NULL) const; private: int mMaxNum; size_t mMaxNum; mutable Mutex mLock; Vector<String8> mLogs; RingBuffer<String8> mLogs; void addLine(const char *log, const char *prefix, String8 *result) const; }; // ---------------------------------------------------------------------------- Loading Loading
services/camera/libcameraservice/utils/RingBuffer.h→include/media/RingBuffer.h +0 −0 File moved. View file
services/camera/libcameraservice/CameraService.h +1 −1 Original line number Diff line number Diff line Loading @@ -38,9 +38,9 @@ #include "CameraFlashlight.h" #include "common/CameraModule.h" #include "media/RingBuffer.h" #include "utils/AutoConditionLock.h" #include "utils/ClientManager.h" #include "utils/RingBuffer.h" #include <set> #include <string> Loading
services/mediaresourcemanager/ResourceManagerService.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ status_t ResourceManagerService::dump(int fd, const Vector<String16>& /* args */ } } } result.append(" Logs:\n"); result.append(mServiceLog->toString()); result.append(" Events logs (most recent at top):\n"); result.append(mServiceLog->toString(" " /* linePrefix */)); write(fd, result.string(), result.size()); return OK; Loading
services/mediaresourcemanager/ServiceLog.cpp +19 −10 Original line number Diff line number Diff line Loading @@ -27,28 +27,37 @@ static const size_t kDefaultMaxNum = 100; namespace android { ServiceLog::ServiceLog() : mMaxNum(kDefaultMaxNum) {} ServiceLog::ServiceLog(size_t maxNum) : mMaxNum(maxNum) {} ServiceLog::ServiceLog() : mMaxNum(kDefaultMaxNum), mLogs(mMaxNum) {} ServiceLog::ServiceLog(size_t maxNum) : mMaxNum(maxNum), mLogs(mMaxNum) {} void ServiceLog::add(const String8 &log) { Mutex::Autolock lock(mLock); time_t now = time(0); char buf[64]; strftime(buf, sizeof(buf), "%m-%d %T", localtime(&now)); String8 formattedLog = String8::format("%s %s", buf, log.string()); if (mLogs.add(formattedLog) == mMaxNum) { mLogs.removeAt(0); } mLogs.add(String8::format("%s %s", buf, log.string())); } String8 ServiceLog::toString() const { String8 ServiceLog::toString(const char *linePrefix) const { Mutex::Autolock lock(mLock); String8 result; for (size_t i = 0; i < mLogs.size(); ++i) { result.append(mLogs[i]); result.append("\n"); for (const auto& log : mLogs) { addLine(log.string(), linePrefix, &result); } if (mLogs.size() == mMaxNum) { addLine("...", linePrefix, &result); } else if (mLogs.size() == 0) { addLine("[no events yet]", linePrefix, &result); } return result; } void ServiceLog::addLine(const char *log, const char *prefix, String8 *result) const { if (prefix != NULL) { result->append(prefix); } result->append(log); result->append("\n"); } } // namespace android
services/mediaresourcemanager/ServiceLog.h +7 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <utils/threads.h> #include <utils/Vector.h> #include "media/RingBuffer.h" namespace android { class ServiceLog : public RefBase { Loading @@ -31,12 +33,14 @@ public: ServiceLog(size_t maxNum); void add(const String8 &log); String8 toString() const; String8 toString(const char *linePrefix = NULL) const; private: int mMaxNum; size_t mMaxNum; mutable Mutex mLock; Vector<String8> mLogs; RingBuffer<String8> mLogs; void addLine(const char *log, const char *prefix, String8 *result) const; }; // ---------------------------------------------------------------------------- Loading