00001 /* 00002 * Copyright 2005, 2006, Internet2 00003 * Legal conditions are in file LICENSE 00004 * (MD5 = c434f2e53b8089d8b4d0172c7ce07360). 00005 */ 00006 /** 00007 * 00008 * @file vfer_control.h 00009 * @author Ivan Beschastnikh 00010 * @brief Header file for control.c. 00011 * 00012 * This file suports control.c by defining the necessary structures 00013 * that the implementation uses to control most of the protocols operations. 00014 * 00015 * - 10/30/05 ivan renamed to control.h 00016 * - 07/28/05 ivan function prototypes added; num_frags field added to struct frame 00017 * - 07/22/05 ivan created 00018 */ 00019 00020 00021 #ifndef VFER_CONTROL_H 00022 #define VFER_CONTROL_H 00023 00024 /* 00025 * includes 00026 */ 00027 00028 #include "vfer.h" 00029 #include "vfer_packet.h" 00030 #include "vfer_datagram.h" 00031 #include "vfer_func_rel.h" 00032 00033 00034 /* structures are in globals.h */ 00035 00036 /* 00037 * function declarations 00038 */ 00039 00040 /* public */ 00041 int Control_Connect (vfer_sock* sock); 00042 int Control_Close (vfer_sock* sock); 00043 size_t Control_Send (vfer_sock* sock, const void* buffer, int len); 00044 int Control_Recv (vfer_sock* sock, void* buffer, int len); 00045 void Control_Unregister_Socket (vfer_sock* sock); 00046 void Control_Add_Socket (vfer_sock* sock, packet* request, packet* response, packet* ack, char client); 00047 void Control_Register_Socket (vfer_sock* sock); 00048 int Control_Accept (vfer_sock* skt, vfer_sock* ret_skt); 00049 00050 #endif /* VFER_CONTROL_H */