home *** CD-ROM | disk | FTP | other *** search
- Save Format v2.0(1)
- @begin ClassFile "TokenIssuer"
- Exported 1;
- Abstract 0;
- Interface 0;
- PackageName "";
- Language "Java";
-
- @begin UserFunction "TokenIssuer(int maxTokens)"
- GencodeSrcLine 10;
- FunctionName "TokenIssuer::TokenIssuer(int maxTokens)";
- @end;
-
- @begin UserFunction "Prototype for TokenIssuer(int maxTokens)"
- Private 1;
- GencodeSrcLine -1;
- FunctionName "TokenIssuer::Prototype for TokenIssuer(int maxTokens)";
- @end;
-
- @begin UserFunction "getToken()"
- GencodeSrcLine 24;
- FunctionName "TokenIssuer::getToken()";
- @end;
-
- @begin UserFunction "Prototype for getToken()"
- Private 1;
- GencodeSrcLine -1;
- FunctionName "TokenIssuer::Prototype for getToken()";
- @end;
-
- @begin UserFunction "relinquishToken()"
- GencodeSrcLine 35;
- FunctionName "TokenIssuer::relinquishToken()";
- @end;
-
- @begin UserFunction "Prototype for relinquishToken()"
- Private 1;
- GencodeSrcLine -1;
- FunctionName "TokenIssuer::Prototype for relinquishToken()";
- @end;
-
- @begin HPPPrefixBlock
- @begin-code HPPPrefix
-
- // add your custom import statements here
-
- @end-code;
- GencodeSrcLine 6;
- @end;
-
- @begin ClassContentsBlock
- @begin-code ClassContents
-
- // add your data members here
- int _maxTokens;
- int _issuedTokens = 0;
-
- @end-code;
- GencodeSrcLine 41;
- @end;
-
- @begin-code BaseClassList
-
- extends Object
-
- @end-code;
-
- @begin-code GeneratedClassContents
-
-
- @end-code;
-
- @begin-code Code "TokenIssuer::TokenIssuer(int maxTokens)"
-
- //****************************
- /**
- * This class issues tokens to running threads and
- * causes threads to wait when there are no tokens
- * available. The number of tokens is supplied in
- * the constructor and synchronized methods are used
- * to eliminate concurrency issues.
- */
-
- public @CLASSNAME@(int maxTokens)
- //****************************
- {
- _maxTokens = maxTokens;
- }
-
- @end-code;
-
- @begin-code Code "TokenIssuer::Prototype for TokenIssuer(int maxTokens)"
-
- public:
- void @CLASSNAME@(int maxTokens);
-
- @end-code;
-
- @begin-code Code "TokenIssuer::getToken()"
-
- public synchronized void getToken()
- //****************************
- {
- while (_issuedTokens == _maxTokens) {
- try {
- wait();
- } catch (InterruptedException InTokenLine) {}
- }
- _issuedTokens++;
- return;
- }
-
- @end-code;
-
- @begin-code Code "TokenIssuer::Prototype for getToken()"
-
- public:
- syncronized boolean getToken();
-
- @end-code;
-
- @begin-code Code "TokenIssuer::relinquishToken()"
-
- public synchronized void relinquishToken()
- //****************************
- {
- _issuedTokens--;
- notifyAll();
- }
-
- @end-code;
-
- @begin-code Code "TokenIssuer::Prototype for relinquishToken()"
-
- public:
- syncronized void relinquishToken();
-
- @end-code;
- @end;
-