Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*
* randchnl.h * * Copyright (c) 1995 by DataBeam Corporation, Lexington, KY * * Abstract: * This is the interface file for the RandomChannelGenerator class. This * class inherits from the RandomNumberGenerator class. On instantiation, * instances of this class will internally generate a random number which * falls within the allowable range of dynamic channel values. Channel * assignments are then generated by incrementing this value each time a * new assignment is requested. Once the maximum allowable value has been * assigned, the next value to be generated "wraps around" to the minimum * allowable value. * * Obviously, this class does not generate completely random channel * values for each request. With a completely random generator, it is * possible to delete a channel in MCS, and then have the random number * generator assign the same value as the deleted channel before all * components of the system even know that the channel was deleted to * start with, thus causing erratic behavior in the system. In this * class, no channel can be reassigned until all other possible channels * have been assigned. * * This class can be modifed in the future to incorporate additional * "randomness" into the algorithm and still not reassign any channel * numbers before all other possible values are used. This, however, * would be at the expense of performance and/or memory resources. * * Caveats: * None. * * Author: * Alan D. May */ #ifndef _RANDOM_CHANNEL_GENERATOR_
#define _RANDOM_CHANNEL_GENERATOR_
#include "databeam.h"
#include "random.h"
/*
* The definition of the RandomChannelGenerator class. */ class RandomChannelGenerator { public: RandomChannelGenerator (); virtual ~RandomChannelGenerator (); RandomValue GetRandomChannel ();
private: ULong Current_Channel; }; typedef RandomChannelGenerator * PRandomChannelGenerator;
/*
* RandomChannelGenerator () * * Functional Description: * The constructor creates a random channel generator object by calling the * constructor for the parent class, RandomNumberGenerator. This then * automatically seeds the random number generator with the current time. * The default algorithm will be used. * * Formal Parameters: * None. * * Return Value: * None. * * Side Effects: * None. * * Caveats: * None. */
/*
* ~RandomChannelGenerator () * * Public * * Functional Description: * This is the destructor for the RandomChannelGenerator class. * * Formal Parameters: * None. * * Return Value: * None. * * Side Effects: * None. * * Caveats: * None. */
/*
* RandomValue GetRandomChannel () * * Public * * Functional Description: * This method returns a valid dynamic channel number. * * Formal Parameters: * None. * * Return Value: * A RandomValue in the range of valid dynamic channel values. * * Side Effects: * None. * * Caveats: * None. */
#endif
|