1b89a7cc2SEnji Cooper // Copyright 2005, Google Inc. 2b89a7cc2SEnji Cooper // All rights reserved. 3b89a7cc2SEnji Cooper // 4b89a7cc2SEnji Cooper // Redistribution and use in source and binary forms, with or without 5b89a7cc2SEnji Cooper // modification, are permitted provided that the following conditions are 6b89a7cc2SEnji Cooper // met: 7b89a7cc2SEnji Cooper // 8b89a7cc2SEnji Cooper // * Redistributions of source code must retain the above copyright 9b89a7cc2SEnji Cooper // notice, this list of conditions and the following disclaimer. 10b89a7cc2SEnji Cooper // * Redistributions in binary form must reproduce the above 11b89a7cc2SEnji Cooper // copyright notice, this list of conditions and the following disclaimer 12b89a7cc2SEnji Cooper // in the documentation and/or other materials provided with the 13b89a7cc2SEnji Cooper // distribution. 14b89a7cc2SEnji Cooper // * Neither the name of Google Inc. nor the names of its 15b89a7cc2SEnji Cooper // contributors may be used to endorse or promote products derived from 16b89a7cc2SEnji Cooper // this software without specific prior written permission. 17b89a7cc2SEnji Cooper // 18b89a7cc2SEnji Cooper // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19b89a7cc2SEnji Cooper // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20b89a7cc2SEnji Cooper // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21b89a7cc2SEnji Cooper // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22b89a7cc2SEnji Cooper // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23b89a7cc2SEnji Cooper // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24b89a7cc2SEnji Cooper // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25b89a7cc2SEnji Cooper // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26b89a7cc2SEnji Cooper // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27b89a7cc2SEnji Cooper // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28b89a7cc2SEnji Cooper // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29b89a7cc2SEnji Cooper 30b89a7cc2SEnji Cooper // A sample program demonstrating using Google C++ testing framework. 31*28f6c2f2SEnji Cooper #ifndef GOOGLETEST_SAMPLES_SAMPLE4_H_ 32*28f6c2f2SEnji Cooper #define GOOGLETEST_SAMPLES_SAMPLE4_H_ 33b89a7cc2SEnji Cooper 34b89a7cc2SEnji Cooper // A simple monotonic counter. 35b89a7cc2SEnji Cooper class Counter { 36b89a7cc2SEnji Cooper private: 37b89a7cc2SEnji Cooper int counter_; 38b89a7cc2SEnji Cooper 39b89a7cc2SEnji Cooper public: 40b89a7cc2SEnji Cooper // Creates a counter that starts at 0. Counter()41b89a7cc2SEnji Cooper Counter() : counter_(0) {} 42b89a7cc2SEnji Cooper 43b89a7cc2SEnji Cooper // Returns the current counter value, and increments it. 44b89a7cc2SEnji Cooper int Increment(); 45b89a7cc2SEnji Cooper 46b89a7cc2SEnji Cooper // Returns the current counter value, and decrements it. 47b89a7cc2SEnji Cooper int Decrement(); 48b89a7cc2SEnji Cooper 49b89a7cc2SEnji Cooper // Prints the current counter value to STDOUT. 50b89a7cc2SEnji Cooper void Print() const; 51b89a7cc2SEnji Cooper }; 52b89a7cc2SEnji Cooper 53*28f6c2f2SEnji Cooper #endif // GOOGLETEST_SAMPLES_SAMPLE4_H_ 54