comparison src/net.cpp @ 9:ae89ce4793d8

add satellite-view.
author pyon@macmini
date Wed, 31 Oct 2018 20:10:29 +0900
parents 82f9af6aa7e4
children 36811fd22bd2
comparison
equal deleted inserted replaced
8:82f9af6aa7e4 9:ae89ce4793d8
1 // Filename : net.cpp 1 // Filename : net.cpp
2 // Last Change: 2018-10-30 火 11:08:25. 2 // Last Change: 2018-10-31 水 10:42:06.
3 // 3 //
4 4
5 #include <wx/datetime.h> 5 #include <wx/datetime.h>
6 #include <wx/stream.h> 6 #include <wx/stream.h>
7 #include <wx/zstream.h> 7 #include <wx/zstream.h>
15 15
16 RsHttp::~RsHttp() 16 RsHttp::~RsHttp()
17 { 17 {
18 } 18 }
19 19
20 void RsHttp::Get( wxString url, wxString file ) 20 bool RsHttp::Get( wxString url, wxString file )
21 { 21 {
22 bool ret = false;
22 wxHTTP get; 23 wxHTTP get;
24 get.SetFlags( wxSOCKET_WAITALL|wxSOCKET_BLOCK );
23 while ( !get.Connect( m_server, m_port ) ) 25 while ( !get.Connect( m_server, m_port ) )
24 wxSleep( 1 ); 26 wxSleep( 1 );
25 27
26 wxInputStream *httpStream = get.GetInputStream( url ); 28 wxInputStream *httpStream = get.GetInputStream( url );
27 if ( get.GetError() == wxPROTO_NOERR ) { 29 if ( get.GetError() == wxPROTO_NOERR ) {
28 wxFileOutputStream out_stream( file ); 30 wxFileOutputStream out_stream( file );
29 httpStream->Read( out_stream ); 31 httpStream->Read( out_stream );
32 ret = true;
30 } else { 33 } else {
31 wxMessageBox( wxT( "Re:Searcher Error: get err" ) ); 34 wxMessageBox( wxT( "Re:Searcher Error: cannot get data." ) );
32 } 35 }
33 36
34 wxDELETE( httpStream ); 37 wxDELETE( httpStream );
35 get.Close(); 38 get.Close();
39 return ret;
36 } 40 }
37 41
38 void RsHttp::GetDB( void ) 42 bool RsHttp::GetDB( void )
39 { 43 {
40 Get( wxT( "/db/auth.db"), wxT( "auth.db") ); 44 bool ret = false;
41 Get( wxT( "/db/hhs.db"), wxT( "hhs.db") ); 45 ret = Get( wxT( "/db/auth.db"), wxT( "auth.db") );
46 ret = Get( wxT( "/db/hhs.db"), wxT( "hhs.db") );
42 wxDateTime now = wxDateTime::Now(); 47 wxDateTime now = wxDateTime::Now();
43 if ( now.GetDay() % 14 == 0 ) 48 if ( now.GetDay() % 14 == 0 )
44 Get( wxT( "/db/index.db"), wxT( "index.db" ) ); 49 Get( wxT( "/db/index.db"), wxT( "index.db" ) );
50 return ret;
45 } 51 }
46 52
47 int RsHttp::GetImagesSize( wxString hhs, wxString date ) 53 int RsHttp::GetImagesSize( wxString hhs, wxString date )
48 { 54 {
49 wxHTTP get; 55 wxHTTP get;
78 wxInputStream *http_istream = get.GetInputStream( url ); 84 wxInputStream *http_istream = get.GetInputStream( url );
79 if ( get.GetError() == wxPROTO_NOERR ) { 85 if ( get.GetError() == wxPROTO_NOERR ) {
80 //int size = http_istream->GetSize(); 86 //int size = http_istream->GetSize();
81 wxZlibInputStream zlib_istream( http_istream ); // 0: no cache : bad 87 wxZlibInputStream zlib_istream( http_istream ); // 0: no cache : bad
82 88
83 /*
84 wxMemoryOutputStream mm_ostream; // 1: ok
85 http_istream->Read( mm_ostream );
86 wxMemoryInputStream mm_istream( mm_ostream );
87 wxZlibInputStream zlib_istream( mm_istream );
88 */
89
90 wxTarEntry* entry; 89 wxTarEntry* entry;
91 wxTarInputStream tar_istream( zlib_istream ); 90 wxTarInputStream tar_istream( zlib_istream );
92 int i = 1; 91 int i = 1;
93 while ( ( entry = tar_istream.GetNextEntry() ) != NULL ) { 92 while ( ( entry = tar_istream.GetNextEntry() ) != NULL ) {
94 //wxString name = entry->GetName(); 93 //wxString name = entry->GetName();