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..185210d19fb707df67bfba8dfcbbcbedace23ea6 |
| --- /dev/null |
| +++ b/remoting/protocol/session_plugin.h |
| @@ -0,0 +1,46 @@ |
| +// 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. |
|
Sergey Ulanov
2016/12/23 00:14:52
Suggest rewording:
// Interface for Session plugin
Hzj_jie
2016/12/24 00:09:55
Done.
|
| +class SessionPlugin { |
| + public: |
| + SessionPlugin(); |
| + virtual ~SessionPlugin(); |
| + |
| + // Returns an XmlElement if the SessionPlugin requires to attach some data |
| + // into the outgoing message. This function will be called after other |
| + // components have finished generating messages, and have set the state and |
| + // action. So |state| is the current session state, |action| is the current |
| + // ActionType in message. |
| + virtual std::unique_ptr<buzz::XmlElement> OnOutgoing( |
|
Sergey Ulanov
2016/12/23 00:14:52
Maybe call it GetNextAttachment() or GetNextMessag
Hzj_jie
2016/12/24 00:09:55
Done.
|
| + Session::State state, |
| + JingleMessage::ActionType action) = 0; |
| + |
| + // 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 OnIncoming(Session::State state, |
|
Sergey Ulanov
2016/12/23 00:14:52
OnIncomingMessage
Hzj_jie
2016/12/24 00:09:55
Done.
|
| + JingleMessage::ActionType action, |
| + const buzz::XmlElement* attachments) = 0; |
| +}; |
| + |
| +} // namespace protocol |
| +} // namespace remoting |
| + |
| +#endif // REMOTING_PROTOCOL_SESSION_PLUGIN_H_ |