# ContentInfo Struct Reference

Container for all important information about a piece of content. More...

`#include <tcp_content.h>`

## Public Types
enum | State { UNSELECTED, SELECTED, AUTOSELECTED, ALREADY_HERE, DOES_NOT_EXIST, INVALID }
## Public Member Functions
| ContentInfo ()
| Clear everything in the struct.
| ~ContentInfo ()
| Free everything allocated.
void | TransferFrom (ContentInfo *other)
| Copy data from other ContentInfo and take ownership of allocated stuff.
size_t | Size () const
| Get the size of the data as send over the network.
bool | IsSelected () const
| Is the state either selected or autoselected?
bool | IsValid () const
| Is the information from this content info valid?
## Data Fields
ContentType | type
| Type of content.
ContentID | id
| Unique (server side) ID for the content.
uint32 | filesize
| Size of the file.
char | filename [48]
| Filename (for the .tar.gz; only valid on download).
char | name [32]
| Name of the content.
char | version [16]
| Version of the content.
char | url [96]
| URL related to the content.
char | description [512]
| Description of the content.
uint32 | unique_id
| Unique ID; either GRF ID or shortname.
byte | md5sum [16]
| The MD5 checksum.
uint8 | dependency_count
| Number of dependencies.
ContentID * | dependencies
| Malloced array of dependencies (unique server side ids).
uint8 | tag_count
| Number of tags.
char(* | tags )[32]
| Malloced array of tags (strings).
State | state
| Whether the content info is selected (for download).
bool | upgrade
| This item is an upgrade.

## Detailed Description

Container for all important information about a piece of content.

Definition at line 58 of file tcp_content.h.

## Member Enumeration Documentation

enum ContentInfo::State

Enumerator:

  UNSELECTED | The content has not been selected.
  SELECTED | The content has been manually selected.
  AUTOSELECTED | The content has been selected as dependency.
  ALREADY_HERE | The content is already at the client side.
  DOES_NOT_EXIST | The content does not exist in the content system.
  INVALID | The content's invalid.

Definition at line 59 of file tcp_content.h.

## Member Function Documentation

bool ContentInfo::IsSelected | ( |  | ) | const

Is the state either selected or autoselected?

Returns:
  true iff that's the case

Definition at line 67 of file tcp_content.cpp.

References ALREADY_HERE, AUTOSELECTED, SELECTED, and state.

Referenced by ClientNetworkContentSocketHandler::CheckDependencyState(), NetworkContentListWindow::DrawDetails(), ClientNetworkContentSocketHandler::Unselect(), and ClientNetworkContentSocketHandler::UnselectAll().

bool ContentInfo::IsValid | ( |  | ) | const

Is the information from this content info valid?

Returns:
  true iff it's valid

Definition at line 84 of file tcp_content.cpp.

References CONTENT_TYPE_BEGIN, CONTENT_TYPE_END, INVALID, state, and type.

Referenced by ClientNetworkContentSocketHandler::BeforeDownload().

size_t ContentInfo::Size | ( |  | ) | const

Get the size of the data as send over the network.

Returns:
  the size.

Definition at line 51 of file tcp_content.cpp.

References dependencies, dependency_count, tag_count, and tags.

void ContentInfo::TransferFrom | ( | ContentInfo * | other | ) |

Copy data from other ContentInfo and take ownership of allocated stuff.

Parameters:

  | other | Source to copy from. dependencies and tags will be NULLed.

Definition at line 36 of file tcp_content.cpp.

References dependencies, and tags.

The documentation for this struct was generated from the following files:

- src/network/core/tcp_content.h
- src/network/core/tcp_content.cpp