TokenHandler class##################This is a simple way to provide tokens for various reasons.Member Functions================TokenHandler(void)------------------1. Initialize the index to -12. create the access semaphore3. create the exclude list with no items~TokenHandler(void)-------------------1. delete the access lock2. call ResetExcludes and delete the exclude listint32 GetToken(void)--------------------Returns a unique token which is not equal to any excluded values1. create a local variable to return the new token2. acquire the access semaphore3. Increment the internal index4. while IsExclude(index) is true, increment the index5. assign it to the local variable6. release the access semaphore7. return the local variablevoid Reset(void)----------------1. acquire the access semaphore2. set the internal index to -13. release the access semaphorevoid ExcludeValue(int32 value)------------------------------1. acquire the access semaphore2. if IsExclude(value) is false, add it to the exclude list3. release the access semaphorevoid ResetExcludes(void)------------------------1. acquire the access semaphore2. Iterate through the exclude list, removing and deleting each item3. release the access semaphorebool IsExclude(int32 value)---------------------------1. create a boolean match flag and set it to false2. acquire the access semaphore3. iterate through the exclude list and see if the value matches any inthe list4. If there is a match, set the match flag to true and exit the loop5. release the access semaphore6. return the match flag