| // Copyright 2017 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 MOJO_CORE_CONNECTION_PARAMS_H_ |
| #define MOJO_CORE_CONNECTION_PARAMS_H_ |
| |
| #include "base/macros.h" |
| #include "build/build_config.h" |
| #include "mojo/core/system_impl_export.h" |
| #include "mojo/public/cpp/platform/platform_channel_endpoint.h" |
| #include "mojo/public/cpp/platform/platform_channel_server_endpoint.h" |
| |
| namespace mojo { |
| namespace core { |
| |
| // A set of parameters used when establishing a connection to another process. |
| class MOJO_SYSTEM_IMPL_EXPORT ConnectionParams { |
| public: |
| ConnectionParams(); |
| explicit ConnectionParams(PlatformChannelEndpoint endpoint); |
| explicit ConnectionParams(PlatformChannelServerEndpoint server_endpoint); |
| ConnectionParams(ConnectionParams&&); |
| ~ConnectionParams(); |
| |
| ConnectionParams& operator=(ConnectionParams&&); |
| |
| const PlatformChannelEndpoint& endpoint() const { return endpoint_; } |
| const PlatformChannelServerEndpoint& server_endpoint() const { |
| return server_endpoint_; |
| } |
| |
| PlatformChannelEndpoint TakeEndpoint() { return std::move(endpoint_); } |
| |
| PlatformChannelServerEndpoint TakeServerEndpoint() { |
| return std::move(server_endpoint_); |
| } |
| |
| private: |
| PlatformChannelEndpoint endpoint_; |
| PlatformChannelServerEndpoint server_endpoint_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ConnectionParams); |
| }; |
| |
| } // namespace core |
| } // namespace mojo |
| |
| #endif // MOJO_CORE_CONNECTION_PARAMS_H_ |