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 FdoMySQLOvClassCollection;
00022
00023 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00024 public __gc class OvClassCollection;
00025 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00026
00027 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL
00028
00029 public __gc class OvClassDefinition;
00030
00031 /// <summary>
00032 /// OvClassCollection is a collection of name-value pairs.
00033 /// </summary>
00034 [System::Reflection::DefaultMemberAttribute("RealTypeItem")]
00035 public __sealed __gc class OvClassCollection : public NAMESPACE_OSGEO_RUNTIME::Disposable, public System::Collections::IList
00036 {
00037 private:
00038 /// <summary>
00039 /// nested class defined to provide Enumerator.
00040 /// </summary>
00041 __gc class Enumerator : public System::Collections::IEnumerator
00042 {
00043 private:
00044 OvClassCollection* m_pCol;
00045 System::Int32 m_nIdx;
00046
00047 public:
00048 Enumerator(OvClassCollection* elements) : m_pCol(elements), m_nIdx(-1)
00049 {
00050
00051 }
00052
00053 __property System::Object* get_Current();
00054
00055 System::Boolean MoveNext();
00056
00057 System::Void Reset();
00058 };
00059
00060 public private:
00061 OvClassCollection(System::IntPtr unmanaged, System::Boolean autoDelete);
00062
00063 inline FdoMySQLOvClassCollection* GetImpObj();
00064
00065 private:
00066 // System::Collections::ICollection interfaces
00067 System::Void System::Collections::ICollection::CopyTo(System::Array* array,System::Int32 index);
00068
00069 __property System::Object* System::Collections::ICollection::get_SyncRoot();
00070
00071 __property System::Boolean System::Collections::ICollection::get_IsSynchronized();
00072
00073 //System::Collections::IList interfaces
00074 __property System::Boolean System::Collections::IList::get_IsFixedSize();
00075
00076 __property System::Boolean System::Collections::IList::get_IsReadOnly();
00077
00078 System::Int32 System::Collections::IList::Add(Object* value);
00079
00080 System::Boolean System::Collections::IList::Contains(Object* value);
00081
00082 System::Int32 System::Collections::IList::IndexOf(Object* value);
00083
00084 System::Void System::Collections::IList::Insert(System::Int32 index, Object* value);
00085
00086 System::Void System::Collections::IList::Remove(Object* value);
00087
00088 __property Object* System::Collections::IList::get_Item(System::Int32 index);
00089
00090 __property System::Void System::Collections::IList::set_Item(System::Int32 index, Object* value);
00091
00092 protected:
00093 System::Void ReleaseUnmanagedObject();
00094
00095 public:
00096 OvClassCollection();
00097
00098 OvClassCollection(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvClassCollection* baseCollection);
00099
00100 /// <summary>
00101 /// Gets the count of items in collection.
00102 /// </summary>
00103 __property System::Int32 get_Count(System::Void);
00104
00105 /// <summary>
00106 /// Gets an enumerator that can iterate through a collection.
00107 /// </summary>
00108 __sealed System::Collections::IEnumerator* GetEnumerator(System::Void);
00109
00110 /// <summary>
00111 /// Removes the index-th OvClassDefinition from this collection.
00112 /// </summary>
00113 /// <param name="index">
00114 /// Input index of the element to remove.
00115 /// </param>
00116 System::Void RemoveAt(System::Int32 index);
00117
00118 /// <summary>
00119 /// Removes all elements from the collection.
00120 /// </summary>
00121 System::Void Clear();
00122
00123 /// <summary>
00124 /// Adds a OvClassDefinition object into the collection.
00125 /// </summary>
00126 /// <param name="value">
00127 /// Input the OvClassDefinition object to add.
00128 /// </param>
00129 /// <returns>
00130 /// Returns the position into which the new element was inserted.
00131 /// </returns>
00132 System::Int32 Add(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00133
00134 /// <summary>
00135 /// Determines the index of a specific OvClassDefinition object.
00136 /// </summary>
00137 /// <param name="value">
00138 /// Input the OvClassDefinition object to locate in the collection.
00139 /// </param>
00140 /// <returns>
00141 /// The index of value if found in the collection; otherwise, -1.
00142 /// </returns>
00143 System::Int32 IndexOf(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00144
00145 /// <summary>
00146 /// Inserts a OvClassDefinition object into the collection at the specified position.
00147 /// </summary>
00148 /// <param name="index">
00149 /// Input the zero-based index at which value should be inserted.
00150 /// </param>
00151 /// <param name="value">
00152 /// Input the OvClassDefinition object to insert.
00153 /// </param>
00154 System::Void Insert(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00155
00156 /// <summary>
00157 /// Removes the first occurrence of a specific OvClassDefinition object.
00158 /// </summary>
00159 /// <param name="value">
00160 /// Input the OvClassDefinition object to remove from the collection.
00161 /// </param>
00162 System::Void Remove(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00163
00164 /// <summary>
00165 /// Determines whether the collection contains a specific OvClassDefinition object.
00166 /// </summary>
00167 /// <param name="value">
00168 /// Input The OvClassDefinition object to search in the collection.
00169 /// </param>
00170 /// <returns>
00171 /// Returns true if the value is found in the collection; otherwise, false.
00172 /// </returns>
00173 System::Boolean Contains(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00174
00175 /// <summary>
00176 /// Copies the elements of the collection to an array.
00177 /// </summary>
00178 /// <param name="array">
00179 /// Output the one-dimensional Array that is the destination of the elements copied from this collection.
00180 /// </param>
00181 /// <param name="startAt">
00182 /// Input an integer that represents the index in array at which copying begins.
00183 /// </param>
00184 System::Void CopyTo(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* array[],System::Int32 size);
00185
00186 //this is a hedious workaround for a bug in VS2002.
00187 /// <summary>
00188 /// Gets or sets a OvClassDefinition in the collection.
00189 /// </summary>
00190 /// <param name="index">
00191 /// Input index of the OvClassDefinition to retrieve or set (System::Int32).
00192 /// </param>
00193 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* get_RealTypeItem(System::Int32 index);
00194 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* get_RealTypeItem(System::String* index);
00195
00196 __property System::Void set_RealTypeItem(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00197
00198 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* get_Item(System::Int32 index);
00199
00200 __property System::Void set_Item(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvClassDefinition* value);
00201 };
00202
00203 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL
00204