blob: 3f93435b83ca988b1486966f2b9a44fa3c66ff61 [file] [log] [blame]
// Copyright 2013 The Flutter 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 SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_CONNECTION_COLLECTION_H_
#define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_CONNECTION_COLLECTION_H_
#include <cstdint>
#include <map>
#include <string>
namespace flutter {
/// Maintains a current integer assigned to a name (connections).
class ConnectionCollection {
public:
typedef int64_t Connection;
static const Connection kInvalidConnection = 0;
Connection AquireConnection(const std::string& name);
///\returns the name of the channel when cleanup is successful, otherwise
/// the empty string.
std::string CleanupConnection(Connection connection);
static bool IsValidConnection(Connection connection);
static Connection MakeErrorConnection(int errCode);
private:
std::map<std::string, Connection> connections_;
Connection counter_ = 0;
};
} // namespace flutter
#endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_CONNECTION_COLLECTION_H_