00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_LICENSES_PRODUCT_
00025 #define _SO_LICENSES_PRODUCT_
00026
00027 #include <Inventor/SbString.h>
00028 #include <Inventor/sys/port.h>
00029
00030
00031 #define MAX_PROD_STR 30
00032 #define MAX_VERS_STR 6
00033 #define MAX_DATE_STR 11
00034 #define MAX_USER_STR 3
00035 #define MAX_CHEK_STR 12
00036 #define MAX_INFO_STR 64
00037 #define MAX_HOST_STR 17
00038
00039 enum SbProduct {
00040
00041 OpenInventor = 0,
00042 DirectViz,
00043 HardCopy,
00044 MeshVizXLM,
00045 MeshViz,
00046 MeshVizInterface,
00047 MeshVizExtractor,
00048 VolumeVizLDM,
00049 VolumeViz,
00050 LDMWriter,
00051 AllInventor,
00052 OivCatia5Reader,
00053 OivDxfReader,
00054 OivIgesReader,
00055 OivStepReader,
00056
00057
00058 OpenInventor_NET,
00059 DirectViz_NET,
00060 HardCopy_NET,
00061 MeshVizXLM_NET,
00062 MeshViz_NET,
00063 VolumeVizLDM_NET,
00064 VolumeViz_NET,
00065 LDMWriter_NET,
00066 AllInventor_NET,
00067
00068
00069 OpenInventorJava,
00070 DirectVizJava,
00071 HardCopyJava,
00072 MeshVizXLMJava,
00073 MeshVizJava,
00074 VolumeVizLDMJava,
00075 VolumeVizJava,
00076 LDMWriterJava,
00077 AllInventorJava,
00078
00079
00080 IvTuneViewer,
00081 ScaleVizCluster,
00082 ScaleVizWorkstation,
00083
00084 NumberOfProducts
00085 };
00086
00087
00098 class SoLicensedProduct
00099 {
00100
00101 public:
00102
00103
00104 struct SbLicenseInfo {
00105 char product_str[ MAX_PROD_STR + 1 ];
00106 char version_str[ MAX_VERS_STR + 1 ];
00107 char expdate_str[ MAX_DATE_STR + 1 ];
00108 char numuser_str[ MAX_USER_STR + 1 ];
00109 char chksum_str [ MAX_CHEK_STR + 1 ];
00110 char info_str [ MAX_INFO_STR + 1 ];
00111 char hostid_str [ MAX_HOST_STR + 1 ];
00112 int expireWarningDays;
00113 };
00114
00115 enum SbLicenseType {
00116 SDK,
00117 RT
00118 };
00119
00123 SbProduct getProductName() const;
00124
00128 const std::vector<SbString> getProductVersions() const;
00129
00136 int getDaysToExpire(const SbString version);
00137
00141 SbLicenseType getLicenseType() const;
00142
00146 void getLicense(const SbString version, SbLicenseInfo& lic);
00147
00151 void getExpiredVersions(std::vector<SbString>& vec);
00152
00156 bool isTrialProduct() const;
00157
00161 bool isMasterPassword() const;
00162
00163 private:
00164
00168 void setProductName(SbProduct name);
00169
00173 void setLicensesAndVersions(SbLicenseInfo license);
00174
00178 void setProductType(SbLicenseType type);
00179
00183 void setTrialInfo(bool trial);
00184
00185 void setMasterPassInfo(bool master);
00186
00187 private:
00188 SbProduct m_productName;
00189 std::vector<SbLicenseInfo> m_licenses;
00190 std::vector<SbString> m_versions;
00191 SbLicenseType m_productType;
00192 bool m_isTrial;
00193 bool m_isMasterPassword;
00194 };
00195
00196 #endif
00197