# InternalPacket Struct Reference

`#include <InternalPacket.h>`

Inherits InternalPacketFixedSizeTransmissionHeader.

List of all members.

## Public Types
enum | AllocationScheme { NORMAL, REF_COUNTED }
| How to alloc and delete the data member. More...
## Public Attributes
MessageNumberType | messageInternalOrder
| Identifies the order in which this number was sent. Used locally.
bool | messageNumberAssigned
RakNetTimeUS | creationTime
| Was this packet number used this update to track windowing drops or increases? Each packet number is only used once per update.
RakNetTimeUS | nextActionTime
| The resendNext time to take action on this packet.
unsigned char * | data
| Buffer is a pointer to the actual data, assuming this packet has data at all.
enum InternalPacket::AllocationScheme | allocationScheme
| How to alloc and delete the data member.
unsigned char | timesSent
| How many attempts we made at sending this message.
PacketPriority | priority
| The priority level of this packet.
uint32_t | sendReceiptSerial
| If the reliability type requires a receipt, then return this number with it.

## Detailed Description

Holds a user message, and related information Don't use a constructor or destructor, due to the memory pool I am using

## Member Enumeration Documentation

enum InternalPacket::AllocationScheme

How to alloc and delete the data member.

Enumerator:

  NORMAL | Data is allocated using rakMalloc. Just free it.
  REF_COUNTED | data points to a larger block of data, where the larger block is reference counted. internalPacketRefCountedData is used in this case

## Member Data Documentation

RakNetTimeUS InternalPacket::creationTime

Was this packet number used this update to track windowing drops or increases? Each packet number is only used once per update.

When this packet was created

bool InternalPacket::messageNumberAssigned

Has this message number been assigned yet? We don't assign until the message is actually sent. This fixes a bug where pre-determining message numbers and then sending a message on a different channel creates a huge gap. This causes performance problems and causes those messages to timeout.

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

- d:/RakNet-3.x/Source/InternalPacket.h