//作者:京东瀚览家居官方旗舰店 <--点击关注
//文件名:Chunk.h
#ifndef _CHUNK_H_
#define _CHUNK_H_
/* 接收到客户端的请求数据,*/
/* 以及对客户端发送响应的数据,*/
/* 都是通过 chunk 结构体来组织*/
#include "buffer.h"
#include "array.h"
typedef struct chunk {
enum { UNUSED_CHUNK, MEM_CHUNK, FILE_CHUNK } type;
buffer *mem; /* either the storage of the mem-chunk or the read-ahead buffer */
struct {
/* filechunk */
buffer *name; /* name of the file */
off_t start; /* starting offset in the file */
off_t length; /* octets to send from the starting offset */
int fd;
struct {
char *start; /* the start pointer of the mmap'ed area */
size_t length; /* size of the mmap'ed area */
off_t offset; /* start is <n> octet away from the start of the file */
} mmap;
int is_temp; /* file is temporary and will be deleted if on cleanup */
} file;
off_t offset; /*