本文整理汇总了C++中read_type函数的典型用法代码示例。如果您正苦于以下问题:C++ read_type函数的具体用法?C++ read_type怎么用?C++ read_type使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了read_type函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: read_struct
/*
* read a struct and add it to tree
*/
static void
read_struct(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
int add_type_field)
{
proto_item *ti;
proto_tree *new_tree;
int length;
int i;
ti = proto_tree_add_item(etch_tree, hf_etch_struct, tvb, *offset,
tvb_captured_length(tvb) - *offset, ENC_NA);
new_tree = proto_item_add_subtree(ti, ett_etch_struct);
if (add_type_field) {
read_type(offset, tvb, new_tree);
}
/* struct type as hash */
read_value(offset, tvb, new_tree, hf_etch_value);
/* struct length */
length = read_value(offset, tvb, new_tree, hf_etch_length);
for (i = 0; i < length; i++) {
read_key_value(offset, tvb, new_tree);
}
/* termination */
read_type(offset, tvb, new_tree);
}
示例2: read_array_type
/*
* read a array type flag and add it to tree
*/
static void
read_array_type(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
{
guint32 type_code;
type_code = tvb_get_guint8(tvb, *offset);
read_type(offset, tvb, etch_tree);
if (type_code == ETCH_TC_CUSTOM) {
read_type(offset, tvb, etch_tree);
proto_tree_add_item(etch_tree, hf_etch_value, tvb, *offset, 4,
ENC_BIG_ENDIAN);
(*offset) += 4;
}
}
示例3: read_params
/*
* Read a list of parameters. Each parameter is a name and a type.
* The list ends with a ')'. We have already read the '('.
*/
static struct params *
read_params()
{
char *token;
struct params *ret, **pp, *p;
ret = NULL;
pp = &ret;
token = read_token_no_eof();
if (strcmp(token, ")") != 0) {
while (1) {
p = xmalloc(sizeof(struct params));
p->name = token;
p->type = read_type();
p->next = NULL;
*pp = p;
pp = &p->next;
token = read_token_no_eof();
if (strcmp(token, ",") != 0)
break;
token = read_token_no_eof();
}
}
if (strcmp(token, ")") != 0) {
sysfatal("%s:%ud: expected '('\n",
file, lineno);
}
return ret;
}
示例4: read_number
/*
* read a number and add it to tree
*/
static void
read_number(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
int asWhat, guint8 type_code)
{
int byteLength;
read_type(offset, tvb, etch_tree);
byteLength = get_byte_length(type_code);
if (byteLength > 0) {
proto_item *ti;
const gchar *symbol = NULL;
guint32 hash = 0;
gbl_symbol_buffer = wmem_strbuf_new_label(wmem_packet_scope()); /* no symbol found yet */
if (byteLength == 4) {
hash = tvb_get_ntohl(tvb, *offset);
symbol = try_val_to_str_ext(hash, gbl_symbols_vs_ext);
if(symbol != NULL) {
asWhat = hf_etch_symbol;
gbl_have_symbol = TRUE;
wmem_strbuf_append_printf(gbl_symbol_buffer,"%s",symbol);
}
}
ti = proto_tree_add_item(etch_tree, asWhat, tvb, *offset,
byteLength, ENC_BIG_ENDIAN);
*offset += byteLength;
if (symbol != NULL) {
proto_item_append_text(ti, " (0x%08x) %s", hash, symbol);
}
}
}
示例5: strcpy
static t_myproof_variable *read_data( tree t, t_myproof_function *function )
{
char identifier[MYPROOF_NAME_SIZE];
if ( DECL_NAME(t) )
{
strcpy( identifier, IDENTIFIER_POINTER(DECL_NAME(t)) );
}
else
{
sprintf(identifier, "%c_%u", ( TREE_CODE(t) == CONST_DECL ) ? 'C' : 'D', DECL_UID(t) );
}
t_myproof_variable *variable = mylist_find( function->variables, variable_exists, (void*)identifier );
if ( variable == NULL )
{
variable = create_variable_struct( identifier, t );
mylist_insert( &(function->variables), variable );
}
read_type( TREE_TYPE(t), function );
return variable;
}
示例6: read_type
std::unique_ptr<tag> io::read(std::istream& is, std::string& key)
{
tag::tag_type tt = read_type(is);
key = read_str(is);
if(!is)
throw tag::input_error((boost::format("Error reading name of tag_%1%") % tt).str());
return read_payload(tt, is);
}
示例7: write_message
void bronco::serverconnection::handle_announce(const boost::system::error_code &error, const protocol::Announce &announce)
{
if (!error) {
/* send join request */
write_message(announce);
/* wait for reply */
read_type();
} else {
handle_error(error);
}
}
示例8: read_data
static void read_data( tree t )
{
if ( DECL_NAME(t) )
{
/* printf ( " data \'%s\'\n", IDENTIFIER_POINTER(DECL_NAME(t)) ); */
}
else
{
/* printf ( " data \'%c_%u\'\n", (TREE_CODE(t)==CONST_DECL)?'C':'D', DECL_UID(t) ); */
}
read_type ( TREE_TYPE(t) );
}
示例9: read_array
/*
* read an array from tvb and add it to tree
*/
static void
read_array(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
{
int length;
/* array type */
read_type(offset, tvb, etch_tree);
/* Array of type: */
read_array_type(offset, tvb, etch_tree);
/* Array dim */
proto_tree_add_item(etch_tree, hf_etch_dim, tvb, *offset, 1, ENC_BIG_ENDIAN);
(*offset)++;
/* Array length */
length = read_length(offset, tvb, etch_tree);
for (; length > 0; length--) {
read_value(offset, tvb, etch_tree, hf_etch_value);
}
/* terminaton */
read_type(offset, tvb, etch_tree);
}
示例10: cw_ktv_parse_string
int cw_ktv_parse_string(struct cw_KTV_Reader *r, char *key, char *type, char *val)
{
int n;
n = read_key (r,key,CW_KTV_MAX_KEY_LEN);
n = read_type(r,type,200);
if (n==1)
return -1;
n = read_val(r,val,200);
return n;
}
示例11: perror
/**
* A wrapper function around read_type() and read_packet() for reading data from the pipe
* and returning it.
*
* @param[in] fd The file descriptor to read from.
* @param[in] type A pointer to the packet type.
*
* @return <ul>
* <li>Returns the packet if successful.</li>
* <li>Returns NULL if it fails to read either of the type or the packet from the pipe.</li>
* </ul>
*
* @designer Ramzi Chennafi
* @author Ramzi Chennafi
*/
void *read_data(int fd, uint32_t *type) {
void *packet;
*type = read_type(fd);
if(*type <= 0 || *type > NUM_PACKETS) {
perror("read_data: Failed to read packet type from pipe");
return NULL;
}
if((packet = read_packet(fd, packet_sizes[*type - 1])) == NULL) {
printf("read_data: Failed to read packet\n");
return NULL;
}
return packet;
}
示例12: read_length
/*
* read the length of an array and add it to tree
*/
static guint32
read_length(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
{
guint32 length;
int length_of_array_length_type;
guint8 tiny;
tiny = tvb_get_guint8(tvb, *offset);
/* Is this the value already? */
if ( tiny <= ETCH_TC_MAX_TINY_INT
|| tiny >= ETCH_TC_MIN_TINY_INT) {
length = tiny;
length_of_array_length_type = 1;
} else {
guint8 type_code;
type_code = read_type(offset, tvb, etch_tree);
length_of_array_length_type = get_byte_length(type_code);
switch (length_of_array_length_type) {
case 1:
length = tvb_get_guint8(tvb, *offset);
break;
case 2:
length = tvb_get_ntohs(tvb, *offset);
break;
case 4:
length = tvb_get_ntohl(tvb, *offset);
break;
default:
return 0; /* error! */
}
}
proto_tree_add_item(etch_tree, hf_etch_length, tvb, *offset,
length_of_array_length_type, ENC_BIG_ENDIAN);
(*offset) += length_of_array_length_type;
if (*offset + length < *offset) {
/* overflow case
* https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8464 */
length = tvb_reported_length_remaining(tvb, *offset);
}
return length;
}
示例13: read_params
/* Read a list of parameters. Each parameter is a name and a type.
The list ends with a ')'. We have already read the '('. */
static struct params *
read_params(int *poffset)
{
char *token;
struct params *ret, **pp, *p;
int offset, size, rnd;
ret = NULL;
pp = &ret;
token = read_token_no_eof();
offset = 0;
if (strcmp(token, ")") != 0) {
while (1) {
p = xmalloc(sizeof(struct params));
p->name = token;
p->type = read_type();
p->next = NULL;
*pp = p;
pp = &p->next;
size = type_size(p->type);
rnd = size;
if(rnd > structround)
rnd = structround;
if(offset%rnd)
offset += rnd - offset%rnd;
offset += size;
token = read_token_no_eof();
if (strcmp(token, ",") != 0)
break;
token = read_token_no_eof();
}
}
if (strcmp(token, ")") != 0) {
fprintf(stderr, "%s:%u: expected '('\n",
file, lineno);
exit(1);
}
if (poffset != NULL)
*poffset = offset;
return ret;
}
示例14: read_length
/*
* read the length of an array and add it to tree
*/
static guint32
read_length(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
{
guint32 length;
int length_of_array_length_type;
guint8 tiny;
tiny = tvb_get_guint8(tvb, *offset);
/* Is this the value already? */
if ( tiny <= ETCH_TC_MAX_TINY_INT
|| tiny >= ETCH_TC_MIN_TINY_INT) {
length = tiny;
length_of_array_length_type = 1;
} else {
guint8 type_code;
type_code = read_type(offset, tvb, etch_tree);
length_of_array_length_type = get_byte_length(type_code);
switch (length_of_array_length_type) {
case 1:
length = tvb_get_guint8(tvb, *offset);
break;
case 2:
length = tvb_get_ntohs(tvb, *offset);
break;
case 4:
length = tvb_get_ntohl(tvb, *offset);
break;
default:
return 0; /* error! */
}
}
proto_tree_add_item(etch_tree, hf_etch_length, tvb, *offset,
length_of_array_length_type, ENC_BIG_ENDIAN);
(*offset) += length_of_array_length_type;
return length;
}
示例15: read_text
static void
read_text(FILE *fob, mxArray **data, double dbu_to_uu)
{
mxArray *pstruct;
mxArray *pprop = NULL;
uint16_t rtype, rlen;
int nprop = 0;
char tstr[TXTLEN+4];
element_t text;
const char *fields[] = {"internal", "xy", "prop", "text"};
/* initialize element */
init_element(&text, GDS_TEXT);
/* output data structure */
pstruct = mxCreateStructMatrix(1,1, 4, fields);
/* read element properties */
while (1) {
if ( read_record_hdr(fob, &rtype, &rlen) )
mexErrMsgTxt("gds_read_element (text) : could not read record header.");
if (rtype == ENDEL)
break;
switch (rtype) {
case STRING:
if ( read_string(fob, tstr, rlen) )
mexErrMsgTxt("gds_read_element (text) : could not read string.");
struct_set_string(pstruct, 3, tstr);
break;
case TEXTTYPE:
text.dtype = read_type(fob);
break;
case XY:
mxSetFieldByNumber(pstruct, 0, 1, read_xy(fob, rlen, dbu_to_uu));
break;
case LAYER:
text.layer = read_layer(fob);
break;
case PATHTYPE:
text.ptype = read_type(fob);
text.has |= HAS_PTYPE;
break;
case WIDTH:
text.width = dbu_to_uu * read_width(fob);
text.has |= HAS_WIDTH;
break;
case PRESENTATION:
if ( read_word(fob, &text.present) )
mexErrMsgTxt("gds_read_element (text) : could not read presentation data.");
text.has |= HAS_PRESTN;
break;
case STRANS:
if ( read_word(fob, &text.strans.flags) )
mexErrMsgTxt("gds_read_element (text) : could not read strans data.");
text.has |= HAS_STRANS;
break;
case MAG:
if ( read_real8(fob, &text.strans.mag) )
mexErrMsgTxt("gds_read_element (text) : could not read magnification.");
text.has |= HAS_MAG;
break;
case ANGLE:
if ( read_real8(fob, &text.strans.angle) )
mexErrMsgTxt("gds_read_element (text) : could not read angle.");
text.has |= HAS_ANGLE;
break;
case ELFLAGS:
text.elflags = read_elflags(fob);
text.has |= HAS_ELFLAGS;
break;
case PLEX:
text.plex = read_plex(fob);
text.has |= HAS_PLEX;
break;
case PROPATTR:
pprop = resize_property_structure(pprop, nprop+1);
mxSetFieldByNumber(pprop, nprop, 0, read_propattr(fob));
break;
case PROPVALUE:
mxSetFieldByNumber(pprop, nprop, 1, read_propvalue(fob,rlen));
nprop += 1;
break;
//.........这里部分代码省略.........