FDO API Reference Feature Data Objects

GeometryStreamFactory.h

Go to the documentation of this file.
00001 #ifndef _GEOMETRYSTREAMFACTORY_H_
00002 #define _GEOMETRYSTREAMFACTORY_H_
00003 
00004 //
00005 // Copyright (C) 2004-2006  Autodesk, Inc.
00006 // 
00007 // This library is free software; you can redistribute it and/or
00008 // modify it under the terms of version 2.1 of the GNU Lesser
00009 // General Public License as published by the Free Software Foundation.
00010 // 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 // 
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00019 //
00020 
00021 
00022 
00023 #ifdef _WIN32
00024 #pragma once
00025 #endif
00026 
00027 #include <FdoCommon.h>
00028 #include <Geometry/GeometryStream/GeometryStreamReader.h>
00029 #include <Geometry/GeometryStream/GeometryStreamWriter.h>
00030 
00031 /// \brief
00032 /// The FdoGeometryStreamFactory class is a factory (abstract) for classes dealing with serialized geometric data.
00033 /// The data source is defined by the implementation.
00034 /// This is a helper type and does not inherit from FdoIGeometry.
00035 class FdoGeometryStreamFactory /* Abstract */ : public FdoIDisposable
00036 {
00037 public:
00038 
00039     /// \brief
00040     /// Gets a stream reader object for serialized Geometry.
00041     /// 
00042     /// \param byteArray 
00043     /// Input array of Geometry data in FGF format.
00044     /// 
00045     /// \return
00046     /// Returns the reader
00047     /// 
00048     FDO_GEOM_API virtual FdoGeometryStreamReader* CreateGeometryStreamReader(
00049         FdoByteArray * byteArray) = 0;
00050 
00051     /// \brief
00052     /// Gets a stream reader object for serialized Geometry.
00053     /// 
00054     /// \param data 
00055     /// Input array data
00056     /// \param count 
00057     /// Input number of bytes in the array
00058     /// The caller must guarantee the validity of the array for the lifetime
00059     /// of the associated geometry stream.
00060     /// 
00061     /// \return
00062     /// Returns the reader
00063     /// 
00064     FDO_GEOM_API virtual FdoGeometryStreamReader* CreateGeometryStreamReader(
00065         const FdoByte * data,
00066         FdoInt32 count) = 0;
00067 
00068     /// \brief
00069     /// Gets a stream writer object for serialized Geometry in FGF format.
00070     /// 
00071     /// \return
00072     /// Returns the writer
00073     /// 
00074     FDO_GEOM_API virtual FdoGeometryStreamWriter* CreateGeometryStreamWriter() = 0;
00075 
00076 protected:
00077     /// Constructor and destructor
00078 
00079     /// \brief
00080     /// Constructs a default instance of a FdoGeometryStreamFactory.
00081     /// 
00082     /// \return
00083     /// Returns nothing
00084     /// 
00085     FDO_GEOM_API FdoGeometryStreamFactory() {};
00086 
00087     /// \brief
00088     /// Default destructor.
00089     /// 
00090     /// \return
00091     /// Returns nothing
00092     /// 
00093     FDO_GEOM_API virtual ~FdoGeometryStreamFactory() {};
00094 };
00095 #endif
00096 
00097 

Comments or suggestions? Send us feedback.