text: // Copyright 2017 The Fuchsia 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 GARNET_BIN_UI_SKETCHY_RESOURCES_IMPORT_NODE_H_
  #define GARNET_BIN_UI_SKETCHY_RESOURCES_IMPORT_NODE_H_
  
  #include "garnet/bin/ui/sketchy/resources/resource.h"
  #include "src/lib/fxl/memory/ref_counted.h"
  #include "lib/ui/scenic/cpp/resources.h"
  #include "lib/ui/scenic/cpp/session.h"
  
  namespace sketchy_service {
  
  class StrokeGroup;
  using StrokeGroupPtr = fxl::RefPtr<StrokeGroup>;
  
  // Wrapper of scenic::ImportNode. To import a node, client should
  // export it as token, and this class takes that token, so that it functions
  // as if it were the exported node.
  class ImportNode final : public Resource {
   public:
    static const ResourceTypeInfo kTypeInfo;
    const ResourceTypeInfo& type_info() const override { return kTypeInfo; }
  
    ImportNode(scenic::Session* session, zx::eventpair token);
    void AddChild(const StrokeGroupPtr& stroke_group);
  
    // Resource ID shared with scene manager.
    uint32_t id() { return node_.id(); }
  
   private:
    scenic::ImportNode node_;
  
    FXL_DISALLOW_COPY_AND_ASSIGN(ImportNode);
  };
  
  }  // namespace sketchy_service
  
  #endif  // GARNET_BIN_UI_SKETCHY_RESOURCES_IMPORT_NODE_H_
  