Commit Graph

28 Commits

Author SHA1 Message Date
Vadim Zeitlin
5d236edeed Ensure wxWebRequest is in idle state before starting it
Check that current state is State_Idle in wxWebRequest itself only once
instead of doing it in 2 (out of 3) wxWebRequestImpl implementations.

Also assert if this is not the case instead of silently doing nothing
which would surely be more difficult to debug.
2021-01-09 21:00:38 +01:00
Vadim Zeitlin
989cafe535 Take raw pointer and not wxSharedPtr<> in SetData()
Using shared pointer seems to be ill-advised here, the stream shouldn't
be shared as it's going to be used by wxWebRequest itself and can't be
used by the application code in parallel, so the ownership transfer
semantics is more appropriate.

We could take a wxScopedPtr<> instead, but wx API takes ownership of raw
pointers everywhere else, so do it here too.

Incidentally fix a bug with calling IsOk() on a possibly null pointer.
2021-01-04 01:57:36 +01:00
Vadim Zeitlin
50424cba2c Change wxWebRequest and related objects to hide ref counting
Don't force the application code to deal with wxObjectDataPtr<> or,
worse, calling {Inc,Dec}Ref() manually by hiding it inside the wx
objects themselves and giving the value-like semantics to them.

There should be no real changes in the behaviour, but the API does
change significantly. Notably, wxWebRequest is not a wxEvtHandler itself
any longer, as this would be incompatible with the value semantics, and
an event handler needs to be specified when creating it, so that it
could be notified about the request state changes.
2020-12-30 02:02:20 +01:00
Vadim Zeitlin
71d5729171 Make wxWebSessionFactory private
Having wxWebSessionFactory part of the public API implies keeping
compatibility with the possible ways of implementing it which is too
restrictive for no good reason, so move this class to the private header
and don't document it nor wxWebSession::RegisterFactory() (which is now
private).
2020-12-27 01:03:08 +01:00
Vadim Zeitlin
b37c7417f6 Don't make wxWebRequest::SplitParameters() public
They're not necessary to use this class and we may consider exporting
them later, possibly with a better API and more tests, if really needed.

Also do change their API slightly by leaving only a single function and
returning the value instead of using an out parameter for it to make it
simpler to use.
2020-12-13 02:41:01 +01:00
Vadim Zeitlin
1c61fe6baf Remove wxWebResponse::AsString() conversion parameter
It doesn't make much sense to specify the conversion here, it would
ideally be taken from the response Content-Type header itself and
currently is just assumed to be UTF-8 anyhow.

Also implement fallback to Latin-1 to avoid losing the data entirely if
it's not in UTF-8.
2020-12-13 01:16:41 +01:00
Vadim Zeitlin
89946d1fc7 Update version in @since comments for wxWebRequest to 3.1.5
Hopefully this is the last update.
2020-12-13 00:50:03 +01:00
Vadim Zeitlin
0c9f4ababa Document wxWebResponse pointers as being non-owning
wxWebResponse objects belong to wxWebRequest itself.
2020-12-13 00:47:53 +01:00
Vadim Zeitlin
3a5f5006fb Fix typo in wxWebRequest documentation 2020-12-13 00:43:36 +01:00
Vadim Zeitlin
727b590814 Pass wxSharedPtr argument of RegisterFactory() by const reference
Avoid extra copies from passing it by value.
2020-12-13 00:19:03 +01:00
Vadim Zeitlin
64a3801160 Tweaks to wxWebRequest::SetData() overload taking stream
Check that the stream is valid, if specified at all, and return false if
it isn't -- or if no size was specified and determining stream size
failed.

Check for SetData() success in the test to provide better diagnostics in
case the file it uses is not found (as is the case when running the test
from another directory, for example).

Also pass wxSharedPtr<> by const reference instead of by value to avoid
unnecessary copies.
2020-12-12 18:46:28 +01:00
Tobias Taschner
68cbd54db0 Update since version 2018-12-10 21:09:47 +01:00
Tobias Taschner
45f006d752 Add wxWebSession::GetLibraryVersionInfo() 2018-12-10 19:38:12 +01:00
Cătălin Răceanu
0051bbd605 Update interface/wx/webrequest.h
Co-Authored-By: TcT2k <TcT2k@users.noreply.github.com>
2018-12-10 19:38:00 +01:00
Tobias Taschner
f40e2e64d9 Add wxWebRequest::SplitParameters method
This method is adapted for use in wxWidgets from the Poco library.
2018-12-10 19:37:55 +01:00
Maarten Bent
028af93c35 Fix documentation types/inconsistencies 2018-12-10 19:37:54 +01:00
Tobias Taschner
faa81dcdf1 Update documentation 2018-12-10 19:37:43 +01:00
Tobias Taschner
f1d0a00911 Update wxWebRequest documentation 2018-12-10 19:37:36 +01:00
Tobias Taschner
1a34f3dab9 Document authentication changes 2018-12-10 19:37:34 +01:00
Tobias Taschner
b11fbd0901 Update wxWebRequest documentation 2018-12-10 19:37:26 +01:00
Tobias Taschner
a4279752f8 Start wxWebRequestWinHTTP implementation
Can already run the GET request in the sample app
2018-12-10 19:37:23 +01:00
Tobias Taschner
e07c1bf40c Prepared wxWebRequest implementation 2018-12-10 19:37:21 +01:00
Tobias Taschner
cacd79d40e Add wxWebSessionFactory and wxWebRequestEvent to documentation 2018-12-10 19:37:20 +01:00
Cătălin Răceanu
788c28f97d Fix typos in interface/wx/webrequest.h 2018-12-10 19:37:19 +01:00
Tobias Taschner
2fc1024949 Fix additional wxWebRequest typos and clarification 2018-12-10 19:37:18 +01:00
Tobias Taschner
30d56ec5b7 Further wxWebRequest documentation improvements 2018-12-10 19:37:16 +01:00
Cătălin Răceanu
bd73551f1f Fix various typos and style in wxWebRequest documentation 2018-12-10 19:37:15 +01:00
Tobias Taschner
d2c7d80544 Add wxWebRequest documentation 2018-12-10 19:36:26 +01:00