|
|
|
|
||
|
DEFINITION MODULE LicensesMgr; (******************************************************************* Module LicensesMgr (Version 1.0) Copyright (c) 2001-2006 by Dimitrios Gyalistras and ETH Zurich. Purpose Software licence definition and testing from within a Modula-2 program. Remarks Works only under Unix systems. Programming o Design Dimitrios Gyalistras 25/11/2001 o Implementation Dimitrios Gyalistras 25/11/2001 ETH Zurich Systems Ecology CHN E 35.1 Universitaetstrasse 16 8092 Zurich SWITZERLAND URLs: <mailto:RAMSES@env.ethz.ch> <http://www.sysecol.ethz.ch> <http://www.sysecol.ethz.ch/SimSoftware/RAMSES> Last revision of definition: 11/12/2001 DG *******************************************************************) TYPE LicenseType = ( undefLicenseType, licenseGranted, noLicence ); PROCEDURE SetLicenseForNode( nodename : ARRAY OF CHAR; (* /usr/bin/uname -n *) expirYear : INTEGER; expirMonth : INTEGER; expirDay : INTEGER; l : LicenseType ); PROCEDURE SetLicenseForHost( hostid : ARRAY OF CHAR; (* /usr/bin/hostid *) expirYear : INTEGER; expirMonth : INTEGER; expirDay : INTEGER; l : LicenseType ); PROCEDURE SetLicenseForUser( userid : ARRAY OF CHAR; (* /usr/ucb/whoami *) expirYear : INTEGER; expirMonth : INTEGER; expirDay : INTEGER; l : LicenseType ); PROCEDURE GetCurNodeName( VAR nodename : ARRAY OF CHAR ); PROCEDURE GetCurHostId ( VAR hostid : ARRAY OF CHAR ); PROCEDURE GetCurUserId ( VAR userid : ARRAY OF CHAR ); PROCEDURE GetNodeNames ( VAR numNodes: INTEGER; VAR nodenames: ARRAY OF CHAR ); PROCEDURE LicenseForNode ( nodename: ARRAY OF CHAR ): LicenseType; PROCEDURE ExpirYearForNode ( nodename: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirMonthForNode( nodename: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirDayForNode ( nodename: ARRAY OF CHAR ): INTEGER; PROCEDURE GetHostIds ( VAR numHosts: INTEGER; VAR hostids: ARRAY OF CHAR ); PROCEDURE LicenseForHost ( hostid: ARRAY OF CHAR ): LicenseType; PROCEDURE ExpirYearForHost ( hostid: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirMonthForHost( hostid: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirDayForHost ( hostid: ARRAY OF CHAR ): INTEGER; PROCEDURE GetUserIds ( VAR numUsers: INTEGER; VAR userids: ARRAY OF CHAR ); PROCEDURE LicenseForUser ( userid: ARRAY OF CHAR ): LicenseType; PROCEDURE ExpirYearForUser ( userid: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirMonthForUser( userid: ARRAY OF CHAR ): INTEGER; PROCEDURE ExpirDayForUser ( userid: ARRAY OF CHAR ): INTEGER; PROCEDURE DateOK( year, month, day: INTEGER): BOOLEAN; (* Returns true, if the current date as obtained from the operating system is smaller or equal to the date specified by the parameters "year", "month" and "day". *) PROCEDURE NodenameOK(): BOOLEAN; PROCEDURE HostidOK (): BOOLEAN; PROCEDURE UseridOK (): BOOLEAN; (* A "XxxxxOK"-procedure returns TRUE if no item of type "Xxxxx" has been defined by means of "SetLicenseForXxxxx" (i.e. "GetXxxxx" returns "numXxxxx" = 0), or if "LicenseForXxxxx() = licenseGranted" AND "DateOK() = TRUE". *) PROCEDURE LicenseOK (): BOOLEAN; (* Returns TRUE if all "XxxxxOK"-procedures return TRUE. *) END LicensesMgr.
|
||
|
|
|