text: // 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.
  
  #include "flutter/shell/platform/darwin/ios/framework/Source/connection_collection.h"
  
  namespace flutter {
  ConnectionCollection::Connection ConnectionCollection::AquireConnection(
      const std::string& name) {
    Connection nextConnection = ++counter_;
    connections_[name] = nextConnection;
    return nextConnection;
  }
  
  std::string ConnectionCollection::CleanupConnection(
      ConnectionCollection::Connection connection) {
    if (connection > 0) {
      std::string channel;
      for (auto& keyValue : connections_) {
        if (keyValue.second == connection) {
          channel = keyValue.first;
          break;
        }
      }
      if (channel.length() > 0) {
        connections_.erase(channel);
        return channel;
      }
    }
    return "";
  }
  
  bool ConnectionCollection::IsValidConnection(
      ConnectionCollection::Connection connection) {
    return connection > 0;
  }
  
  ConnectionCollection::Connection ConnectionCollection::MakeErrorConnection(
      int errCode) {
    if (errCode < 0) {
      return -1 * errCode;
    }
    return errCode;
  }
  
  }  // namespace flutter
  