- Main Page
- Related Pages
- Modules
- Classes
- Files

# ProviderNameTokens.h

Go to the documentation of this file.

    00001 #ifndef _FDOPROVIDERNAMETOKENS_H_
    00002 #define _FDOPROVIDERNAMETOKENS_H_
    00003 /***************************************************************************
    00004
    00005 //
    00006 // Copyright (C) 2004-2006  Autodesk, Inc.
    00007 //
    00008 // This library is free software; you can redistribute it and/or
    00009 // modify it under the terms of version 2.1 of the GNU Lesser
    00010 // General Public License as published by the Free Software Foundation.
    00011 //
    00012 // This library is distributed in the hope that it will be useful,
    00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00015 // Lesser General Public License for more details.
    00016 //
    00017 // You should have received a copy of the GNU Lesser General Public
    00018 // License along with this library; if not, write to the Free Software
    00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    00020 //
    00021
    00022
    00023  ***************************************************************************/
    00024 #ifdef _WIN32
    00025 #pragma once
    00026 #endif
    00027
    00028 // Include definitions
    00029 #include <FdoStd.h>
    00030 #include <FdoCommon.h>
    00031 #include <Common/Vector.h>
    00032 #include <Fdo/ClientServices/ClientServices.h>
    00033
    00034 /// \brief
    00035 /// A provider name tokenized into its company, name and version parts.
    00036 class FdoProviderNameTokens : public FdoIDisposable
    00037 {
    00038 public:
    00039     /// \brief
    00040     /// Tokenize a full provider name
    00041     /// The name is usually of the form "[Company].[Provider].[Version]",
    00042     /// e.g. "Autodesk.Oracle.3.2".
    00043     ///
    00044     /// \param name
    00045     /// Input the provider name to tokenize
    00046     ///
    00047     /// \return
    00048     /// Returns FdoProviderNameTokens
    00049     ///
    00050     FDO_API static FdoProviderNameTokens* Create(FdoString* name);
    00051
    00052     /// \brief
    00053     /// Gets all of the tokens in this provider name
    00054     ///
    00055     /// \return
    00056     /// Returns the collection of tokens.
    00057     ///   Element 0 is the company
    00058     ///   Element 1 is the unqualified name
    00059     ///   the rest of the elements are the individual parts of the version number.
    00060     ///
    00061     FDO_API  FdoStringsP GetNameTokens() const;
    00062
    00063     /// \brief
    00064     /// Gets all of the version number components in this provider name
    00065     ///
    00066     /// \return
    00067     /// Returns the collection of version number components. For
    00068     /// example, if the full provider name is "Autodesk.Oracle.3.1" then
    00069     /// {3,1} is returned.
    00070     ///
    00071     FDO_API  FdoVectorP GetVersionTokens() const;
    00072
    00073     /// \brief
    00074     /// Gets the local (unqualified) name of this provider.
    00075     ///
    00076     /// \return
    00077     /// Returns the local name ( without company and version ). For
    00078     /// example, if the full provider name is "Autodesk.Oracle.3.1" then
    00079     /// "Oracle" is returned.
    00080     ///
    00081     FDO_API  FdoStringP GetLocalName() const;
    00082
    00083 /// \cond DOXYGEN-IGNORE
    00084 protected:
    00085     FdoProviderNameTokens() {}
    00086     FdoProviderNameTokens(FdoString* name);
    00087
    00088     /// Default destructor for FdoProvider.
    00089     virtual ~FdoProviderNameTokens() {}
    00090
    00091     virtual void Dispose();
    00092 /// \endcond
    00093
    00094 private:
    00095     FdoStringsP mNameTokens;
    00096     FdoStringsP mVersionTokens;
    00097 };
    00098
    00099 /// \brief
    00100 /// FdoProviderNameTokensP is a FdoPtr on FdoProviderNameTokens, provided for convenience.
    00101 /// It also provides operators for comparing two provider names.
    00102 class FdoProviderNameTokensP : public FdoPtr<FdoProviderNameTokens>
    00103 {
    00104 public:
    00105     /// \brief
    00106     /// Tokenized provider name FdoPtr default constructor
    00107     ///
    00108     /// \return
    00109     /// Returns FdoProviderNameTokensP
    00110     ///
    00111     FDO_API FdoProviderNameTokensP() {}
    00112
    00113     /// \brief
    00114     /// Tokenized provider name FdoPtr copy constructor
    00115     ///
    00116     /// \param src
    00117     /// Input the source tokenized provider name as a FdoPtr
    00118     ///
    00119     /// \return
    00120     /// Returns FdoProviderNameTokensP
    00121     ///
    00122     FDO_API FdoProviderNameTokensP( const FdoProviderNameTokensP& src )
    00123         : FdoPtr<FdoProviderNameTokens>(src)
    00124     {}
    00125
    00126     /// \brief
    00127     /// Tokenized provider name FdoPtr copy constructor
    00128     ///
    00129     /// \param src
    00130     /// Input the source tokenized provider name as an object pointer
    00131     ///
    00132     /// \return
    00133     /// Returns FdoProviderNameTokensP
    00134     ///
    00135     FDO_API FdoProviderNameTokensP( FdoProviderNameTokens* src )
    00136         : FdoPtr<FdoProviderNameTokens>(src)
    00137     {}
    00138
    00139     /// \brief
    00140     /// Tokenized provider name FdoPtr destructor
    00141     ///
    00142     FDO_API ~FdoProviderNameTokensP() {}
    00143
    00144     /// \brief
    00145     /// Copies a tokenized provider name
    00146     ///
    00147     /// \param src
    00148     /// Input the source collection
    00149     ///
    00150     /// \return
    00151     /// Returns the copy FdoProviderNameTokens
    00152     ///
    00153     FDO_API FdoProviderNameTokens* operator=( FdoProviderNameTokens* src );
    00154
    00155     /// \brief
    00156     /// Compare two tokenized provider names for equality. The names are equal
    00157     /// if all of their elements are equal. If one name is shorter than the other
    00158     /// then it is treated as if it were padded with null elements to the length of the
    00159     /// other name.
    00160     ///
    00161     /// \param name2
    00162     /// Input provider name to compare this name
    00163     ///
    00164     /// \return
    00165     /// Returns true if the two names are identical.
    00166     ///
    00167     FDO_API FdoBoolean operator==( const FdoProviderNameTokensP name2 ) const;
    00168
    00169     /// \brief
    00170     /// Compare two tokenized provider names for difference The names are different
    00171     /// if at least one of their elements are different. If one name is shorter than the other
    00172     /// then it is treated as if it were padded with null elements to the length of the
    00173     /// other name.
    00174     ///
    00175     /// \param name2
    00176     /// Input provider name to compare this name
    00177     ///
    00178     /// \return
    00179     /// Returns true if the two names are identical.
    00180     ///
    00181     FDO_API FdoBoolean operator!=( const FdoProviderNameTokensP name2 ) const;
    00182
    00183     /// \brief
    00184     /// Checks if this provider name is greater than another provider name.
    00185     /// This provider name is greater only if the company and name are the same, but
    00186     /// this provider's version is later than that of name2. Therefore, it is
    00187     /// possible for a provider name to be neither greater than, equal or less than
    00188     /// another provider name.
    00189     ///
    00190     /// \param name2
    00191     /// The other provider name
    00192     ///
    00193     /// \return
    00194     /// Returns true if this provider name is greater than name2.
    00195     ///
    00196     FDO_API FdoBoolean operator>( const FdoProviderNameTokensP name2 ) const;
    00197
    00198     /// \brief
    00199     /// Checks if this provider name is greater than or equal to another provider name.
    00200     /// This provider name is greater only if the company and name are the same, but
    00201     /// this provider's version is later than that of name2. Therefore, it is
    00202     /// possible for a provider name to be neither greater than, equal or less than
    00203     /// another provider name.
    00204     ///
    00205     /// \param name2
    00206     /// The other provider name
    00207     ///
    00208     /// \return
    00209     /// Returns true if this provider name is greater than or equal to name2.
    00210     ///
    00211     FDO_API FdoBoolean operator>=( const FdoProviderNameTokensP name2 ) const;
    00212
    00213     /// \brief
    00214     /// Checks if this provider name is less than another provider name.
    00215     /// This provider name is less than the other name only if the company and name are
    00216     /// the same, but
    00217     /// this provider's version is earlier than that of name2. Therefore, it is
    00218     /// possible for a provider name to be neither greater than, equal or less than
    00219     /// another provider name.
    00220     ///
    00221     /// \param name2
    00222     /// The other provider name
    00223     ///
    00224     /// \return
    00225     /// Returns true if this provider name is less than name2.
    00226     ///
    00227     FDO_API FdoBoolean operator<( const FdoProviderNameTokensP name2 ) const;
    00228
    00229     /// \brief
    00230     /// Checks if this provider name is less than or equal to another provider name.
    00231     /// This provider name is less than the other name only if the company and name are
    00232     /// the same, but
    00233     /// this provider's version is earlier than that of name2. Therefore, it is
    00234     /// possible for a provider name to be neither greater than, equal or less than
    00235     /// another provider name.
    00236     ///
    00237     /// \param name2
    00238     /// The other provider name
    00239     ///
    00240     /// \return
    00241     /// Returns true if this provider name is less than or equal to name2.
    00242     ///
    00243     FDO_API FdoBoolean operator<=( const FdoProviderNameTokensP name2 ) const;
    00244
    00245 /// \cond DOXYGEN-IGNORE
    00246 protected:
    00247     FdoBoolean Compare( const FdoProviderNameTokensP name2 ) const;
    00248 /// \endcond
    00249
    00250 };
    00251 #endif
    00252
    00253

Please send us your comment about this page