Dry
|
An HTTP connection with response data stream. More...
#include <Dry/Network/HttpRequest.h>
Public Member Functions | |
HttpRequest (const String &url, const String &verb, const Vector< String > &headers, const String &postData) | |
Construct with parameters. | |
~HttpRequest () override | |
Destruct. Release the connection object. | |
void | ThreadFunction () override |
Process the connection in the worker thread until closed. More... | |
unsigned | Read (void *dest, unsigned size) override |
Read response data from the HTTP connection and return number of bytes actually read. While the connection is open, will block while trying to read the specified size. To avoid blocking, only read up to as many bytes as GetAvailableSize() returns. | |
unsigned | Seek (unsigned position) override |
Set position from the beginning of the stream. Not supported. | |
bool | IsEof () const override |
Return whether all response data has been read. | |
const String & | GetURL () const |
Return URL used in the request. | |
const String & | GetVerb () const |
Return verb used in the request. Default GET if empty verb specified on construction. | |
String | GetError () const |
Return error. Only non-empty in the error state. | |
HttpRequestState | GetState () const |
Return connection state. | |
unsigned | GetAvailableSize () const |
Return amount of bytes in the read buffer. | |
bool | IsOpen () const |
Return whether connection is in the open state. | |
![]() | |
RefCounted () | |
Construct. Allocate the reference count structure and set an initial self weak reference. | |
virtual | ~RefCounted () |
Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist. | |
RefCounted (const RefCounted &rhs)=delete | |
Prevent copy construction. | |
RefCounted & | operator= (const RefCounted &rhs)=delete |
Prevent assignment. | |
void | AddRef () |
Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting. | |
void | ReleaseRef () |
Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting. | |
int | Refs () const |
Return reference count. | |
int | WeakRefs () const |
Return weak reference count. | |
RefCount * | RefCountPtr () |
Return pointer to the reference count structure. | |
![]() | |
Deserializer () | |
Construct with zero size. | |
Deserializer (unsigned size) | |
Construct with defined size. | |
virtual | ~Deserializer () |
Destruct. | |
virtual const String & | GetName () const |
Return name of the stream. | |
virtual unsigned | GetChecksum () |
Return a checksum if applicable. | |
unsigned | SeekRelative (int delta) |
Set position relative to current position. Return actual new position. | |
unsigned | GetPosition () const |
Return current position. | |
unsigned | Tell () const |
Return current position. | |
unsigned | GetSize () const |
Return size. | |
long long | ReadInt64 () |
Read a 64-bit integer. | |
int | ReadInt () |
Read a 32-bit integer. | |
short | ReadShort () |
Read a 16-bit integer. | |
signed char | ReadByte () |
Read an 8-bit integer. | |
unsigned long long | ReadUInt64 () |
Read a 64-bit unsigned integer. | |
unsigned | ReadUInt () |
Read a 32-bit unsigned integer. | |
unsigned short | ReadUShort () |
Read a 16-bit unsigned integer. | |
unsigned char | ReadUByte () |
Read an 8-bit unsigned integer. | |
bool | ReadBool () |
Read a bool. | |
float | ReadFloat () |
Read a float. | |
double | ReadDouble () |
Read a double. | |
IntRect | ReadIntRect () |
Read an IntRect. | |
IntVector2 | ReadIntVector2 () |
Read an IntVector2. | |
IntVector3 | ReadIntVector3 () |
Read an IntVector3. | |
Rect | ReadRect () |
Read a Rect. | |
Vector2 | ReadVector2 () |
Read a Vector2. | |
Vector3 | ReadVector3 () |
Read a Vector3. | |
Vector3 | ReadPackedVector3 (float maxAbsCoord) |
Read a Vector3 packed into 3 x 16 bits with the specified maximum absolute range. | |
Vector4 | ReadVector4 () |
Read a Vector4. | |
Quaternion | ReadQuaternion () |
Read a quaternion. | |
Quaternion | ReadPackedQuaternion () |
Read a quaternion with each component packed in 16 bits. | |
Matrix3 | ReadMatrix3 () |
Read a Matrix3. | |
Matrix3x4 | ReadMatrix3x4 () |
Read a Matrix3x4. | |
Matrix4 | ReadMatrix4 () |
Read a Matrix4. | |
Color | ReadColor () |
Read a color. | |
BoundingBox | ReadBoundingBox () |
Read a bounding box. | |
String | ReadString () |
Read a null-terminated string. | |
String | ReadFileID () |
Read a four-letter file ID. | |
StringHash | ReadStringHash () |
Read a 32-bit StringHash. | |
PODVector< unsigned char > | ReadBuffer () |
Read a buffer with size encoded as VLE. | |
ResourceRef | ReadResourceRef () |
Read a resource reference. | |
ResourceRefList | ReadResourceRefList () |
Read a resource reference list. | |
Variant | ReadVariant () |
Read a variant. | |
Variant | ReadVariant (VariantType type) |
Read a variant whose type is already known. | |
VariantVector | ReadVariantVector () |
Read a variant vector. | |
StringVector | ReadStringVector () |
Read a string vector. | |
VariantMap | ReadVariantMap () |
Read a variant map. | |
unsigned | ReadVLE () |
Read a variable-length encoded unsigned integer, which can use 29 bits maximum. | |
unsigned | ReadNetID () |
Read a 24-bit network object ID. | |
String | ReadLine () |
Read a text line. | |
![]() | |
Thread () | |
Construct. Does not start the thread yet. | |
virtual | ~Thread () |
Destruct. If running, stop and wait for thread to finish. | |
bool | Run () |
Start running the thread. Return true if successful, or false if already running or if can not create the thread. | |
void | Stop () |
Set the running flag to false and wait for the thread to finish. | |
void | SetPriority (int priority) |
Set thread priority. The thread must have been started first. | |
bool | IsStarted () const |
Return whether thread exists. | |
Private Member Functions | |
Pair< unsigned, bool > | CheckAvailableSizeAndEof () const |
Check for available read data in buffer and whether end has been reached. Must only be called when the mutex is held by the main thread. | |
Private Attributes | |
String | url_ |
URL. | |
String | verb_ |
Verb. | |
String | error_ |
Error string. Empty if no error. | |
Vector< String > | headers_ |
Headers. | |
String | postData_ |
POST data. | |
HttpRequestState | state_ |
Connection state. | |
Mutex | mutex_ |
Mutex for synchronizing the worker and the main thread. | |
SharedArrayPtr< unsigned char > | httpReadBuffer_ |
Read buffer for the worker thread. | |
SharedArrayPtr< unsigned char > | readBuffer_ |
Read buffer for the main thread. | |
unsigned | readPosition_ |
Read buffer read cursor. | |
unsigned | writePosition_ |
Read buffer write cursor. | |
Additional Inherited Members | |
![]() | |
static void | SetMainThread () |
Set the current thread as the main thread. | |
static ThreadID | GetCurrentThreadID () |
Return the current thread's ID. | |
static bool | IsMainThread () |
Return whether is executing in the main thread. | |
![]() | |
unsigned | position_ |
Stream position. | |
unsigned | size_ |
Stream size. | |
![]() | |
void * | handle_ |
Thread handle. | |
volatile bool | shouldRun_ |
Running flag. | |
![]() | |
static ThreadID | mainThreadID |
Main thread's thread ID. | |
An HTTP connection with response data stream.
|
overridevirtual |
Process the connection in the worker thread until closed.
Implements Dry::Thread.