1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef IPP_USB_HTTP_CONST_VALUE_H
17 #define IPP_USB_HTTP_CONST_VALUE_H
18 
19 namespace OHOS::Print {
20 const std::string LOCAL_HOST = "127.0.0.1";
21 const std::string HTTP_CONTENT_LENGTH = "Content-Length";
22 const std::string HTTP_TRANSFER_ENCODING = "Transfer-Encoding";
23 const std::string HTTP_EXPECT = "Expect";
24 const std::string HTTP_CHUNKED = "chunked";
25 const std::string HTTP_POST = "POST /ipp/print HTTP/1.1\r\n";
26 const std::string HTTP_MSG_STRING_R_AND_N = "\r\n";
27 const std::string HTTP_MSG_STRING_CHUNK_END = "0\r\n\r\n";
28 const std::string HTTP_OPERATION_GET_ATTR = "GetAttr";
29 const std::string HTTP_OPERATION_SEND_DOC = "SendDoc";
30 const std::string HTTP_OPERATION_COMMON = "Common";
31 const std::string PRINTER_ID_PREFIX = "USB-";
32 const std::string HTTP_100_CONTINUE = "HTTP/1.1 100";
33 
34 const int HTTP_REQUEST_GET_ATTR = 11;
35 const int HTTP_REQUEST_SEND_DOC = 6;
36 
37 const int HTTP_RESPONSE_STATUS_100 = 100;
38 const int HTTP_RESPONSE_STATUS_101 = 101;
39 const int HTTP_RESPONSE_STATUS_102 = 102;
40 const int HTTP_RESPONSE_STATUS_103 = 103;
41 const int HTTP_RESPONSE_STATUS_200 = 200;
42 const int HTTP_RESPONSE_STATUS_201 = 201;
43 const int HTTP_RESPONSE_STATUS_202 = 202;
44 const int HTTP_RESPONSE_STATUS_203 = 203;
45 const int HTTP_RESPONSE_STATUS_204 = 204;
46 const int HTTP_RESPONSE_STATUS_205 = 205;
47 const int HTTP_RESPONSE_STATUS_206 = 206;
48 const int HTTP_RESPONSE_STATUS_207 = 207;
49 const int HTTP_RESPONSE_STATUS_208 = 208;
50 const int HTTP_RESPONSE_STATUS_226 = 226;
51 const int HTTP_RESPONSE_STATUS_300 = 300;
52 const int HTTP_RESPONSE_STATUS_301 = 301;
53 const int HTTP_RESPONSE_STATUS_302 = 302;
54 const int HTTP_RESPONSE_STATUS_303 = 303;
55 const int HTTP_RESPONSE_STATUS_304 = 304;
56 const int HTTP_RESPONSE_STATUS_305 = 305;
57 const int HTTP_RESPONSE_STATUS_306 = 306;
58 const int HTTP_RESPONSE_STATUS_307 = 307;
59 const int HTTP_RESPONSE_STATUS_308 = 308;
60 const int HTTP_RESPONSE_STATUS_400 = 400;
61 const int HTTP_RESPONSE_STATUS_401 = 401;
62 const int HTTP_RESPONSE_STATUS_402 = 402;
63 const int HTTP_RESPONSE_STATUS_403 = 403;
64 const int HTTP_RESPONSE_STATUS_404 = 404;
65 const int HTTP_RESPONSE_STATUS_405 = 405;
66 const int HTTP_RESPONSE_STATUS_406 = 406;
67 const int HTTP_RESPONSE_STATUS_407 = 407;
68 const int HTTP_RESPONSE_STATUS_408 = 408;
69 const int HTTP_RESPONSE_STATUS_409 = 409;
70 const int HTTP_RESPONSE_STATUS_410 = 410;
71 const int HTTP_RESPONSE_STATUS_411 = 411;
72 const int HTTP_RESPONSE_STATUS_412 = 412;
73 const int HTTP_RESPONSE_STATUS_413 = 413;
74 const int HTTP_RESPONSE_STATUS_414 = 414;
75 const int HTTP_RESPONSE_STATUS_415 = 415;
76 const int HTTP_RESPONSE_STATUS_416 = 416;
77 const int HTTP_RESPONSE_STATUS_417 = 417;
78 const int HTTP_RESPONSE_STATUS_418 = 418;
79 const int HTTP_RESPONSE_STATUS_421 = 421;
80 const int HTTP_RESPONSE_STATUS_422 = 422;
81 const int HTTP_RESPONSE_STATUS_423 = 423;
82 const int HTTP_RESPONSE_STATUS_424 = 424;
83 const int HTTP_RESPONSE_STATUS_425 = 425;
84 const int HTTP_RESPONSE_STATUS_426 = 426;
85 const int HTTP_RESPONSE_STATUS_428 = 428;
86 const int HTTP_RESPONSE_STATUS_429 = 429;
87 const int HTTP_RESPONSE_STATUS_431 = 431;
88 const int HTTP_RESPONSE_STATUS_451 = 451;
89 const int HTTP_RESPONSE_STATUS_501 = 501;
90 const int HTTP_RESPONSE_STATUS_502 = 502;
91 const int HTTP_RESPONSE_STATUS_503 = 503;
92 const int HTTP_RESPONSE_STATUS_504 = 504;
93 const int HTTP_RESPONSE_STATUS_505 = 505;
94 const int HTTP_RESPONSE_STATUS_506 = 506;
95 const int HTTP_RESPONSE_STATUS_507 = 507;
96 const int HTTP_RESPONSE_STATUS_508 = 508;
97 const int HTTP_RESPONSE_STATUS_510 = 510;
98 const int HTTP_RESPONSE_STATUS_511 = 511;
99 const int HTTP_RESPONSE_STATUS_500 = 500;
100 
101 const int HTTP_COMMON_CONST_VALUE_0 = 0;
102 const int HTTP_COMMON_CONST_VALUE_1 = 1;
103 const int HTTP_COMMON_CONST_VALUE_2 = 2;
104 const int HTTP_COMMON_CONST_VALUE_3 = 3;
105 const int HTTP_COMMON_CONST_VALUE_4 = 4;
106 const int HTTP_COMMON_CONST_VALUE_5 = 5;
107 const int HTTP_COMMON_CONST_VALUE_6 = 6;
108 const int HTTP_COMMON_CONST_VALUE_8 = 8;
109 const int HTTP_COMMON_CONST_VALUE_9 = 9;
110 const int HTTP_COMMON_CONST_VALUE_10 = 10;
111 const int HTTP_COMMON_CONST_VALUE_11 = 11;
112 const int HTTP_COMMON_CONST_VALUE_12 = 12;
113 const int HTTP_COMMON_CONST_VALUE_14 = 14;
114 const int HTTP_COMMON_CONST_VALUE_15 = 15;
115 const int HTTP_COMMON_CONST_VALUE_16 = 16;
116 const int HTTP_COMMON_CONST_VALUE_18 = 18;
117 const int HTTP_COMMON_CONST_VALUE_25 = 25;
118 const int HTTP_COMMON_CONST_VALUE_31 = 31;
119 const int HTTP_COMMON_CONST_VALUE_33 = 33;
120 const int HTTP_COMMON_CONST_VALUE_47 = 47;
121 const int HTTP_COMMON_CONST_VALUE_50 = 50;
122 const int HTTP_COMMON_CONST_VALUE_100 = 100;
123 const int HTTP_COMMON_CONST_VALUE_300 = 300;
124 const int HTTP_COMMON_CONST_VALUE_500 = 500;
125 const int HTTP_COMMON_CONST_VALUE_1000 = 1000;
126 
127 const int INDEX_0 = 0;
128 const int INDEX_1 = 1;
129 const int INDEX_2 = 2;
130 const int INDEX_3 = 3;
131 const int INDEX_4 = 4;
132 const int INDEX_5 = 5;
133 const int INDEX_6 = 6;
134 const int INDEX_7 = 7;
135 const int INDEX_8 = 8;
136 const int INDEX_9 = 9;
137 const int INDEX_10 = 10;
138 const int INDEX_11 = 11;
139 
140 const size_t HTTP_SERVER_MAX_LENGTH = 1024 * 1024 * 512;
141 const int HTTP_MIN_PORT = 60000;
142 const int HTTP_MAX_PORT = 65535;
143 const int HTTP_SERVER_LISTEN_PORT = 60000;
144 const size_t USB_DATA_MAX_LENGTH = 1024 * 16;
145 const size_t USB_ENDPOINT_MAX_LENGTH = 512;
146 const int USB_INTERFACE_MIN_COUNT = 2;
147 const int INVAILD_VALUE = -1;
148 const int RESPONSE_RETRY_MAX_TIMES = 300;
149 const int READ_RETRY_MAX_TIMES = 200;
150 const int RESPONSE_RETRY_INTERVAL = 100;
151 const int USB_BULKTRANSFER_WRITE_TIMEOUT = 500;
152 const int USB_BULKTRANSFER_WRITE_SLEEP = 1000;
153 const int WRITE_RETRY_MAX_TIMES = 20;
154 const int CLAIM_INTERFACE_RETRY_MAX_TIMES = 5;
155 const int USB_BULKTRANSFER_READ_TIMEOUT = 500;
156 const int USB_READ_INTERVAL = 50;
157 const int USB_WRITE_INTERVAL = 50;
158 const int CPP_HTTP_OK = 1;
159 const int CPP_HTTP_FAIL = 0;
160 const int REQID_OPERAID_LEN = 8;
161 const int USB_CONTROLTRANSFER_READ_TIMEOUT = 2000;
162 
163 const char HTTP_MSG_CHAR_1 = '1';
164 const char HTTP_MSG_CHAR_2E = '.';
165 const char HTTP_MSG_CHAR_A = 'A';
166 const char HTTP_MSG_CHAR_0 = '0';
167 const char HTTP_MSG_CHAR_A_S = 'a';
168 const char HTTP_MSG_CHAR_F_S = 'f';
169 const char HTTP_MSG_CHAR_F = 'F';
170 const char HTTP_MSG_CHAR_R0 = '\0';
171 const char HTTP_MSG_CHAR_20 = ' ';
172 const char HTTP_MSG_CHAR_2B = '+';
173 const char HTTP_MSG_CHAR_0D = '\r';
174 const char HTTP_MSG_CHAR_0A = '\n';
175 const char HTTP_MSG_CHAR_27 = '\'';
176 const char HTTP_MSG_CHAR_2C = ',';
177 const char HTTP_MSG_CHAR_3B = ';';
178 const char HTTP_MSG_CHAR_BAI_FEN = '%';
179 const char SPLIT_VALUE_COLON = ':';
180 
181 const uint8_t HTTP_SPLIT_R_CODE = 13;                // '\r'
182 const uint8_t HTTP_SPLIT_N_CODE = 10;                // '\n'
183 const uint8_t CODE_SPLIT_VALUE_COLON = 58;             // ':' 冒号分隔符
184 const uint8_t IPP_END_SPLIT_VALUE = 3;               // ipp协议分割符号
185 const uint8_t HTTP_RESPONSE_H = 72;                  // 'H'
186 const uint8_t HTTP_RESPONSE_T = 84;                  // 'T'
187 const uint8_t HTTP_RESPONSE_P = 80;                  // 'P'
188 const uint8_t HTTP_RESPONSE_VERSION_SPLIT_GANG = 47; // '/'
189 const int32_t USB_DEVICE_CLASS_PRINT = 7;     // class is 7 the device is printer
190 const int32_t USB_DEVICE_SUBCLASS_PRINT = 1;  // subclass is 1 the device is printer
191 const int32_t USB_DEVICE_PROTOCOL_PRINT = 4;  // can support ipp usb
192 const int32_t USB_DEVICE_INTERFACE_COUNT = 2; // can support ipp usb
193 const int32_t EORROR_HDF_DEV_ERR_IO_FAILURE = -1;
194 const int32_t EORROR_HDF_DEV_ERR_TIME_OUT = -7;
195 const int32_t EORROR_HDF_DEV_ERR_NO_DEVICE = -202;
196 const uint8_t USB_REQUESTTYPE_HOST_TO_DEVICE = 0X00;
197 const uint8_t USB_REQUESTTYPE_DEVICE_TO_HOST = 0X80;
198 const uint8_t USB_REQUEST_SET_CONFIGURATION = 0X09;
199 const uint8_t USB_REQUEST_GET_DESCRIPTOR = 0X06;
200 const uint16_t USB_VALUE_DESCRIPTOR_TYPE_STRING = 0X03;
201 const uint16_t USB_VALUE_DESCRIPTOR_INDEX_PRODUCT_NAME = 0X02;
202 const uint16_t USB_VALUE_DESCRIPTOR_INDEX_SERIAL_NUMBER = 0X03;
203 const uint16_t USB_INDEX_0 = 0X00;
204 const uint16_t USB_INDEX_LANGUAGE_ID_ENGLISH = 0X409;
205 }
206 #endif