OSDN Git Service

ツイートに添付された画像の ext_alt_text の受信に対応
[opentween/open-tween.git] / OpenTween / Api / ApiLimit.cs
1 // OpenTween - Client of Twitter
2 // Copyright (c) 2013 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
3 // All rights reserved.
4 //
5 // This file is part of OpenTween.
6 //
7 // This program is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General Public License as published by the Free
9 // Software Foundation; either version 3 of the License, or (at your option)
10 // any later version.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 // for more details.
16 //
17 // You should have received a copy of the GNU General Public License along
18 // with this program. If not, see <http://www.gnu.org/licenses/>, or write to
19 // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
20 // Boston, MA 02110-1301, USA.
21
22 using System;
23 using System.Collections.Generic;
24 using System.Linq;
25 using System.Text;
26
27 namespace OpenTween.Api
28 {
29     public class ApiLimit
30     {
31         /// <summary>
32         /// API 実行回数制限の値
33         /// </summary>
34         public int AccessLimitCount { get; }
35
36         /// <summary>
37         /// API 実行回数制限までの残回数
38         /// </summary>
39         public int AccessLimitRemain { get; }
40
41         /// <summary>
42         /// API 実行回数制限がリセットされる日時
43         /// </summary>
44         public DateTime AccessLimitResetDate { get; }
45
46         /// <summary>
47         /// API 実行回数制限値を取得した日時
48         /// </summary>
49         public DateTime UpdatedAt { get; }
50
51         public ApiLimit(int limitCount, int limitRemain, DateTime resetDate)
52             : this(limitCount, limitRemain, resetDate, DateTime.Now)
53         {
54         }
55
56         public ApiLimit(int limitCount, int limitRemain, DateTime resetDate, DateTime updatedAt)
57         {
58             this.AccessLimitCount = limitCount;
59             this.AccessLimitRemain = limitRemain;
60             this.AccessLimitResetDate = resetDate;
61             this.UpdatedAt = updatedAt;
62         }
63
64         public override bool Equals(object obj)
65         {
66             return this.Equals(obj as ApiLimit);
67         }
68
69         public bool Equals(ApiLimit obj)
70         {
71             return obj != null &&
72                 this.AccessLimitCount == obj.AccessLimitCount &&
73                 this.AccessLimitRemain == obj.AccessLimitRemain &&
74                 this.AccessLimitResetDate == obj.AccessLimitResetDate;
75         }
76
77         public override int GetHashCode()
78         {
79             return this.AccessLimitCount ^ this.AccessLimitRemain ^ this.AccessLimitResetDate.GetHashCode();
80         }
81     }
82 }