ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/gr2lib/trunk/gr2lib/Granny2APIVersion.cs
Revision: 28
Committed: Wed Jul 14 09:55:24 2010 UTC (13 years, 4 months ago) by william
File size: 5432 byte(s)
Log Message:
Include documentation for class members

File Contents

# Content
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 using gr2lib.core.typedefs;
6
7 namespace gr2lib.core.apiversion
8 {
9 #region public class VersionType
10 public interface IVersionType
11 {
12 granny_int32x Major { get; }
13 granny_int32x Minor { get; }
14 granny_int32x Customization { get; }
15 granny_int32x Build { get; }
16 string Version { get; }
17 }
18
19 public class VersionType : IVersionType
20 {
21 public VersionType()
22 {
23 this._Major = 0;
24 this._Minor = 0;
25 this._Customization = 0;
26 this._Build = 0;
27 }
28 public VersionType(granny_int32x Major, granny_int32x Minor, granny_int32x Customization, granny_int32x Build)
29 {
30 this._Major = Major;
31 this._Minor = Minor;
32 this._Customization = Customization;
33 this._Build = Build;
34 }
35
36 public override string ToString()
37 {
38 return this.Version;
39 }
40
41 #region IVersionType Members
42 /// <summary>
43 /// Returns a string representation of the Granny2 API Version in format (Major.Minor.Customization.Build)
44 /// </summary>
45 public string Version { get { return string.Format("{0}.{1}.{2}.{3}", Major, Minor, Customization, Build); } }
46 private granny_int32x _Major;
47 /// <summary>
48 /// Returns the Major of the Granny2 API Version (X.0.0.0)
49 /// </summary>
50 public granny_int32x Major { get { return _Major; } }
51
52 private granny_int32x _Minor;
53 /// <summary>
54 /// Returns the Minor of the Granny2 API Version (0.X.0.0)
55 /// </summary>
56 public granny_int32x Minor { get { return _Minor; } }
57
58 private granny_int32x _Customization;
59 /// <summary>
60 /// Returns the Customization of the Granny2 API Version - Customization (0.0.X.0)
61 /// </summary>
62 public granny_int32x Customization { get { return _Customization; } }
63
64 private granny_int32x _Build;
65 /// <summary>
66 /// Returns the Build of the Granny2 API Version (0.0.0.X)
67 /// </summary>
68 public granny_int32x Build { get { return _Build; } }
69 #endregion
70 }
71 #endregion
72
73 #region public class Granny2APIVersion
74 public interface IGranny2APIVersion
75 {
76 bool APIVersionsMatch { get; }
77 VersionType APIVersion { get; }
78 VersionType ExpectedAPIVersion { get; }
79 }
80 /// <summary>
81 /// Handle's the checking of the Loaded Granny2 API Version
82 /// </summary>
83 public class Granny2APIVersion : IGranny2APIVersion
84 {
85 public Granny2APIVersion()
86 {
87 this._APIVersion = new VersionType();
88 this._APIVersionsMatch = this.GrannyVersionsMatch();
89 this.GetGrannyVersion();
90 }
91 #region APIVersion Support
92 private class APIVersionType
93 {
94 public static string GrannyProductVersion = "2.7.0.30";
95 public static granny_int32x GrannyProductMajorVersion = 2;
96 public static granny_int32x GrannyProductMinorVersion = 7;
97 public static granny_int32x GrannyProductCustomization = 0;
98 public static granny_int32x GrannyProductBuildNumber = 30;
99 public static string GrannyProductReleaseName = "release";
100 };
101
102 private bool GrannyVersionsMatch()
103 {
104 return gr2lib.core.coreapi.GrannyVersionsMatch(
105 APIVersionType.GrannyProductMajorVersion,
106 APIVersionType.GrannyProductMinorVersion,
107 APIVersionType.GrannyProductCustomization,
108 APIVersionType.GrannyProductBuildNumber);
109 }
110 private void GetGrannyVersion()
111 {
112 granny_int32x Major = 0;
113 granny_int32x Minor = 0;
114 granny_int32x Customization = 0;
115 granny_int32x Build = 0;
116
117 gr2lib.core.coreapi.GrannyGetVersion(
118 out Major,
119 out Minor,
120 out Customization,
121 out Build);
122
123 this._APIVersion = new VersionType(Major, Minor, Customization, Build);
124
125 }
126 private string GrannyGetVersionString()
127 {
128 return gr2lib.core.coreapi.GrannyGetVersionString();
129 }
130 #endregion
131
132 #region IGranny2APIVersion Members
133 private bool _APIVersionsMatch = false;
134 /// <summary>
135 /// Indicates that the Loaded Granny2 API Version matches the version that the core library was built against
136 /// </summary>
137 public bool APIVersionsMatch { get { return _APIVersionsMatch; } }
138 private VersionType _APIVersion;
139 /// <summary>
140 /// Gets the Loaded Granny2 API Version
141 /// </summary>
142 public VersionType APIVersion { get { return _APIVersion; } }
143 /// <summary>
144 /// Gets the Expected Granny2 API Version
145 /// </summary>
146 public VersionType ExpectedAPIVersion { get { return new VersionType(APIVersionType.GrannyProductMajorVersion, APIVersionType.GrannyProductMinorVersion, APIVersionType.GrannyProductCustomization, APIVersionType.GrannyProductBuildNumber); } }
147 #endregion
148 }
149 #endregion
150 }