blob: 3a4173f3ed2a930021c90125e8609f6694a5b579 [file] [log] [blame]
// 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 BLIMP_NET_PIPE_MANAGER_H_
#define BLIMP_NET_PIPE_MANAGER_H_
#include "base/macros.h"
#include "blimp/common/proto/blimp_message.pb.h"
#include "blimp/net/blimp_net_export.h"
namespace blimp {
class BlimpMessageProcessor;
class BLIMP_NET_EXPORT PipeManager {
public:
virtual ~PipeManager() {}
// Registers a message processor |incoming_processor| which will receive all
// messages of the |feature_case| specified. Returns a BlimpMessageProcessor
// object for sending messages of the given feature.
virtual std::unique_ptr<BlimpMessageProcessor> RegisterFeature(
BlimpMessage::FeatureCase feature_case,
BlimpMessageProcessor* incoming_processor) = 0;
};
} // namespace blimp
#endif // BLIMP_NET_PIPE_MANAGER_H_