SPICE协议marshaller的处理
来源:互联网 发布:三星软件市场 编辑:程序博客网 时间:2024/05/29 17:40
m:
struct SpiceMarshaller {
size_t total_size;
SpiceMarshallerData *data;
SpiceMarshaller *next;
MarshallerRef pointer_ref;
int n_items;
int items_size; /* number of items availible in items */
MarshallerItem *items;
MarshallerItem static_items[N_STATIC_ITEMS];
};
d:
struct SpiceMarshallerData {
size_t total_size;
size_t base;
SpiceMarshaller *marshallers;
SpiceMarshaller *last_marshaller;
size_t current_buffer_position;
MarshallerBuffer *current_buffer;
MarshallerItem *current_buffer_item;
MarshallerBuffer *buffers;
SpiceMarshaller static_marshaller;
MarshallerBuffer static_buffer;
};
item:
typedef struct {
uint8_t *data;
size_t len;
spice_marshaller_item_free_func free_data;
void *opaque;
} MarshallerItem;
buffers:
struct MarshallerBuffer {
MarshallerBuffer *next;
uint8_t data[MARSHALLER_BUFFER_SIZE];
};
m结构里包括4个item,n_items为当前使用的item数,初始化m时为0,每当增加一个item,n_items++;items_size为item的可用个数,当add的item数超过4个时就spice_new重新申请items_size*2的大小,并copy原来的static items,如果以后再次超过items_size时,就spice_renew扩大原理的一倍。
- SPICE协议marshaller的处理
- fuel 6.0 配置spice协议的整个过程
- SPICE:独立计算环境的简单协议
- spice协议详解(一):spice协议入门
- Marshaller生成的xml去掉报文头、设置格式、不处理转义字符的方法
- Marshaller生成的xml去掉报文头、设置格式、不处理转义字符的方法
- spice 协议简介
- SPICE协议之ImageCache
- android spice 协议入门
- SPICE协议之ImageCache
- Spice协议初探
- SPICE协议在Android上的几个优化要点
- spice client 异常处理
- spice 协议代码 client入口
- spice 协议相关分析总结
- Spice协议----输入通道定义
- SPICE协议----光标通道定义
- SPICE协议之RedWorker线程
- explain命令和mysql不同存储引擎的区别
- 海量数据面试题整理
- 回文字符串
- 莫虚度,从改变态度开始
- char类型的数据范围为什么时-128--127
- SPICE协议marshaller的处理
- 判断wifi是否打开
- JAVA学习.JAVA集合类型Collection.List.ArrayList&LinkedList
- C --- 数据和C
- leetcode Sort Colors
- MFC基础教程(简单计算器)<3>
- HDU--2955
- linux下vim命令详解
- 代码清单18-2 数组操作