Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9460)

Unified Diff: blimp/net/blimp_connection.h

Issue 1551583003: Implementation and fixes for Blimp client/engine E2E communication. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dtrainor-linux-cl1528243002
Patch Set: Addressed haibin's feedback, made an ObserverList for ConnectionErrorObserver Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: blimp/net/blimp_connection.h
diff --git a/blimp/net/blimp_connection.h b/blimp/net/blimp_connection.h
index 36128af42300df09ca881ad0309ef842fad20cff..ea729595cf9fe2aefa91d99f76bba597d9119664 100644
--- a/blimp/net/blimp_connection.h
+++ b/blimp/net/blimp_connection.h
@@ -7,27 +7,36 @@
#include "base/macros.h"
#include "base/memory/scoped_ptr.h"
+#include "base/observer_list.h"
#include "blimp/net/blimp_net_export.h"
+#include "blimp/net/connection_error_observer.h"
namespace blimp {
class BlimpMessageProcessor;
class BlimpMessagePump;
-class ConnectionErrorObserver;
class PacketReader;
class PacketWriter;
// Encapsulates the state and logic used to exchange BlimpMessages over
// a network connection.
-class BLIMP_NET_EXPORT BlimpConnection {
+class BLIMP_NET_EXPORT BlimpConnection : public ConnectionErrorObserver {
public:
BlimpConnection(scoped_ptr<PacketReader> reader,
scoped_ptr<PacketWriter> writer);
- virtual ~BlimpConnection();
+ ~BlimpConnection() override;
- // Lets |observer| know when the network connection encounters an error.
- virtual void SetConnectionErrorObserver(ConnectionErrorObserver* observer);
+ // Adds |observer| to the connection's error observer list.
+ virtual void AddConnectionErrorObserver(ConnectionErrorObserver* observer);
+
+ // Removes all error observers from the observer list.
+ // Should be used to suppress error output in cases where an expected error
+ // code should be suppressed, e.g. on graceful disconnects.
+ virtual void ClearConnectionErrorObservers();
haibinlu 2016/01/04 19:45:45 per offline discussion, this can be removed.
Kevin M 2016/01/04 20:42:13 Removed this and relocated error observers to the
+
+ // Removes |observer| from the connection's error observer list.
+ virtual void RemoveConnectionErrorObserver(ConnectionErrorObserver* observer);
// Sets the processor which will take incoming messages for this connection.
// Can be set multiple times, but previously set processors are discarded.
@@ -37,10 +46,14 @@ class BLIMP_NET_EXPORT BlimpConnection {
// Gets a processor for BrowserSession->BlimpConnection message routing.
virtual BlimpMessageProcessor* GetOutgoingMessageProcessor();
+ // ConnectionErrorObserver implementation.
+ void OnConnectionError(int error) override;
haibinlu 2016/01/04 19:45:45 move this to private
Kevin M 2016/01/04 20:42:13 Done.
+
protected:
BlimpConnection();
private:
+ base::ObserverList<ConnectionErrorObserver> error_observers_;
scoped_ptr<PacketReader> reader_;
scoped_ptr<BlimpMessagePump> message_pump_;
scoped_ptr<PacketWriter> writer_;

Powered by Google App Engine
This is Rietveld 408576698