diff options
Diffstat (limited to 'remoting/protocol/session_config.h')
-rw-r--r-- | remoting/protocol/session_config.h | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/remoting/protocol/session_config.h b/remoting/protocol/session_config.h index b3fa90a..ae1ab5e 100644 --- a/remoting/protocol/session_config.h +++ b/remoting/protocol/session_config.h @@ -5,8 +5,8 @@ #ifndef REMOTING_PROTOCOL_SESSION_CONFIG_H_ #define REMOTING_PROTOCOL_SESSION_CONFIG_H_ +#include <list> #include <string> -#include <vector> #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" @@ -48,7 +48,7 @@ struct ChannelConfig { ChannelConfig(TransportType transport, int version, Codec codec); // operator== is overloaded so that std::find() works with - // std::vector<ChannelConfig>. + // std::list<ChannelConfig>. bool operator==(const ChannelConfig& b) const; TransportType transport; @@ -101,37 +101,42 @@ class SessionConfig { // because it allows one to specify multiple configurations for each channel. class CandidateSessionConfig { public: + static scoped_ptr<CandidateSessionConfig> CreateEmpty(); + static scoped_ptr<CandidateSessionConfig> CreateFrom( + const SessionConfig& config); + static scoped_ptr<CandidateSessionConfig> CreateDefault(); + ~CandidateSessionConfig(); - const std::vector<ChannelConfig>& control_configs() const { + const std::list<ChannelConfig>& control_configs() const { return control_configs_; } - std::vector<ChannelConfig>* mutable_control_configs() { + std::list<ChannelConfig>* mutable_control_configs() { return &control_configs_; } - const std::vector<ChannelConfig>& event_configs() const { + const std::list<ChannelConfig>& event_configs() const { return event_configs_; } - std::vector<ChannelConfig>* mutable_event_configs() { + std::list<ChannelConfig>* mutable_event_configs() { return &event_configs_; } - const std::vector<ChannelConfig>& video_configs() const { + const std::list<ChannelConfig>& video_configs() const { return video_configs_; } - std::vector<ChannelConfig>* mutable_video_configs() { + std::list<ChannelConfig>* mutable_video_configs() { return &video_configs_; } - const std::vector<ChannelConfig>& audio_configs() const { + const std::list<ChannelConfig>& audio_configs() const { return audio_configs_; } - std::vector<ChannelConfig>* mutable_audio_configs() { + std::list<ChannelConfig>* mutable_audio_configs() { return &audio_configs_; } @@ -153,15 +158,9 @@ class CandidateSessionConfig { scoped_ptr<CandidateSessionConfig> Clone() const; - static scoped_ptr<CandidateSessionConfig> CreateEmpty(); - static scoped_ptr<CandidateSessionConfig> CreateFrom( - const SessionConfig& config); - static scoped_ptr<CandidateSessionConfig> CreateDefault(); - - // Modifies |config| to disable specific features. - static void DisableAudioChannel(CandidateSessionConfig* config); - static void DisableVideoCodec(CandidateSessionConfig* config, - ChannelConfig::Codec codec); + // Helpers for enabling/disabling specific features. + void DisableAudioChannel(); + void EnableVideoCodec(ChannelConfig::Codec codec); private: CandidateSessionConfig(); @@ -169,16 +168,16 @@ class CandidateSessionConfig { CandidateSessionConfig& operator=(const CandidateSessionConfig& b); static bool SelectCommonChannelConfig( - const std::vector<ChannelConfig>& host_configs_, - const std::vector<ChannelConfig>& client_configs_, + const std::list<ChannelConfig>& host_configs_, + const std::list<ChannelConfig>& client_configs_, ChannelConfig* config); - static bool IsChannelConfigSupported(const std::vector<ChannelConfig>& vector, + static bool IsChannelConfigSupported(const std::list<ChannelConfig>& list, const ChannelConfig& value); - std::vector<ChannelConfig> control_configs_; - std::vector<ChannelConfig> event_configs_; - std::vector<ChannelConfig> video_configs_; - std::vector<ChannelConfig> audio_configs_; + std::list<ChannelConfig> control_configs_; + std::list<ChannelConfig> event_configs_; + std::list<ChannelConfig> video_configs_; + std::list<ChannelConfig> audio_configs_; }; } // namespace protocol |