FS2_Open
Open source remastering of the Freespace 2 engine
multi_xfer.cpp File Reference
#include "network/multi_xfer.h"
#include "network/multi.h"
#include "network/multimsgs.h"
#include "network/psnet2.h"
#include "io/timer.h"
#include "cfile/cfile.h"
#include "playerman/player.h"
#include "network/multiutil.h"
#include "network/multi_log.h"

Go to the source code of this file.

Classes

struct  xfer_entry
 

Macros

#define MULTI_XFER_VERBOSE
 
#define MULTI_XFER_INVALID_HANDLE(handle)   ( (handle < 0) || (handle > (MAX_XFER_ENTRIES-1)) || !(Multi_xfer_entry[handle].flags & MULTI_XFER_FLAG_USED) || (strlen(Multi_xfer_entry[handle].filename) <= 0) )
 
#define MULTI_XFER_CODE_ACK   0
 
#define MULTI_XFER_CODE_NAK   1
 
#define MULTI_XFER_CODE_HEADER   2
 
#define MULTI_XFER_CODE_DATA   3
 
#define MULTI_XFER_CODE_FINAL   4
 
#define MULTI_XFER_FLAG_USED   (1<<0)
 
#define MULTI_XFER_FLAG_SEND   (1<<1)
 
#define MULTI_XFER_FLAG_RECV   (1<<2)
 
#define MULTI_XFER_FLAG_PENDING   (1<<3)
 
#define MULTI_XFER_FLAG_WAIT_ACK   (1<<4)
 
#define MULTI_XFER_FLAG_WAIT_DATA   (1<<5)
 
#define MULTI_XFER_FLAG_UNKNOWN   (1<<6)
 
#define MULTI_XFER_FLAG_SUCCESS   (1<<7)
 
#define MULTI_XFER_FLAG_FAIL   (1<<8)
 
#define MULTI_XFER_FLAG_TIMEOUT   (1<<9)
 
#define MULTI_XFER_FLAG_QUEUE_CURRENT   (1<<10)
 
#define MULTI_XFER_MAX_DATA_SIZE   490
 
#define MULTI_XFER_TIMEOUT   10000
 
#define MULTI_XFER_FNAME_PREFIX   "_fsx_"
 
#define MAX_XFER_ENTRIES   60
 

Typedefs

typedef struct xfer_entry xfer_entry
 

Functions

void multi_xfer_eval_entry (xfer_entry *xe)
 
void multi_xfer_fail_entry (xfer_entry *xe)
 
int multi_xfer_get_free_handle ()
 
void multi_xfer_process_ack (xfer_entry *xe)
 
void multi_xfer_process_nak (xfer_entry *xe)
 
void multi_xfer_process_final (xfer_entry *xe)
 
void multi_xfer_process_data (xfer_entry *xe, ubyte *data, int data_size)
 
void multi_xfer_process_header (ubyte *data, PSNET_SOCKET_RELIABLE who, ushort sig, char *filename, int file_size, ushort file_checksum)
 
void multi_xfer_send_next (xfer_entry *xe)
 
void multi_xfer_send_ack (PSNET_SOCKET_RELIABLE socket, ushort sig)
 
void multi_xfer_send_nak (PSNET_SOCKET_RELIABLE socket, ushort sig)
 
void multi_xfer_send_final (xfer_entry *xe)
 
void multi_xfer_send_header (xfer_entry *xe)
 
void multi_xfer_conv_prefix (char *filename, char *ex_filename)
 
ushort multi_xfer_get_sig ()
 
void multi_xfer_init (void(*multi_xfer_recv_callback)(int handle))
 
void multi_xfer_do ()
 
void multi_xfer_reset ()
 
int multi_xfer_send_file (PSNET_SOCKET_RELIABLE who, char *filename, int cfile_flags, int flags)
 
int multi_xfer_get_status (int handle)
 
void multi_xfer_abort (int handle)
 
void multi_xfer_release_handle (int handle)
 
char * multi_xfer_get_filename (int handle)
 
void multi_xfer_lock ()
 
void multi_xfer_unlock ()
 
void multi_xfer_force_dir (int cf_type)
 
