MCPcopy Create free account
hub / github.com/OpenZWave/open-zwave / StartDownload

Method StartDownload

cpp/src/Http.cpp:82–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80
81
82bool HttpClient::StartDownload
83(
84 HttpDownload *transfer
85)
86{
87
88 if (!m_httpThreadRunning)
89 m_httpThread->Start(HttpClient::HttpThreadProc, this);
90
91 LockGuard LG(m_httpMutex);
92 switch (transfer->operation) {
93 case HttpDownload::None:
94 Log::Write(LogLevel_Warning, "Got a Transfer Type of NONE for %s", transfer->url.c_str());
95 delete transfer;
96 return false;
97 case HttpDownload::File:
98 case HttpDownload::Config:
99 case HttpDownload::MFSConfig:
100 /* make sure it has everything */
101 if ((transfer->url.size() <= 0) || (transfer->filename.size() <= 0)) {
102 Log::Write(LogLevel_Warning, "File Transfer had incomplete Params");
103 delete transfer;
104 return false;
105 }
106
107 /* make sure the Folder Exists */
108 if (!FileOps::Create()->FolderExists(ozwdirname(transfer->filename))) {
109 if (!FileOps::Create()->FolderCreate(ozwdirname(transfer->filename))) {
110 Log::Write(LogLevel_Warning, "File Transfer Failed. Could not create Destination Folder: %s", ozwdirname(transfer->filename).c_str());
111 delete transfer;
112 return false;
113 }
114 }
115
116 /* does the file exist, if so, rotate it out (by doing a copy) */
117 if (FileOps::Create()->FileExists(transfer->filename)) {
118 if (!FileOps::Create()->FileRotate(transfer->filename)) {
119 Log::Write(LogLevel_Warning, "File Transfer Failed. Could not Rotate Existing File: %s", transfer->filename.c_str());
120 delete transfer;
121 return false;
122 }
123 }
124
125
126 /* make sure the target file is writeable */
127 if (!FileOps::Create()->FileWriteable(transfer->filename)) {
128 Log::Write(LogLevel_Warning, "File %s is not writable", transfer->filename.c_str());
129 delete transfer;
130 return false;
131 }
132 break;
133 }
134
135 m_httpDownlist.push_back(transfer);
136 m_httpDownloadEvent->Set();
137 return true;
138}
139void HttpClient::HttpThreadProc

Callers 2

startConfigDownloadMethod · 0.80
startMFSDownloadMethod · 0.80

Calls 10

WriteFunction · 0.85
StartMethod · 0.45
c_strMethod · 0.45
sizeMethod · 0.45
FolderExistsMethod · 0.45
FolderCreateMethod · 0.45
FileExistsMethod · 0.45
FileRotateMethod · 0.45
FileWriteableMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected