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 (12 years, 8 months ago) by william
File size: 5432 byte(s)
Log Message:
Include documentation for class members

File Contents

# User Rev Content
1 william 14 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 william 28 /// <summary>
43     /// Returns a string representation of the Granny2 API Version in format (Major.Minor.Customization.Build)
44     /// </summary>
45 william 14 public string Version { get { return string.Format("{0}.{1}.{2}.{3}", Major, Minor, Customization, Build); } }
46     private granny_int32x _Major;
47 william 28 /// <summary>
48     /// Returns the Major of the Granny2 API Version (X.0.0.0)
49     /// </summary>
50 william 14 public granny_int32x Major { get { return _Major; } }
51    
52     private granny_int32x _Minor;
53 william 28 /// <summary>
54     /// Returns the Minor of the Granny2 API Version (0.X.0.0)
55     /// </summary>
56 william 14 public granny_int32x Minor { get { return _Minor; } }
57    
58     private granny_int32x _Customization;
59 william 28 /// <summary>
60     /// Returns the Customization of the Granny2 API Version - Customization (0.0.X.0)
61     /// </summary>
62 william 14 public granny_int32x Customization { get { return _Customization; } }
63    
64     private granny_int32x _Build;
65 william 28 /// <summary>
66     /// Returns the Build of the Granny2 API Version (0.0.0.X)
67     /// </summary>
68 william 14 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 william 28 /// <summary>
81     /// Handle's the checking of the Loaded Granny2 API Version
82     /// </summary>
83 william 14 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 william 25 private bool GrannyVersionsMatch()
103 william 14 {
104     return gr2lib.core.coreapi.GrannyVersionsMatch(
105     APIVersionType.GrannyProductMajorVersion,
106     APIVersionType.GrannyProductMinorVersion,
107     APIVersionType.GrannyProductCustomization,
108     APIVersionType.GrannyProductBuildNumber);
109     }
110 william 25 private void GetGrannyVersion()
111 william 14 {
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 william 25 private string GrannyGetVersionString()
127 william 14 {
128     return gr2lib.core.coreapi.GrannyGetVersionString();
129     }
130     #endregion
131    
132     #region IGranny2APIVersion Members
133     private bool _APIVersionsMatch = false;
134 william 28 /// <summary>
135     /// Indicates that the Loaded Granny2 API Version matches the version that the core library was built against
136     /// </summary>
137 william 14 public bool APIVersionsMatch { get { return _APIVersionsMatch; } }
138     private VersionType _APIVersion;
139 william 28 /// <summary>
140     /// Gets the Loaded Granny2 API Version
141     /// </summary>
142 william 14 public VersionType APIVersion { get { return _APIVersion; } }
143 william 28 /// <summary>
144     /// Gets the Expected Granny2 API Version
145     /// </summary>
146 william 14 public VersionType ExpectedAPIVersion { get { return new VersionType(APIVersionType.GrannyProductMajorVersion, APIVersionType.GrannyProductMinorVersion, APIVersionType.GrannyProductCustomization, APIVersionType.GrannyProductBuildNumber); } }
147     #endregion
148     }
149     #endregion
150     }