home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 October
/
Chip_1997-10_cd.bin
/
tema
/
sybase
/
powerj
/
samples.z
/
TokenIssuer.wxc
< prev
next >
Wrap
Text File
|
1997-01-28
|
3KB
|
140 lines
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;