Transfer type module for data upload from client to server. The transfer derived type is stored on server-side only.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | TRANSFER_ID_LEN | = | UUID_LEN |
Transfer id length. |
integer, | public, | parameter | :: | TRANSFER_TYPE_NONE | = | 0 |
No type (invalid). |
integer, | public, | parameter | :: | TRANSFER_TYPE_BLOB | = | 1 |
Arbitrary binary object. |
integer, | public, | parameter | :: | TRANSFER_TYPE_IMAGE | = | 2 |
Image type ( |
integer, | public, | parameter | :: | TRANSFER_TYPE_LAST | = | 2 |
Never use this. |
integer, | public, | parameter | :: | TRANSFER_STATE_NONE | = | 0 |
Unprepared transfer (invalid). |
integer, | public, | parameter | :: | TRANSFER_STATE_CREATED | = | 1 |
Transfer is initialised. |
integer, | public, | parameter | :: | TRANSFER_STATE_ACTIVE | = | 2 |
Transfer is running. |
integer, | public, | parameter | :: | TRANSFER_STATE_FAILED | = | 3 |
Transfer failed. |
integer, | public, | parameter | :: | TRANSFER_STATE_DONE | = | 4 |
Transfer finished. |
integer, | public, | parameter | :: | TRANSFER_STATE_LAST | = | 4 |
Never use this. |
Returns whether transfers are equal.
Returns .true.
if given transfers are equal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(in) | :: | transfer1 |
The first transfer. |
||
type(transfer_type), | intent(in) | :: | transfer2 |
The second transfer. |
Transfer type for data upload from client to server. The attribute
type_id
is the id of the transfered object, for example, an image
id. The derived type is invalid by default. The attributes type
,
id
, node_id
, type_id
, state
, and size
have to be set
initially.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=TRANSFER_ID_LEN), | public | :: | id | = | ' ' |
Transfer id (UUIDv4). |
|
character(len=NODE_ID_LEN), | public | :: | node_id | = | ' ' |
Node id. |
|
character(len=TRANSFER_ID_LEN), | public | :: | type_id | = | ' ' |
Transfer object id (UUIDv4). |
|
character(len=TIME_LEN), | public | :: | timestamp | = | TIME_DEFAULT |
Timestamp of current state (ISO 8601). |
|
character(len=NET_IPV6_LEN), | public | :: | address | = | ' ' |
Client IP address (IPv4, IPv6). |
|
integer, | public | :: | type | = | TRANSFER_TYPE_NONE |
Transfer type. |
|
integer, | public | :: | state | = | TRANSFER_STATE_NONE |
Transfer state. |
|
integer, | public | :: | error | = | E_NONE |
Error code. |
|
integer(kind=i8), | public | :: | size | = | 0_i8 |
File size [byte] |
Creates and prepares transfer for given object id. The function
returns E_INVALID
if one of the arguments is invalid. Argument
node_id
must be a valid id, type_id
must be a valid UUIDv4, and
size greater than 0.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(out) | :: | transfer |
Transfer type. |
||
character(len=*), | intent(in) | :: | node_id |
Node id. |
||
character(len=TRANSFER_ID_LEN), | intent(in) | :: | type_id |
Object id. |
||
integer, | intent(in) | :: | type |
Object type ( |
||
integer(kind=i8), | intent(in) | :: | size |
File size [byte]. |
Returns .true.
if given transfers are equal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(in) | :: | transfer1 |
The first transfer. |
||
type(transfer_type), | intent(in) | :: | transfer2 |
The second transfer. |
Returns .true.
if transfer type is valid.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(in) | :: | transfer |
Transfer type. |
Returns .true.
if transfer state is valid. Type
TRANSFER_STATE_NONE
is invalid.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | state |
Transfer state ( |
Returns .true.
if object type is valid. Type TRANSFER_TYPE_NONE
is invalid.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | type |
Object type ( |
Prints transfer to standard output or given file unit.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(inout) | :: | transfer | |||
integer, | intent(in), | optional | :: | unit |
Set transfer attributes. This routine does not validate the arguments.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(transfer_type), | intent(inout) | :: | transfer |
Transfer type. |
||
character(len=TRANSFER_ID_LEN), | intent(in), | optional | :: | id |
Transfer id. |
|
character(len=*), | intent(in), | optional | :: | node_id |
Node id. |
|
character(len=TRANSFER_ID_LEN), | intent(in), | optional | :: | type_id |
Object id. |
|
character(len=TIME_LEN), | intent(in), | optional | :: | timestamp |
Timestamp of current transfer state. |
|
character(len=*), | intent(in), | optional | :: | address |
Client IP address. |
|
integer, | intent(in), | optional | :: | type |
Object type ( |
|
integer, | intent(in), | optional | :: | state |
Transfer state. |
|
integer, | intent(in), | optional | :: | error |
Error code. |
|
integer(kind=i8), | intent(in), | optional | :: | size |
Object size [byte]. |