/[gr2lib]/trunk/gr2lib/core/coreclasses/apiversion/granny2apiversion.cs
ViewVC logotype

Diff of /trunk/gr2lib/core/coreclasses/apiversion/granny2apiversion.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 37 by william, Wed Jul 14 18:49:23 2010 UTC revision 60 by william, Thu Jul 15 08:28:43 2010 UTC
# Line 3  using System.Collections.Generic; Line 3  using System.Collections.Generic;
3  using System.Text;  using System.Text;
4    
5  using gr2lib.core.typedefs;  using gr2lib.core.typedefs;
6    using gr2lib.core.exceptions;
7    
8  namespace gr2lib.core.apiversion  namespace gr2lib.core.apiversion
9  {  {
10      #region public class VersionType      #region public class VersionType
11      public interface Iversiontype      public interface Iversiontype
12      {      {
13          granny_int32x Major { get; }          granny_int32x major { get; }
14          granny_int32x Minor { get; }          granny_int32x minor { get; }
15          granny_int32x Customization { get; }          granny_int32x customization { get; }
16          granny_int32x Build { get; }          granny_int32x build { get; }
17          string Version { get; }          string version { get; }
18      }      }
19    
20      public class versiontype : Iversiontype      public class versiontype : Iversiontype
21      {      {
22            /// <summary>
23            /// default versiontype construction: 0.0.0.0
24            /// </summary>
25          public versiontype()          public versiontype()
26          {          {
27              this._Major = 0;              this.major = 0;
28              this._Minor = 0;              this.minor = 0;
29              this._Customization = 0;              this.customization = 0;
30              this._Build = 0;              this.build = 0;
         }  
         public versiontype(granny_int32x Major, granny_int32x Minor, granny_int32x Customization, granny_int32x Build)  
         {  
             this._Major = Major;  
             this._Minor = Minor;  
             this._Customization = Customization;  
             this._Build = Build;  
31          }          }
32            /// <summary>
33            /// versiontype construction: major.minor.customization.build
34            /// </summary>
35            public versiontype(granny_int32x major, granny_int32x minor, granny_int32x customization, granny_int32x build)
36            {
37                this.major = major;
38                this.minor = minor;
39                this.customization = customization;
40                this.build = build;
41            }
42            /// <summary>
43            /// versiontype construction: major.minor.customization.build (via string: "0.0.0.0")
44            /// </summary>
45            public versiontype(string version)
46            {
47                string[] _version = version.Split('.');
48                
49                this.major = _version[0];
50                this.minor = _version[1];
51                this.customization = _version[2];
52                this.build = _version[3];
53            }
54            /// <summary>
55            /// Gets this version in format: major.minor.customization.build
56            /// </summary>
57            /// <returns></returns>
58          public override string ToString()          public override string ToString()
59          {          {
60              return this.Version;              return this.version;
61          }          }
62    
63          #region IVersionType Members          #region IVersionType Members
64          /// <summary>          /// <summary>
65          /// Returns a string representation of the Granny2 API Version in format (Major.Minor.Customization.Build)          /// Returns a string representation of the Granny2 API Version in format (major.minor.customization.build)
66          /// </summary>          /// </summary>
67          public string Version { get { return string.Format("{0}.{1}.{2}.{3}", Major, Minor, Customization, Build); } }          public string version { get { return string.Format("{0}.{1}.{2}.{3}", major, minor, customization, build); } }
68          private granny_int32x _Major;          private granny_int32x _major;
69          /// <summary>          /// <summary>
70          /// Returns the Major of the Granny2 API Version (X.0.0.0)          /// Returns the Major of the Granny2 API Version (X.0.0.0)
71          /// </summary>          /// </summary>
72          public granny_int32x Major { get { return _Major; } }          public granny_int32x major { get { return _major; } private set { _major = value; } }
73    
74          private granny_int32x _Minor;          private granny_int32x _minor;
75          /// <summary>          /// <summary>
76          /// Returns the Minor of the Granny2 API Version (0.X.0.0)          /// Returns the Minor of the Granny2 API Version (0.X.0.0)
77          /// </summary>          /// </summary>
78          public granny_int32x Minor { get { return _Minor; } }          public granny_int32x minor { get { return _minor; } private set { _minor = value; } }
79    
80          private granny_int32x _Customization;          private granny_int32x _customization;
81          /// <summary>          /// <summary>
82          /// Returns the Customization of the Granny2 API Version - Customization (0.0.X.0)          /// Returns the Customization of the Granny2 API Version - Customization (0.0.X.0)
83          /// </summary>          /// </summary>
84          public granny_int32x Customization { get { return _Customization; } }          public granny_int32x customization { get { return _customization; } private set { _customization = value; } }
85    
86          private granny_int32x _Build;          private granny_int32x _build;
87          /// <summary>          /// <summary>
88          /// Returns the Build of the Granny2 API Version (0.0.0.X)          /// Returns the Build of the Granny2 API Version (0.0.0.X)
89          /// </summary>          /// </summary>
90          public granny_int32x Build { get { return _Build; } }          public granny_int32x build { get { return _build; } private set { _build = value; } }
91          #endregion          #endregion
92      }      }
93      #endregion      #endregion
94    
95      #region public class Granny2APIVersion      #region public class Granny2APIVersion
96      public interface Igranny2apiversion      public interface igranny2apiversion
97      {      {
98          bool apiversionsmatch { get; }          bool apiversionsmatch { get; }
99          versiontype apiversion { get; }          versiontype apiversion { get; }
# Line 80  namespace gr2lib.core.apiversion Line 102  namespace gr2lib.core.apiversion
102      /// <summary>      /// <summary>
103      /// Handle's the checking of the Loaded Granny2 API Version      /// Handle's the checking of the Loaded Granny2 API Version
104      /// </summary>      /// </summary>
105      public class granny2apiversion : Igranny2apiversion      public class granny2apiversion : igranny2apiversion
106      {      {
107            /// <summary>
108            /// Default granny2apiversion Constructor: Expect Granny2 API -> 2.7.0.30
109            /// </summary>
110          public granny2apiversion()          public granny2apiversion()
111          {          {
112              this._APIVersion = new versiontype();              this._expectedapiversion = new versiontype(
113              this._APIVersionsMatch = this.GrannyVersionsMatch();                                               apiversiontype.GrannyProductMajorVersion,
114                                                 apiversiontype.GrannyProductMinorVersion,
115                                                 apiversiontype.GrannyProductCustomization,
116                                                 apiversiontype.GrannyProductBuildNumber);
117    
118                granny2apiloader _loader = new granny2apiloader();
119                this._apiversion = new versiontype();
120                this._apiversionsmatch = this.GrannyVersionsMatch();
121              this.GetGrannyVersion();              this.GetGrannyVersion();
122          }    
123            }
124            /// <summary>
125            /// granny2apiversion Constructor: set Granny2 API -> major.minor.customization.build
126            /// </summary>
127            public granny2apiversion(granny_int32x ExpectedMajorVersion, granny_int32x ExpectedMinorVersion, granny_int32x ExpectedCustomization, granny_int32x ExpectedBuildNumber)
128            {
129                this._expectedapiversion = new versiontype(
130                                     ExpectedMajorVersion,
131                                     ExpectedMinorVersion,
132                                     ExpectedCustomization,
133                                     ExpectedBuildNumber);
134    
135                granny2apiloader _loader = new granny2apiloader();
136                this._apiversion = new versiontype();
137                this._apiversionsmatch = this.GrannyVersionsMatch();
138                this.GetGrannyVersion();
139            }
140            /// <summary>
141            /// granny2apiversion Constructor: set Granny2 API -> major.minor.customization.build (via string: "0.0.0.0")
142            /// </summary>
143            public granny2apiversion(string ExceptedVersion)
144            {
145                this._expectedapiversion = new versiontype(ExceptedVersion);
146    
147                granny2apiloader _loader = new granny2apiloader();
148                this._apiversion = new versiontype();
149                this._apiversionsmatch = this.GrannyVersionsMatch();
150                this.GetGrannyVersion();
151            }
152    
153          #region APIVersion Support          #region APIVersion Support
154          private class apiversiontype          private class apiversiontype
155          {          {
# Line 102  namespace gr2lib.core.apiversion Line 164  namespace gr2lib.core.apiversion
164          private bool GrannyVersionsMatch()          private bool GrannyVersionsMatch()
165          {          {
166              return gr2lib.core.coreapi.GrannyVersionsMatch(              return gr2lib.core.coreapi.GrannyVersionsMatch(
167                  apiversiontype.GrannyProductMajorVersion,                  this._expectedapiversion.major,
168                  apiversiontype.GrannyProductMinorVersion,                  this._expectedapiversion.minor,
169                  apiversiontype.GrannyProductCustomization,                  this._expectedapiversion.customization,
170                  apiversiontype.GrannyProductBuildNumber);                  this._expectedapiversion.build);
171          }          }
172          private void GetGrannyVersion()          private void GetGrannyVersion()
173          {          {
174              granny_int32x Major = 0;              granny_int32x major = 0;
175              granny_int32x Minor = 0;              granny_int32x minor = 0;
176              granny_int32x Customization = 0;              granny_int32x customization = 0;
177              granny_int32x Build = 0;              granny_int32x build = 0;
178    
179              gr2lib.core.coreapi.GrannyGetVersion(              gr2lib.core.coreapi.GrannyGetVersion(
180                  out Major,                  ref major,
181                  out Minor,                  ref minor,
182                  out Customization,                  ref customization,
183                  out Build);                  ref build);
184    
185              this._APIVersion = new versiontype(Major, Minor, Customization, Build);              this._apiversion = new versiontype(major, minor, customization, build);
186    
187          }          }
188          private string GrannyGetVersionString()          private string GrannyGetVersionString()
# Line 130  namespace gr2lib.core.apiversion Line 192  namespace gr2lib.core.apiversion
192          #endregion          #endregion
193    
194          #region IGranny2APIVersion Members          #region IGranny2APIVersion Members
195          private bool _APIVersionsMatch = false;          private bool _apiversionsmatch = false;
196          /// <summary>          /// <summary>
197          /// Indicates that the Loaded Granny2 API Version matches the version that the core library was built against          /// Indicates that the Loaded Granny2 API Version matches the version that the core library was built against
198          /// </summary>          /// </summary>
199          public bool apiversionsmatch { get { return _APIVersionsMatch; } }          public bool apiversionsmatch { get { return _apiversionsmatch; } }
200          private versiontype _APIVersion;          private versiontype _apiversion;
201          /// <summary>          /// <summary>
202          /// Gets the Loaded Granny2 API Version          /// Gets the Loaded Granny2 API Version
203          /// </summary>          /// </summary>
204          public versiontype apiversion { get { return _APIVersion; } }          public versiontype apiversion { get { return _apiversion; } }
205            private versiontype _expectedapiversion;
206          /// <summary>          /// <summary>
207          /// Gets the Expected Granny2 API Version          /// Gets the Expected Granny2 API Version
208          /// </summary>          /// </summary>
209          public versiontype expectedapiversion { get { return new versiontype(apiversiontype.GrannyProductMajorVersion, apiversiontype.GrannyProductMinorVersion, apiversiontype.GrannyProductCustomization, apiversiontype.GrannyProductBuildNumber); } }          public versiontype expectedapiversion { get { return _expectedapiversion; } }
210          #endregion          #endregion
211      }      }
212      #endregion      #endregion

Legend:
Removed from v.37  
changed lines
  Added in v.60

  ViewVC Help
Powered by ViewVC 1.1.22