Chromium Code Reviews| Index: remoting/protocol/session_plugin.h |
| diff --git a/remoting/protocol/session_plugin.h b/remoting/protocol/session_plugin.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..00797139a6527a068fab8291f344e76093142d95 |
| --- /dev/null |
| +++ b/remoting/protocol/session_plugin.h |
| @@ -0,0 +1,52 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef REMOTING_PROTOCOL_SESSION_PLUGIN_H_ |
| +#define REMOTING_PROTOCOL_SESSION_PLUGIN_H_ |
| + |
| +#include <memory> |
| + |
| +#include "base/callback.h" |
| +#include "remoting/protocol/jingle_messages.h" |
| +#include "remoting/protocol/session.h" |
| +#include "third_party/webrtc/libjingle/xmllite/xmlelement.h" |
| + |
| +namespace remoting { |
| +namespace protocol { |
| + |
| +// An interface to attach data on an outgoing message or handle an incoming of |
| +// message. The plugin data are designed to be optional, so this class won't |
| +// impact a session generation. |
| +class SessionPlugin { |
| + public: |
| + SessionPlugin(); |
| + virtual ~SessionPlugin(); |
| + |
| + // Attachs messages in |attachments|. This function will be called after other |
|
Jamie
2016/12/20 23:29:21
s/Attachs/Attaches/
Hzj_jie
2016/12/21 01:54:44
Done.
|
| + // components have finished generating messages, and set the state and action. |
|
Jamie
2016/12/20 23:29:21
s/and set/and have set/
Hzj_jie
2016/12/21 01:54:44
Done.
|
| + // So |state| is the current session state, |action| is the current ActionType |
| + // in message. |
| + virtual void OnSending(Session::State state, |
|
Jamie
2016/12/20 23:29:21
I think On[Incoming|Outgoing]Message would be bett
Hzj_jie
2016/12/21 01:54:44
Done.
|
| + JingleMessage::ActionType action, |
| + std::unique_ptr<buzz::XmlElement>* attachments) = 0; |
|
Jamie
2016/12/20 23:29:21
Passing a pointer to a unique_ptr is a bit strange
Hzj_jie
2016/12/21 01:54:44
This function is a little bit different than Execu
|
| + |
| + // Handles messages in |attachments|. This function will be called before |
| + // other components have handled the incoming message. So |state| is the last |
| + // session state, |action| is the current ActionType in message. |
| + virtual void OnReceiving( |
| + Session::State state, |
| + JingleMessage::ActionType action, |
| + const std::unique_ptr<buzz::XmlElement>& attachments) = 0; |
| + |
| + // Finds "attachments" tag from |tag|, returns null if the tag is not found. |
| + static const buzz::XmlElement* FindAttachments(const buzz::XmlElement& tag); |
| + |
| + // Creates a new "attachments" tag. |
| + static std::unique_ptr<buzz::XmlElement> NewAttachments(); |
| +}; |
| + |
| +} // namespace protocol |
| +} // namespace remoting |
| + |
| +#endif // REMOTING_PROTOCOL_SESSION_PLUGIN_H_ |