00001 /*
00002 * Copyright (C) 2004-2006 Autodesk, Inc.
00003 *
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 *
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 * Lesser General Public License for more details.
00012 *
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 *
00017 */
00018
00019 #pragma once
00020
00021 class FdoRdbmsOvReadOnlyPropertyDefinitionCollection;
00022
00023 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00024 public __gc class OvPropertyDefinition;
00025 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00026
00027 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00028
00029 /// <summary>
00030 /// OvReadOnlyPropertyDefinitionCollection is a collection of name-value pairs.
00031 /// </summary>
00032 [System::Reflection::DefaultMemberAttribute("RealTypeItem")]
00033 public __sealed __gc class OvReadOnlyPropertyDefinitionCollection : public NAMESPACE_OSGEO_RUNTIME::Disposable, public System::Collections::ICollection, public System::Collections::IEnumerable
00034 {
00035 private:
00036 /// <summary>
00037 /// nested class defined to provide Enumerator.
00038 /// </summary>
00039 __gc class Enumerator : public System::Collections::IEnumerator
00040 {
00041 private:
00042 OvReadOnlyPropertyDefinitionCollection* m_pCol;
00043 System::Int32 m_nIdx;
00044
00045 public:
00046 Enumerator(OvReadOnlyPropertyDefinitionCollection* elements) : m_pCol(elements), m_nIdx(-1)
00047 {
00048
00049 }
00050
00051 __property System::Object* get_Current();
00052
00053 System::Boolean MoveNext();
00054
00055 System::Void Reset();
00056 };
00057
00058 public private:
00059 OvReadOnlyPropertyDefinitionCollection(System::IntPtr unmanaged, System::Boolean autoDelete);
00060
00061 inline FdoRdbmsOvReadOnlyPropertyDefinitionCollection* GetImpObj();
00062
00063 private:
00064 // System::Collections::ICollection interfaces
00065 System::Void System::Collections::ICollection::CopyTo(System::Array* array,System::Int32 index);
00066
00067 __property System::Object* System::Collections::ICollection::get_SyncRoot();
00068
00069 __property System::Boolean System::Collections::ICollection::get_IsSynchronized();
00070
00071 protected:
00072 System::Void ReleaseUnmanagedObject();
00073
00074 public:
00075 /// <summary>
00076 /// Gets the count of items in collection.
00077 /// </summary>
00078 __property System::Int32 get_Count(System::Void);
00079
00080 /// <summary>
00081 /// Gets an enumerator that can iterate through a collection.
00082 /// </summary>
00083 __sealed System::Collections::IEnumerator* GetEnumerator(System::Void);
00084
00085 /// <summary>
00086 /// Determines the index of a specific OvPropertyDefinition object.
00087 /// </summary>
00088 /// <param name="value">
00089 /// Input the OvPropertyDefinition object to locate in the collection.
00090 /// </param>
00091 /// <returns>
00092 /// The index of value if found in the collection; otherwise, -1.
00093 /// </returns>
00094 System::Int32 IndexOf(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPropertyDefinition* value);
00095
00096 /// <summary>
00097 /// Determines whether the collection contains a specific OvPropertyDefinition object.
00098 /// </summary>
00099 /// <param name="value">
00100 /// Input The OvPropertyDefinition object to search in the collection.
00101 /// </param>
00102 /// <returns>
00103 /// Returns true if the value is found in the collection; otherwise, false.
00104 /// </returns>
00105 System::Boolean Contains(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPropertyDefinition* value);
00106
00107 /// <summary>
00108 /// Copies the elements of the collection to an array.
00109 /// </summary>
00110 /// <param name="array">
00111 /// Output the one-dimensional Array that is the destination of the elements copied from this collection.
00112 /// </param>
00113 /// <param name="startAt">
00114 /// Input an integer that represents the index in array at which copying begins.
00115 /// </param>
00116 System::Void CopyTo(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPropertyDefinition* array[],System::Int32 index);
00117
00118 //this is a hedious workaround for a bug in VS2002.
00119 /// <summary>
00120 /// Gets or sets a OvPropertyDefinition in the collection.
00121 /// </summary>
00122 /// <param name="index">
00123 /// Input index of the OvPropertyDefinition to retrieve or set (System::Int32).
00124 /// </param>
00125 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPropertyDefinition* get_RealTypeItem(System::Int32 index);
00126
00127 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPropertyDefinition* get_RealTypeItem(System::String* index);
00128 };
00129
00130 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00131