12fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa/*
22fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * Copyright (C) 2013, The Android Open Source Project
32fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa *
42fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * Licensed under the Apache License, Version 2.0 (the "License");
52fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * you may not use this file except in compliance with the License.
62fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * You may obtain a copy of the License at
72fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa *
82fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa *     http://www.apache.org/licenses/LICENSE-2.0
92fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa *
102fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * Unless required by applicable law or agreed to in writing, software
112fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * distributed under the License is distributed on an "AS IS" BASIS,
122fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * See the License for the specific language governing permissions and
142fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa * limitations under the License.
152fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa */
162fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
172fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa#ifndef LATINIME_HISTORICAL_INFO_H
182fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa#define LATINIME_HISTORICAL_INFO_H
192fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
202fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa#include "defines.h"
212fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
222fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasanamespace latinime {
232fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
242fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasaclass HistoricalInfo {
252fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa public:
262fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    // Invalid historical info.
272fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    HistoricalInfo()
282fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa            : mTimestamp(NOT_A_TIMESTAMP), mLevel(0), mCount(0) {}
292fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
302fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    HistoricalInfo(const int timestamp, const int level, const int count)
312fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa            : mTimestamp(timestamp), mLevel(level), mCount(count) {}
322fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
332fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    bool isValid() const {
342fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa        return mTimestamp != NOT_A_TIMESTAMP;
352fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    }
362fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
372fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    int getTimeStamp() const {
382fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa        return mTimestamp;
392fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    }
402fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
412fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    int getLevel() const {
422fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa        return mLevel;
432fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    }
442fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
452fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    int getCount() const {
462fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa        return mCount;
472fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    }
482fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
492fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa private:
502fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    // Copy constructor is public to use this class as a type of return value.
512fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    DISALLOW_ASSIGNMENT_OPERATOR(HistoricalInfo);
522fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa
532fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    const int mTimestamp;
542fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    const int mLevel;
552fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa    const int mCount;
562fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa};
572fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa} // namespace latinime
582fa3693c264a4c150ac307d9bb7f6f8f18cc4ffcKen Wakasa#endif /* LATINIME_HISTORICAL_INFO_H */
59