summaryrefslogtreecommitdiff
path: root/cpp/src/slice2swift/Gen.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2swift/Gen.h')
-rw-r--r--cpp/src/slice2swift/Gen.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/cpp/src/slice2swift/Gen.h b/cpp/src/slice2swift/Gen.h
index 79e8eb62be4..414d5fb725c 100644
--- a/cpp/src/slice2swift/Gen.h
+++ b/cpp/src/slice2swift/Gen.h
@@ -38,6 +38,30 @@ private:
std::vector<std::string> _includePaths;
std::string _fileBase;
+ class ImportVisitor : public SwiftGenerator, public ParserVisitor
+ {
+ public:
+
+ ImportVisitor(IceUtilInternal::Output&);
+
+ virtual bool visitModuleStart(const ModulePtr&);
+ virtual bool visitClassDefStart(const ClassDefPtr&);
+ virtual bool visitStructStart(const StructPtr&);
+ virtual bool visitExceptionStart(const ExceptionPtr&);
+ virtual void visitSequence(const SequencePtr&);
+ virtual void visitDictionary(const DictionaryPtr&);
+
+ void writeImports();
+
+ private:
+
+ void addImport(const TypePtr&, const ContainedPtr&);
+ void addImport(const ContainedPtr&, const ContainedPtr&);
+
+ IceUtilInternal::Output& out;
+ std::vector< std::string> _imports;
+ };
+
class TypesVisitor : public SwiftGenerator, public ParserVisitor
{
@@ -54,6 +78,7 @@ private:
virtual void visitConst(const ConstPtr&);
private:
+
IceUtilInternal::Output& out;
};
};