Index: components/proximity_auth/logging/log_buffer.h |
diff --git a/components/proximity_auth/logging/log_buffer.h b/components/proximity_auth/logging/log_buffer.h |
index 3fefd68b24cda61f5d0ed22772536537dd766243..dd554bc497d438fc2d218af6d0d242d9aa226f0c 100644 |
--- a/components/proximity_auth/logging/log_buffer.h |
+++ b/components/proximity_auth/logging/log_buffer.h |
@@ -9,6 +9,7 @@ |
#include "base/logging.h" |
#include "base/macros.h" |
+#include "base/observer_list.h" |
#include "base/time/time.h" |
namespace proximity_auth { |
@@ -33,12 +34,25 @@ class LogBuffer { |
logging::LogSeverity severity); |
}; |
+ class Observer { |
+ public: |
+ // Called when a new message is added to the log buffer. |
+ virtual void OnLogMessageAdded(const LogMessage& log_message) = 0; |
+ |
+ // Called when all messages in the log buffer are cleared. |
+ virtual void OnLogBufferCleared() = 0; |
+ }; |
+ |
LogBuffer(); |
~LogBuffer(); |
// Returns the global instance. |
static LogBuffer* GetInstance(); |
+ // Adds and removes log buffer observers. |
+ void AddObserver(Observer* observer); |
+ void RemoveObserver(Observer* observer); |
+ |
// Adds a new log message to the buffer. If the number of log messages exceeds |
// the maximum, then the earliest added log will be removed. |
void AddLogMessage(const LogMessage& log_message); |
@@ -56,6 +70,9 @@ class LogBuffer { |
// The messages currently in the buffer. |
std::list<LogMessage> log_messages_; |
+ // List of observers. |
+ ObserverList<Observer> observers_; |
+ |
DISALLOW_COPY_AND_ASSIGN(LogBuffer); |
}; |