Gizmo3D

gzLicense.h

Go to the documentation of this file.
00001 //******************************************************************************
00002 // File         : gzLicense.h
00003 // Module       : gzBase
00004 // Description  : Class definition of the gzLicense class
00005 // Author       : Anders Modén      
00006 // Product      : GizmoBase 2.1.1
00007 //      
00008 // Copyright © 2003- Saab Training Systems AB, Sweden
00009 //          
00010 // NOTE:    GizmoBase is a platform abstraction utility layer for C++. It contains 
00011 //          design patterns and C++ solutions for the advanced programmer.
00012 //
00013 //
00014 // Revision History...                          
00015 //                                  
00016 // Who  Date    Description                     
00017 //                                  
00018 // AMO  990420  Created file    
00019 //
00020 //******************************************************************************
00021 #ifndef __GZ_LICENSE_H__
00022 #define __GZ_LICENSE_H__
00023 
00031 #include "gzBase.h"
00032 #include "gzService.h"
00033 #include "gzThread.h"
00034 
00036 
00037 enum gzLicenceFeature
00038 {   
00039     GZ_LICENSE_FEATURE_NONE     =   0 , 
00040     GZ_LICENSE_FEATURE_GRAPHICS =   (1<<0),
00041     GZ_LICENSE_FEATURE_SAVERS   =   (1<<1),
00042     GZ_LICENSE_FEATURE_DEVELOPER=   (1<<2)
00043 
00044 };
00045 
00046 GZ_USE_BIT_LOGIC(gzLicenceFeature);
00047 
00048 enum gzLicenseCheckFeature
00049 {   
00050     GZ_LICENSE_CHECK_FEATURE_VALID          =    1,
00051     GZ_LICENSE_CHECK_FEATURE_INVALID        =   -1,
00052     GZ_LICENSE_CHECK_FEATURE_WRONG_VERSION  =   -2,
00053     GZ_LICENSE_CHECK_FEATURE_EXPIRED        =   -3,
00054     GZ_LICENSE_CHECK_FEATURE_NOT_STARTED    =   -4,
00055     GZ_LICENSE_CHECK_FEATURE_NOT_LICENSED   =   -5,
00056     GZ_LICENSE_CHECK_FEATURE_PERMANENT      =   32767,
00057 };
00058 
00059 //******************************************************************************
00060 // Class    : gzLicense
00061 //                                  
00062 // Purpose  : Manage GizmoSDK Licenses 
00063 //                                  
00064 // Notes    : - 
00065 //                                  
00066 // Revision History...                          
00067 //                                  
00068 // Who  Date    Description                     
00069 //                                  
00070 // AMO  981128  Created 
00071 //                                  
00072 //******************************************************************************
00073 class gzLicense
00074 {
00075 public:
00076         
00077     GZ_BASE_EXPORT static gzULongLong   getMachineID();                                             
00078 
00079     GZ_BASE_EXPORT static gzUShort      getFeatureKey(const gzString &licenseName=GZ_EMPTY_STRING); 
00080 
00081     GZ_BASE_EXPORT static gzUShort      getFeatureKey(const gzULongLong &licenseKey);               
00082 
00083     GZ_BASE_EXPORT static gzVoid        notifyDefaultLicense();                                     
00084 
00085     GZ_BASE_EXPORT static gzULongLong   getLicenseKey(const gzString & licenseName=GZ_EMPTY_STRING);                
00086 
00087     GZ_BASE_EXPORT static gzULongLong   createLicenseKey(const gzString & licenseName,gzULongLong machid ,gzUShort start,gzUShort stop,gzUShort features,const gzString &password);
00088 
00089     GZ_BASE_EXPORT static gzLicenseCheckFeature getEncodedKey(gzULongLong &key,gzString licenseName=GZ_EMPTY_STRING);
00090 
00091     GZ_BASE_EXPORT static gzULongLong   getLicenseIdentifier(gzULongLong UID);
00092 
00093     GZ_BASE_EXPORT static gzULongLong   splashLicenseText(const gzString &header,const gzString &text,gzULongLong checkid=0);
00094 
00095     GZ_BASE_EXPORT static gzString      getLicenseInfoText();
00096 
00097     GZ_BASE_EXPORT static gzLong        getLicenseExpirationDays(const gzString &licenseName=GZ_EMPTY_STRING);
00098 
00099     GZ_BASE_EXPORT static gzBool        isPermanentLicense(const gzString &licenseName);
00100 
00101     GZ_BASE_EXPORT static gzBool        isPermanentLicenseSet(const gzString &licenseName);
00102 
00103     GZ_BASE_EXPORT static gzVoid        setPermanentLicense(const gzString &licenseName);
00104 
00105 };
00106 
00107 //******************************************************************************
00108 // Class    : gzLicenseManager
00109 //                                  
00110 // Purpose  : Manage licese server
00111 //                                  
00112 // Notes    : - 
00113 //                                  
00114 // Revision History...                          
00115 //                                  
00116 // Who  Date    Description                     
00117 //                                  
00118 // AMO  981128  Created 
00119 //                                  
00120 //******************************************************************************
00121 class  gzLicenseManager : public gzService , public gzThread
00122 {
00123 public:
00124 
00125     GZ_BASE_EXPORT gzLicenseManager();
00126 
00127     GZ_BASE_EXPORT virtual ~gzLicenseManager();
00128 
00129     GZ_BASE_EXPORT gzVoid process();
00130 
00131     GZ_BASE_EXPORT gzVoid process(const gzArgumentParser &args,gzBool runAsService);
00132 };
00133 
00134 enum gzFeatureInfo
00135 {
00136     GZ_FEATURE_OK,
00137     GZ_FEATURE_MISSING,
00138     GZ_FEATURE_NOT_ACTIVATED,
00139     GZ_FEATURE_APPLICATION_MASK_MISMATCH,
00140     GZ_FEATURE_USER_ROLE_MISMATCH,
00141     GZ_FEATURE_LICENSE_MISMATCH
00142 };
00143 
00144 //******************************************************************************
00145 // Class    : gzFeature
00146 //                                  
00147 // Purpose  : Manage license features, applications and roles
00148 //                                  
00149 // Notes    : - 
00150 //                                  
00151 // Revision History...                          
00152 //                                  
00153 // Who  Date    Description                     
00154 //                                  
00155 // AMO  070416  Created 
00156 //                                  
00157 //******************************************************************************
00158 class  gzFeature : public gzThreadSafeReference
00159 {
00160 public:
00161 
00162     GZ_BASE_EXPORT virtual ~gzFeature();
00163     GZ_BASE_EXPORT  gzBool  useDeepCopy() { return FALSE; } // Shallow share
00164 
00165     // Properties --------------------------
00166 
00167     GZ_PROPERTY_GET_EXPORT( gzString,       Name,           GZ_BASE_EXPORT);
00168     GZ_PROPERTY_GET_EXPORT( gzString,       Description,    GZ_BASE_EXPORT);
00169     GZ_PROPERTY_GET_EXPORT( gzULong,        AppMask,        GZ_BASE_EXPORT);
00170     GZ_PROPERTY_GET_EXPORT( gzULong,        RoleMask,       GZ_BASE_EXPORT);
00171     GZ_PROPERTY_GET_EXPORT( gzString,       License,        GZ_BASE_EXPORT);
00172     GZ_PROPERTY_GET_EXPORT( gzUShort,       FeatureMask,    GZ_BASE_EXPORT);
00173     GZ_PROPERTY_GET_EXPORT( gzBool,         Activated,      GZ_BASE_EXPORT);
00174 
00175 
00176     // Application Feature management ------------------
00177 
00178     GZ_BASE_EXPORT static gzVoid setFeature(    const gzString &    name,
00179                                                 const gzString &    description,
00180                                                 const gzULong       appMask,
00181                                                 const gzULong       roleMask,
00182                                                 const gzString &    license=GZ_EMPTY_STRING,
00183                                                 const gzUShort      featureMask=0);
00184 
00185     GZ_BASE_EXPORT static gzRefPointer<gzFeature> getFeature(const gzString &name );
00186 
00187     GZ_BASE_EXPORT static gzVoid removeFeature( const gzString &name );
00188 
00189     GZ_BASE_EXPORT static gzVoid clearFeatures();
00190 
00191     GZ_BASE_EXPORT static gzVoid setActivated(const gzString &featureName , gzBool activated);
00192 
00193     GZ_BASE_EXPORT static gzArray<gzRefPointer<gzFeature> > getFeatures();
00194 
00195     // Application & Role --------------------------
00196 
00197     GZ_BASE_EXPORT static gzVoid setApplicationMask(gzULong mask);
00198     GZ_BASE_EXPORT static gzULong getApplicationMask();
00199     GZ_BASE_EXPORT static gzVoid setSystemRoleMask(gzULong mask);
00200     GZ_BASE_EXPORT static gzULong getSystemRoleMask();
00201 
00202     // User Utilities -----------------------------------
00203 
00204     GZ_BASE_EXPORT static gzBool hasAllowedFeature(const gzString &featureName,gzFeatureInfo *info=NULL);
00205     GZ_BASE_EXPORT static gzLong getFeatureExpirationDays(const gzString &featureName);
00206 
00207     GZ_BASE_EXPORT static gzString getFeatureSetIdentification();
00208     GZ_BASE_EXPORT static gzVoid setFeatureSetIdentification(const gzString &string);
00209 
00210     GZ_BASE_EXPORT static gzBool readFeatures(const gzString &url,const gzString &elementName);
00211     GZ_BASE_EXPORT static gzBool writeFeatures(const gzString &url,const gzString &elementName,gzBool onlyActivated=TRUE,gzBool noDescriptions=FALSE);
00212 
00213     GZ_BASE_EXPORT static gzBool readFeatures(gzSerializeAdapter *adapter);
00214     GZ_BASE_EXPORT static gzBool writeFeatures(gzSerializeAdapter *adapter,gzBool onlyActivated=TRUE,gzBool noDescriptions=FALSE);
00215 
00216 private:
00217 
00218     GZ_BASE_EXPORT gzFeature();
00219 
00220     static  gzRefDict<gzString,gzFeature>   s_featureDict;
00221     static  gzMutex                         s_featureDictLocker;
00222     static  gzULong                         s_applicationMask;
00223     static  gzULong                         s_roleMask;
00224     static  gzString                        s_identification;
00225 };
00226 
00227 #endif

Documentation for Gizmo3D generated at Wed Feb 20 11:54:06 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond