source: asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.h@ 364

Last change on this file since 364 was 364, checked in by coas-nagasima, 5 years ago

TINETとSocket APIなどを更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 4.2 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2016 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
15 * の無保証規定を掲載すること.
16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
18 * と.
19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
20 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
22 * 報告すること.
23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27 * 免責すること.
28 *
29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33 * の責任を負わない.
34 *
35 * @(#) $Id$
36 */
37
38#ifndef _CLIENT_H_
39#define _CLIENT_H_
40
41typedef struct client_info_t {
42 char client_id[80];
43 char client_secret[32];
44} client_info_t;
45
46typedef struct credential_t {
47 char device_code[100];
48 char user_code[12];
49 int expires_in;
50 int interval;
51 char verification_url[32];
52 char access_token[132];
53 char refresh_token[64];
54 char scope[64];
55 char token_type[16];
56} credential_t;
57
58typedef struct error_response_t {
59 char error[64];
60 char error_description[64];
61} error_response_t;
62
63typedef struct drive_file_t {
64 char kind[32];
65 char id[36];
66 char name[256];
67 char mimeType[40];
68} drive_file_t;
69
70typedef enum google_drive_parse_state_t {
71 psRoot,
72 psDeviceCode,
73 psUserCode,
74 psExpiresIn,
75 psInterval,
76 psVerificationUrl,
77 psAccessToken,
78 psRefreshToken,
79 psScope,
80 psTokenType,
81 psKind,
82 psId,
83 psName,
84 psMimeType,
85 psError,
86 psErrorDescription,
87} google_drive_parse_state_t;
88
89struct jsonsl_st;
90typedef struct jsonsl_st *jsonsl_t;
91
92typedef void (*parser_callback_t)(struct google_drive_t *gd, struct jsonsl_state_st *state, const char *buf);
93
94typedef struct google_drive_t {
95 client_info_t client_info;
96 credential_t credential;
97 drive_file_t file;
98 error_response_t error;
99 jsonsl_t jsn;
100 google_drive_parse_state_t state;
101 char fname[sizeof("1:/log/20160101000000.log")];
102 char jsn_buf[256];
103 int jsn_buf_pos;
104 parser_callback_t start;
105 parser_callback_t end;
106} google_drive_t;
107
108extern google_drive_t google_drive;
109
110void client_init(void);
111void client_final(void);
112
113void client_set_client_id(const char *client_id);
114void client_set_client_secret(const char *client_secret);
115int client_get_device_id(int argc, char **argv);
116int client_get_access_token(int argc, char **argv);
117int client_update_access_token(int argc, char **argv);
118int client_revoke(int argc, char **argv);
119int client_upload_file(int argc, char **argv);
120
121#endif /* _CLIENT_H_ */
Note: See TracBrowser for help on using the repository browser.