summaryrefslogtreecommitdiff
path: root/cpp/src/FreezeScript/TransformVisitor.h
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-01-24 00:20:04 +0000
committerMark Spruiell <mes@zeroc.com>2004-01-24 00:20:04 +0000
commit7dfbe2611e8b821d05386e13fd3d6cd7a80bbb3f (patch)
tree35c01de2a29205bf30dac738c74a850c88fd2e2b /cpp/src/FreezeScript/TransformVisitor.h
parentassert (diff)
downloadice-7dfbe2611e8b821d05386e13fd3d6cd7a80bbb3f.tar.bz2
ice-7dfbe2611e8b821d05386e13fd3d6cd7a80bbb3f.tar.xz
ice-7dfbe2611e8b821d05386e13fd3d6cd7a80bbb3f.zip
reorganizing transform code
Diffstat (limited to 'cpp/src/FreezeScript/TransformVisitor.h')
-rw-r--r--cpp/src/FreezeScript/TransformVisitor.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/cpp/src/FreezeScript/TransformVisitor.h b/cpp/src/FreezeScript/TransformVisitor.h
index 6abf97509d6..b3df9adbc1b 100644
--- a/cpp/src/FreezeScript/TransformVisitor.h
+++ b/cpp/src/FreezeScript/TransformVisitor.h
@@ -29,13 +29,23 @@ typedef std::map<const ObjectData*, ObjectDataPtr> ObjectDataMap;
//
// TransformInfo supplies information required by TransformVisitor.
//
-class TransformInfo
+class TransformInfo : public IceUtil::SimpleShared
{
public:
virtual ~TransformInfo() {}
//
+ // Get data factory.
+ //
+ virtual DataFactoryPtr getDataFactory() = 0;
+
+ //
+ // Get error reporter.
+ //
+ virtual ErrorReporterPtr getErrorReporter() = 0;
+
+ //
// Indicates whether the default transformation should be performed.
//
virtual bool doDefaultTransform(const Slice::TypePtr&) = 0;
@@ -66,6 +76,7 @@ public:
//
virtual ObjectDataMap& getObjectDataMap() = 0;
};
+typedef IceUtil::Handle<TransformInfo> TransformInfoPtr;
//
// TransformVisitor is used to visit a destination Data value and
@@ -75,8 +86,7 @@ class TransformVisitor : public DataVisitor
{
public:
- TransformVisitor(const DataPtr&, const DataFactoryPtr&, const ErrorReporterPtr&, TransformInfo*,
- const std::string& = std::string());
+ TransformVisitor(const DataPtr&, const TransformInfoPtr&, const std::string& = std::string());
virtual void visitBoolean(const BooleanDataPtr&);
virtual void visitInteger(const IntegerDataPtr&);
@@ -101,9 +111,7 @@ private:
void warning(const std::string&);
DataPtr _src;
- DataFactoryPtr _factory;
- ErrorReporterPtr _errorReporter;
- TransformInfo* _info;
+ TransformInfoPtr _info;
std::string _context; // Provides additional detail for use in warning messages.
};