void multi_xfer_handle_force_dir (int handle, int cf_type)
 
void multi_xfer_xor_flags (int handle, int flags)
 
int multi_xfer_get_flags (int handle)
 
int multi_xfer_lookup (char *filename)
 
float multi_xfer_pct_complete (int handle)
 
uint multi_xfer_get_sock (int handle)
 
int multi_xfer_get_force_dir (int handle)
 
xfer_entrymulti_xfer_find_entry (PSNET_SOCKET_RELIABLE who, ushort sig, int sender_side)
 
int multi_xfer_process_packet (unsigned char *data, PSNET_SOCKET_RELIABLE who)
 

Variables

xfer_entry Multi_xfer_entry [MAX_XFER_ENTRIES]
 
void(* Multi_xfer_recv_notify )(int handle)
 
int Multi_xfer_locked
 
int Multi_xfer_force_dir
 
ushort Multi_xfer_sig = 0
 

Macro Definition Documentation

#define MAX_XFER_ENTRIES   60

Definition at line 71 of file multi_xfer.cpp.

#define MULTI_XFER_CODE_ACK   0

Definition at line 38 of file multi_xfer.cpp.

#define MULTI_XFER_CODE_DATA   3

Definition at line 41 of file multi_xfer.cpp.

#define MULTI_XFER_CODE_FINAL   4

Definition at line 42 of file multi_xfer.cpp.

#define MULTI_XFER_CODE_HEADER   2

Definition at line 40 of file multi_xfer.cpp.

#define MULTI_XFER_CODE_NAK   1

Definition at line 39 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_FAIL   (1<<8)

Definition at line 53 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_PENDING   (1<<3)

Definition at line 48 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_QUEUE_CURRENT   (1<<10)

Definition at line 55 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_RECV   (1<<2)

Definition at line 47 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_SEND   (1<<1)

Definition at line 46 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_SUCCESS   (1<<7)

Definition at line 52 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_TIMEOUT   (1<<9)

Definition at line 54 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_UNKNOWN   (1<<6)

Definition at line 51 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_USED   (1<<0)

Definition at line 45 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_WAIT_ACK   (1<<4)

Definition at line 49 of file multi_xfer.cpp.

#define MULTI_XFER_FLAG_WAIT_DATA   (1<<5)

Definition at line 50 of file multi_xfer.cpp.

#define MULTI_XFER_FNAME_PREFIX   "_fsx_"

Definition at line 66 of file multi_xfer.cpp.

#define MULTI_XFER_INVALID_HANDLE (   handle)    ( (handle < 0) || (handle > (MAX_XFER_ENTRIES-1)) || !(Multi_xfer_entry[handle].flags & MULTI_XFER_FLAG_USED) || (strlen(Multi_xfer_entry[handle].filename) <= 0) )

Definition at line 35 of file multi_xfer.cpp.

#define MULTI_XFER_MAX_DATA_SIZE   490

Definition at line 58 of file multi_xfer.cpp.

#define MULTI_XFER_TIMEOUT   10000

Definition at line 61 of file multi_xfer.cpp.

#define MULTI_XFER_VERBOSE

Definition at line 33 of file multi_xfer.cpp.

Typedef Documentation

typedef struct xfer_entry xfer_entry

Function Documentation

void multi_xfer_abort ( int  handle)

Definition at line 308 of file multi_xfer.cpp.

void multi_xfer_conv_prefix ( char *  filename,
char *  ex_filename 
)

Definition at line 1138 of file multi_xfer.cpp.

void multi_xfer_do ( )

Definition at line 170 of file multi_xfer.cpp.

void multi_xfer_eval_entry ( xfer_entry xe)

Definition at line 504 of file multi_xfer.cpp.

void multi_xfer_fail_entry ( xfer_entry xe)

Definition at line 601 of file multi_xfer.cpp.

xfer_entry* multi_xfer_find_entry ( PSNET_SOCKET_RELIABLE  who,
ushort  sig,
int  sender_side 
)

Definition at line 576 of file multi_xfer.cpp.

void multi_xfer_force_dir ( int  cf_type)

Definition at line 394 of file multi_xfer.cpp.

