1 /* $Id: distribution.hpp 511866 2016-08-25 03:53:47Z sadyrovr $ 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government have not placed any restriction on its use or reproduction. 13 * 14 * Although all reasonable efforts have been taken to ensure the accuracy 15 * and reliability of the software and data, the NLM and the U.S. 16 * Government do not and cannot warrant the performance or results that 17 * may be obtained by using this software or data. The NLM and the U.S. 18 * Government disclaim all warranties, express or implied, including 19 * warranties of performance, merchantability or fitness for any particular 20 * purpose. 21 * 22 * Please cite the author in any work or product based on this material. 23 * 24 * =========================================================================== 25 * 26 * Authors: 27 * Dmitry Kazimirov 28 * 29 * File Description: 30 * Declaration of the CDiscreteDistribution class. 31 * 32 */ 33 34 /// @file uttp.hpp 35 /// This file contains declaration of the CDiscreteDistribution class. 36 37 #ifndef UTIL___DISTRIBUTION__HPP 38 #define UTIL___DISTRIBUTION__HPP 39 40 #include "rangelist.hpp" 41 42 BEGIN_NCBI_SCOPE 43 44 class CRandom; 45 46 /// @warning do not use this internal class, it will be removed. 47 class NCBI_XUTIL_EXPORT CDiscreteDistributionImpl 48 { 49 public: InitFromParameter(const char * parameter_name,const char * parameter_value,CRandom * random_gen)50 void InitFromParameter( 51 const char* parameter_name, 52 const char* parameter_value, 53 CRandom* random_gen) 54 { 55 m_RandomGen = random_gen; 56 CRangeListImpl::Parse(parameter_value, parameter_name, &m_RangeVector); 57 } 58 59 unsigned GetNextValue() const; 60 61 private: 62 CRandom* m_RandomGen; 63 CRangeListImpl::TRangeVector m_RangeVector; 64 }; 65 66 /// @deprecated 67 struct NCBI_DEPRECATED NCBI_XUTIL_EXPORT CDiscreteDistribution : 68 CDiscreteDistributionImpl {}; 69 70 END_NCBI_SCOPE 71 72 #endif /* UTIL___DISTRIBUTION__HPP */ 73