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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 60 - (hide annotations) (download)
Thu Jul 15 08:28:43 2010 UTC (9 years, 3 months ago) by william
File size: 8250 byte(s)
Add xml documentation to constructors

1 william 37 using System;
2     using System.Collections.Generic;
3     using System.Text;
4    
5     using gr2lib.core.typedefs;
6 william 49 using gr2lib.core.exceptions;
7 william 37
8     namespace gr2lib.core.apiversion
9     {
10     #region public class VersionType
11     public interface Iversiontype
12     {
13 william 42 granny_int32x major { get; }
14     granny_int32x minor { get; }
15     granny_int32x customization { get; }
16     granny_int32x build { get; }
17     string version { get; }
18 william 37 }
19    
20     public class versiontype : Iversiontype
21     {
22 william 60 /// <summary>
23     /// default versiontype construction: 0.0.0.0
24     /// </summary>
25 william 37 public versiontype()
26     {
27 william 42 this.major = 0;
28     this.minor = 0;
29     this.customization = 0;
30     this.build = 0;
31 william 37 }
32 william 60 /// <summary>
33     /// versiontype construction: major.minor.customization.build
34     /// </summary>
35 william 42 public versiontype(granny_int32x major, granny_int32x minor, granny_int32x customization, granny_int32x build)
36 william 37 {
37 william 42 this.major = major;
38     this.minor = minor;
39     this.customization = customization;
40     this.build = build;
41 william 37 }
42 william 60 /// <summary>
43     /// versiontype construction: major.minor.customization.build (via string: "0.0.0.0")
44     /// </summary>
45 william 55 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 william 60 /// <summary>
55     /// Gets this version in format: major.minor.customization.build
56     /// </summary>
57     /// <returns></returns>
58 william 37 public override string ToString()
59     {
60 william 42 return this.version;
61 william 37 }
62    
63     #region IVersionType Members
64     /// <summary>
65 william 42 /// Returns a string representation of the Granny2 API Version in format (major.minor.customization.build)
66 william 37 /// </summary>
67 william 42 public string version { get { return string.Format("{0}.{1}.{2}.{3}", major, minor, customization, build); } }
68     private granny_int32x _major;
69 william 37 /// <summary>
70     /// Returns the Major of the Granny2 API Version (X.0.0.0)
71     /// </summary>
72 william 42 public granny_int32x major { get { return _major; } private set { _major = value; } }
73 william 37
74 william 42 private granny_int32x _minor;
75 william 37 /// <summary>
76     /// Returns the Minor of the Granny2 API Version (0.X.0.0)
77     /// </summary>
78 william 42 public granny_int32x minor { get { return _minor; } private set { _minor = value; } }
79 william 37
80 william 42 private granny_int32x _customization;
81 william 37 /// <summary>
82     /// Returns the Customization of the Granny2 API Version - Customization (0.0.X.0)
83     /// </summary>
84 william 42 public granny_int32x customization { get { return _customization; } private set { _customization = value; } }
85 william 37
86 william 42 private granny_int32x _build;
87 william 37 /// <summary>
88     /// Returns the Build of the Granny2 API Version (0.0.0.X)
89     /// </summary>
90 william 42 public granny_int32x build { get { return _build; } private set { _build = value; } }
91 william 37 #endregion
92     }
93     #endregion
94    
95     #region public class Granny2APIVersion
96 william 45 public interface igranny2apiversion
97 william 37 {
98     bool apiversionsmatch { get; }
99     versiontype apiversion { get; }
100     versiontype expectedapiversion { get; }
101     }
102     /// <summary>
103     /// Handle's the checking of the Loaded Granny2 API Version
104     /// </summary>
105 william 45 public class granny2apiversion : igranny2apiversion
106 william 37 {
107 william 60 /// <summary>
108     /// Default granny2apiversion Constructor: Expect Granny2 API -> 2.7.0.30
109     /// </summary>
110 william 37 public granny2apiversion()
111     {
112 william 55 this._expectedapiversion = new versiontype(
113     apiversiontype.GrannyProductMajorVersion,
114     apiversiontype.GrannyProductMinorVersion,
115     apiversiontype.GrannyProductCustomization,
116     apiversiontype.GrannyProductBuildNumber);
117    
118 william 49 granny2apiloader _loader = new granny2apiloader();
119 william 45 this._apiversion = new versiontype();
120     this._apiversionsmatch = this.GrannyVersionsMatch();
121 william 37 this.GetGrannyVersion();
122 william 55
123     }
124 william 60 /// <summary>
125     /// granny2apiversion Constructor: set Granny2 API -> major.minor.customization.build
126     /// </summary>
127 william 55 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 william 60 /// <summary>
141     /// granny2apiversion Constructor: set Granny2 API -> major.minor.customization.build (via string: "0.0.0.0")
142     /// </summary>
143 william 55 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 william 37 #region APIVersion Support
154     private class apiversiontype
155     {
156     public static string GrannyProductVersion = "2.7.0.30";
157     public static granny_int32x GrannyProductMajorVersion = 2;
158     public static granny_int32x GrannyProductMinorVersion = 7;
159     public static granny_int32x GrannyProductCustomization = 0;
160     public static granny_int32x GrannyProductBuildNumber = 30;
161     public static string GrannyProductReleaseName = "release";
162     };
163    
164     private bool GrannyVersionsMatch()
165     {
166     return gr2lib.core.coreapi.GrannyVersionsMatch(
167 william 55 this._expectedapiversion.major,
168     this._expectedapiversion.minor,
169     this._expectedapiversion.customization,
170     this._expectedapiversion.build);
171 william 37 }
172     private void GetGrannyVersion()
173     {
174 william 45 granny_int32x major = 0;
175     granny_int32x minor = 0;
176     granny_int32x customization = 0;
177     granny_int32x build = 0;
178 william 37
179     gr2lib.core.coreapi.GrannyGetVersion(
180 william 45 ref major,
181     ref minor,
182     ref customization,
183     ref build);
184 william 37
185 william 45 this._apiversion = new versiontype(major, minor, customization, build);
186 william 37
187     }
188     private string GrannyGetVersionString()
189     {
190     return gr2lib.core.coreapi.GrannyGetVersionString();
191     }
192     #endregion
193    
194     #region IGranny2APIVersion Members
195 william 45 private bool _apiversionsmatch = false;
196 william 37 /// <summary>
197     /// Indicates that the Loaded Granny2 API Version matches the version that the core library was built against
198     /// </summary>
199 william 45 public bool apiversionsmatch { get { return _apiversionsmatch; } }
200     private versiontype _apiversion;
201 william 37 /// <summary>
202     /// Gets the Loaded Granny2 API Version
203     /// </summary>
204 william 45 public versiontype apiversion { get { return _apiversion; } }
205 william 55 private versiontype _expectedapiversion;
206 william 37 /// <summary>
207     /// Gets the Expected Granny2 API Version
208     /// </summary>
209 william 55 public versiontype expectedapiversion { get { return _expectedapiversion; } }
210 william 37 #endregion
211     }
212     #endregion
213     }

  ViewVC Help
Powered by ViewVC 1.1.22