/[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 93 - (hide annotations) (download)
Sat Jul 17 05:09:00 2010 UTC (9 years, 4 months ago) by william
File size: 8096 byte(s)
seperate the interface for this class, and place with the others

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

  ViewVC Help
Powered by ViewVC 1.1.22