char* multi_xfer_get_filename ( int  handle)

Definition at line 370 of file multi_xfer.cpp.

int multi_xfer_get_flags ( int  handle)

Definition at line 426 of file multi_xfer.cpp.

int multi_xfer_get_force_dir ( int  handle)

Definition at line 488 of file multi_xfer.cpp.

int multi_xfer_get_free_handle ( )

Definition at line 631 of file multi_xfer.cpp.

ushort multi_xfer_get_sig ( )

Definition at line 1156 of file multi_xfer.cpp.

uint multi_xfer_get_sock ( int  handle)

Definition at line 477 of file multi_xfer.cpp.

int multi_xfer_get_status ( int  handle)

Definition at line 276 of file multi_xfer.cpp.

void multi_xfer_handle_force_dir ( int  handle,
int  cf_type 
)

Definition at line 401 of file multi_xfer.cpp.

void multi_xfer_init ( void(*)(int handle)  multi_xfer_recv_callback)

Definition at line 154 of file multi_xfer.cpp.

void multi_xfer_lock ( )

Definition at line 382 of file multi_xfer.cpp.

int multi_xfer_lookup ( char *  filename)

Definition at line 438 of file multi_xfer.cpp.

float multi_xfer_pct_complete ( int  handle)

Definition at line 460 of file multi_xfer.cpp.

void multi_xfer_process_ack ( xfer_entry xe)

Definition at line 769 of file multi_xfer.cpp.

void multi_xfer_process_data ( xfer_entry xe,
ubyte data,
int  data_size 
)

Definition at line 864 of file multi_xfer.cpp.

void multi_xfer_process_final ( xfer_entry xe)

Definition at line 802 of file multi_xfer.cpp.

void multi_xfer_process_header ( ubyte data,
PSNET_SOCKET_RELIABLE  who,
ushort  sig,
char *  filename,
int  file_size,
ushort  file_checksum 
)

Definition at line 892 of file multi_xfer.cpp.

void multi_xfer_process_nak ( xfer_entry xe)

Definition at line 795 of file multi_xfer.cpp.

int multi_xfer_process_packet ( unsigned char *  data,
PSNET_SOCKET_RELIABLE  who 
)

Definition at line 652 of file multi_xfer.cpp.

void multi_xfer_release_handle ( int  handle)

Definition at line 339 of file multi_xfer.cpp.

void multi_xfer_reset ( )

Definition at line 185 of file multi_xfer.cpp.

void multi_xfer_send_ack ( PSNET_SOCKET_RELIABLE  socket,
ushort  sig 
)

Definition at line 1051 of file multi_xfer.cpp.

int multi_xfer_send_file ( PSNET_SOCKET_RELIABLE  who,
char *  filename,
int  cfile_flags,
int  flags 
)

Definition at line 201 of file multi_xfer.cpp.

void multi_xfer_send_final ( xfer_entry xe)

Definition at line 1091 of file multi_xfer.cpp.

void multi_xfer_send_header ( xfer_entry xe)

Definition at line 1111 of file multi_xfer.cpp.

void multi_xfer_send_nak ( PSNET_SOCKET_RELIABLE  socket,
ushort  sig 
)

Definition at line 1071 of file multi_xfer.cpp.

void multi_xfer_send_next ( xfer_entry xe)

Definition at line 981 of file multi_xfer.cpp.

void multi_xfer_unlock ( )

Definition at line 388 of file multi_xfer.cpp.

void multi_xfer_xor_flags ( int  handle,
int  flags 
)

Definition at line 414 of file multi_xfer.cpp.

Variable Documentation

xfer_entry Multi_xfer_entry[MAX_XFER_ENTRIES]

Definition at line 85 of file multi_xfer.cpp.

int Multi_xfer_force_dir

Definition at line 94 of file multi_xfer.cpp.

int Multi_xfer_locked

Definition at line 91 of file multi_xfer.cpp.

void(* Multi_xfer_recv_notify) (int handle)

Definition at line 88 of file multi_xfer.cpp.

ushort Multi_xfer_sig = 0

Definition at line 97 of file multi_xfer.cpp.