Mercurial > mercurial > hgweb_golang.cgi
comparison src/kaigo/horori/searcher/include/net.h @ 45:20b42e2deae1
add alloc, (new)mover, merger & (new)searcher.
author | pyon@macmini |
---|---|
date | Thu, 16 Apr 2020 20:59:35 +0900 |
parents | |
children | 169936fed61b |
comparison
equal
deleted
inserted
replaced
44:b50f2a581cf8 | 45:20b42e2deae1 |
---|---|
1 // Filename : net.h | |
2 // Last Change: 2020-03-30 ŒŽ 15:05:58. | |
3 // | |
4 #pragma once | |
5 | |
6 #include <wx/sstream.h> | |
7 #include <wx/wfstream.h> | |
8 #include <wx/zstream.h> | |
9 #include <wx/tarstrm.h> | |
10 #include <wx/protocol/http.h> | |
11 | |
12 wxString HttpGetText(wxString addr, wxString port, wxString url) | |
13 { | |
14 wxHTTP get; | |
15 get.SetFlags(wxSOCKET_WAITALL|wxSOCKET_BLOCK); | |
16 while (!get.Connect(addr, wxAtoi(port))) | |
17 wxSleep(1); | |
18 | |
19 wxString res; | |
20 wxInputStream *httpStream = get.GetInputStream(url); | |
21 if (get.GetError() == wxPROTO_NOERR) { | |
22 wxStringOutputStream out_stream(&res); | |
23 httpStream->Read(out_stream); | |
24 } | |
25 | |
26 wxDELETE(httpStream); | |
27 get.Close(); | |
28 | |
29 return res; | |
30 }; | |
31 | |
32 bool HttpGetFile(wxString addr, wxString port, wxString url, wxString file) | |
33 { | |
34 bool ret = false; | |
35 wxHTTP get; | |
36 get.SetFlags(wxSOCKET_WAITALL|wxSOCKET_BLOCK); | |
37 while (!get.Connect(addr, wxAtoi(port))) | |
38 wxSleep(1); | |
39 | |
40 wxInputStream *httpStream = get.GetInputStream(url); | |
41 if (get.GetError() == wxPROTO_NOERR) { | |
42 wxFileOutputStream out_stream(file); | |
43 httpStream->Read(out_stream); | |
44 ret = true; | |
45 } | |
46 | |
47 wxDELETE(httpStream); | |
48 get.Close(); | |
49 return ret; | |
50 }; | |
51 | |
52 bool HttpGetTgzFile(wxString addr, wxString port, wxString url, wxString dir) | |
53 { | |
54 bool ret = false; | |
55 wxHTTP get; | |
56 get.SetTimeout(30); | |
57 get.SetFlags(wxSOCKET_WAITALL|wxSOCKET_BLOCK); | |
58 while (!get.Connect(addr, wxAtoi(port))) | |
59 wxSleep(1); | |
60 | |
61 wxInputStream *httpStream = get.GetInputStream(url); | |
62 if (get.GetError() == wxPROTO_NOERR) { | |
63 //int size = httpStream->GetSize(); | |
64 wxZlibInputStream zlib_istream(httpStream); | |
65 | |
66 wxTarEntry* entry; | |
67 wxTarInputStream tar_istream(zlib_istream); | |
68 int i = 1; | |
69 while ((entry = tar_istream.GetNextEntry()) != NULL) { | |
70 //wxString name = entry->GetName(); | |
71 wxFileOutputStream file_ostream(wxString::Format(wxT("%s/%d"), dir, i++)); | |
72 file_ostream.Write(tar_istream); | |
73 file_ostream.Close(); | |
74 } | |
75 ret = true; | |
76 } | |
77 | |
78 //wxDELETE(httpStream); | |
79 get.Close(); | |
80 return ret; | |
81 }; | |
82 |