Ruby  2.0.0p247(2013-06-27revision41674)
Data Structures | Typedefs | Enumerations | Functions
Emitter Definitions

Data Structures

struct  yaml_emitter_s
 The emitter structure. More...
 

Typedefs

typedef int yaml_write_handler_t (void *data, unsigned char *buffer, size_t size)
 The prototype of a write handler. More...
 
typedef enum yaml_emitter_state_e yaml_emitter_state_t
 The emitter states. More...
 
typedef struct yaml_emitter_s yaml_emitter_t
 The emitter structure. More...
 

Enumerations

enum  yaml_emitter_state_e {
  YAML_EMIT_STREAM_START_STATE, YAML_EMIT_FIRST_DOCUMENT_START_STATE, YAML_EMIT_DOCUMENT_START_STATE, YAML_EMIT_DOCUMENT_CONTENT_STATE,
  YAML_EMIT_DOCUMENT_END_STATE, YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE, YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE, YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE,
  YAML_EMIT_FLOW_MAPPING_KEY_STATE, YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE, YAML_EMIT_FLOW_MAPPING_VALUE_STATE, YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE,
  YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE, YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE, YAML_EMIT_BLOCK_MAPPING_KEY_STATE, YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE,
  YAML_EMIT_BLOCK_MAPPING_VALUE_STATE, YAML_EMIT_END_STATE
}
 The emitter states. More...
 

Functions

 yaml_emitter_initialize (yaml_emitter_t *emitter)
 Initialize an emitter. More...
 
 yaml_emitter_delete (yaml_emitter_t *emitter)
 Destroy an emitter. More...
 
 yaml_emitter_set_output_string (yaml_emitter_t *emitter, unsigned char *output, size_t size, size_t *size_written)
 Set a string output. More...
 
 yaml_emitter_set_output_file (yaml_emitter_t *emitter, FILE *file)
 Set a file output. More...
 
 yaml_emitter_set_output (yaml_emitter_t *emitter, yaml_write_handler_t *handler, void *data)
 Set a generic output handler. More...
 
 yaml_emitter_set_encoding (yaml_emitter_t *emitter, yaml_encoding_t encoding)
 Set the output encoding. More...
 
 yaml_emitter_set_canonical (yaml_emitter_t *emitter, int canonical)
 Set if the output should be in the "canonical" format as in the YAML specification. More...
 
 yaml_emitter_set_indent (yaml_emitter_t *emitter, int indent)
 Set the intendation increment. More...
 
 yaml_emitter_set_width (yaml_emitter_t *emitter, int width)
 Set the preferred line width. More...
 
 yaml_emitter_set_unicode (yaml_emitter_t *emitter, int unicode)
 Set if unescaped non-ASCII characters are allowed. More...
 
 yaml_emitter_set_break (yaml_emitter_t *emitter, yaml_break_t line_break)
 Set the preferred line break. More...
 
 yaml_emitter_emit (yaml_emitter_t *emitter, yaml_event_t *event)
 Emit an event. More...
 
 yaml_emitter_open (yaml_emitter_t *emitter)
 Start a YAML stream. More...
 
 yaml_emitter_close (yaml_emitter_t *emitter)
 Finish a YAML stream. More...
 
 yaml_emitter_dump (yaml_emitter_t *emitter, yaml_document_t *document)
 Emit a YAML document. More...
 
 yaml_emitter_flush (yaml_emitter_t *emitter)
 Flush the accumulated characters to the output. More...
 

Detailed Description

Typedef Documentation

The emitter states.

The emitter structure.

All members are internal. Manage the structure using the yaml_emitter_ family of functions.

typedef int yaml_write_handler_t(void *data, unsigned char *buffer, size_t size)

The prototype of a write handler.

The write handler is called when the emitter needs to flush the accumulated characters to the output. The handler should write size bytes of the buffer to the output.

Parameters
[in,out]dataA pointer to an application data specified by yaml_emitter_set_output().
[in]bufferThe buffer with bytes to be written.
[in]sizeThe size of the buffer.
Returns
On success, the handler should return 1. If the handler failed, the returned value should be 0.

Definition at line 1476 of file yaml.h.

Enumeration Type Documentation

The emitter states.

Enumerator
YAML_EMIT_STREAM_START_STATE 

Expect STREAM-START.

YAML_EMIT_FIRST_DOCUMENT_START_STATE 

Expect the first DOCUMENT-START or STREAM-END.

YAML_EMIT_DOCUMENT_START_STATE 

Expect DOCUMENT-START or STREAM-END.

YAML_EMIT_DOCUMENT_CONTENT_STATE 

Expect the content of a document.

YAML_EMIT_DOCUMENT_END_STATE 

Expect DOCUMENT-END.

YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE 

Expect the first item of a flow sequence.

YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE 

Expect an item of a flow sequence.

YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE 

Expect the first key of a flow mapping.

YAML_EMIT_FLOW_MAPPING_KEY_STATE 

Expect a key of a flow mapping.

YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE 

Expect a value for a simple key of a flow mapping.

YAML_EMIT_FLOW_MAPPING_VALUE_STATE 

Expect a value of a flow mapping.

YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE 

Expect the first item of a block sequence.

YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE 

Expect an item of a block sequence.

YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE 

Expect the first key of a block mapping.

YAML_EMIT_BLOCK_MAPPING_KEY_STATE 

Expect the key of a block mapping.

YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE 

Expect a value for a simple key of a block mapping.

YAML_EMIT_BLOCK_MAPPING_VALUE_STATE 

Expect a value of a block mapping.

YAML_EMIT_END_STATE 

Expect nothing.

Definition at line 1479 of file yaml.h.

Function Documentation

yaml_emitter_close ( yaml_emitter_t emitter)

Finish a YAML stream.

This function should be used after yaml_emitter_dump() is called.

Parameters
[in,out]emitterAn emitter object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 86 of file dumper.c.

References assert, mark(), STREAM_END_EVENT_INIT, and yaml_emitter_emit().

Referenced by yaml_emitter_dump().

yaml_emitter_delete ( yaml_emitter_t emitter)

Destroy an emitter.

Parameters
[in,out]emitterAn emitter object.

Definition at line 386 of file api.c.

References assert, BUFFER_DEL, DEQUEUE, yaml_tag_directive_s::handle, memset(), POP, yaml_tag_directive_s::prefix, QUEUE_DEL, QUEUE_EMPTY, STACK_DEL, STACK_EMPTY, yaml_event_delete(), and yaml_free().

Referenced by dealloc().

yaml_emitter_dump ( yaml_emitter_t emitter,
yaml_document_t document 
)

Emit a YAML document.

The documen object may be generated using the yaml_parser_load() function or the yaml_document_initialize() function. The emitter takes the responsibility for the document object and destoys its content after it is emitted. The document object is destroyedeven if the function fails.

Parameters
[in,out]emitterAn emitter object.
[in,out]documentA document object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 112 of file dumper.c.

References assert, DOCUMENT_END_EVENT_INIT, DOCUMENT_START_EVENT_INIT, mark(), memset(), STACK_EMPTY, yaml_event_s::version_directive, yaml_emitter_anchor_node(), yaml_emitter_close(), yaml_emitter_delete_document_and_anchors(), yaml_emitter_dump_node(), yaml_emitter_emit(), yaml_emitter_open(), and yaml_malloc().

yaml_emitter_emit ( yaml_emitter_t emitter,
yaml_event_t event 
)

Emit an event.

The event object may be generated using the yaml_parser_parse() function. The emitter takes the responsibility for the event object and destroys its content after it is emitted. The event object is destroyed even if the function fails.

Parameters
[in,out]emitterAn emitter object.
[in,out]eventAn event object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 281 of file emitter.c.

References DEQUEUE, ENQUEUE, yaml_emitter_analyze_event(), yaml_emitter_need_more_events(), yaml_emitter_state_machine(), and yaml_event_delete().

Referenced by emit(), yaml_emitter_close(), yaml_emitter_dump(), yaml_emitter_dump_alias(), yaml_emitter_dump_mapping(), yaml_emitter_dump_scalar(), yaml_emitter_dump_sequence(), and yaml_emitter_open().

yaml_emitter_flush ( yaml_emitter_t emitter)

Flush the accumulated characters to the output.

Parameters
[in,out]emitterAn emitter object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 32 of file writer.c.

References assert, value, yaml_emitter_set_writer_error(), YAML_UTF16LE_ENCODING, and YAML_UTF8_ENCODING.

Referenced by yaml_emitter_emit_document_end(), and yaml_emitter_emit_document_start().

yaml_emitter_initialize ( yaml_emitter_t emitter)

Initialize an emitter.

This function creates a new emitter object. An application is responsible for destroying the object using the yaml_emitter_delete() function.

Parameters
[out]emitterAn empty parser object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 349 of file api.c.

References assert, BUFFER_DEL, BUFFER_INIT, INITIAL_QUEUE_SIZE, INITIAL_STACK_SIZE, memset(), OUTPUT_BUFFER_SIZE, OUTPUT_RAW_BUFFER_SIZE, QUEUE_DEL, QUEUE_INIT, STACK_DEL, and STACK_INIT.

Referenced by allocate().

yaml_emitter_open ( yaml_emitter_t emitter)

Start a YAML stream.

This function should be used before yaml_emitter_dump() is called.

Parameters
[in,out]emitterAn emitter object.
Returns
1 if the function succeeded, 0 on error.

Definition at line 62 of file dumper.c.

References assert, mark(), STREAM_START_EVENT_INIT, YAML_ANY_ENCODING, and yaml_emitter_emit().

Referenced by yaml_emitter_dump().

yaml_emitter_set_break ( yaml_emitter_t emitter,
yaml_break_t  line_break 
)

Set the preferred line break.

Parameters
[in,out]emitterAn emitter object.
[in]line_breakThe preferred line break.

Definition at line 566 of file api.c.

References assert.

yaml_emitter_set_canonical ( yaml_emitter_t emitter,
int  canonical 
)

Set if the output should be in the "canonical" format as in the YAML specification.

Parameters
[in,out]emitterAn emitter object.
[in]canonicalIf the output is canonical.

Definition at line 518 of file api.c.

References assert.

Referenced by initialize(), and set_canonical().

yaml_emitter_set_encoding ( yaml_emitter_t emitter,
yaml_encoding_t  encoding 
)

Set the output encoding.

Parameters
[in,out]emitterAn emitter object.
[in]encodingThe output encoding.

Definition at line 505 of file api.c.

References assert.

yaml_emitter_set_indent ( yaml_emitter_t emitter,
int  indent 
)

Set the intendation increment.

Parameters
[in,out]emitterAn emitter object.
[in]indentThe indentation increment (1 < . < 10).

Definition at line 530 of file api.c.

References assert.

Referenced by allocate(), initialize(), and set_indentation().

yaml_emitter_set_output ( yaml_emitter_t emitter,
yaml_write_handler_t handler,
void data 
)

Set a generic output handler.

Parameters
[in,out]emitterAn emitter object.
[in]handlerA write handler.
[in]dataAny application data for passing to the write handler.

Definition at line 489 of file api.c.

References assert, and data.

Referenced by initialize().

yaml_emitter_set_output_file ( yaml_emitter_t emitter,
FILE file 
)

Set a file output.

file should be a file object open for writing. The application is responsible for closing the file.

Parameters
[in,out]emitterAn emitter object.
[in]fileAn open file.

Definition at line 472 of file api.c.

References assert, and yaml_file_write_handler().

yaml_emitter_set_output_string ( yaml_emitter_t emitter,
unsigned char *  output,
size_t  size,
size_t *  size_written 
)

Set a string output.

The emitter will write the output characters to the output buffer of the size size. The emitter will set size_written to the number of written bytes. If the buffer is smaller than required, the emitter produces the YAML_WRITE_ERROR error.

Parameters
[in,out]emitterAn emitter object.
[in]outputAn output buffer.
[in]sizeThe buffer size.
[in]size_writtenThe pointer to save the number of written bytes.

Definition at line 451 of file api.c.

References assert, output, size, and yaml_string_write_handler().

yaml_emitter_set_unicode ( yaml_emitter_t emitter,
int  unicode 
)

Set if unescaped non-ASCII characters are allowed.

Parameters
[in,out]emitterAn emitter object.
[in]unicodeIf unescaped Unicode characters are allowed.

Definition at line 554 of file api.c.

References assert.

Referenced by allocate().

yaml_emitter_set_width ( yaml_emitter_t emitter,
int  width 
)

Set the preferred line width.

-1 means unlimited.

Parameters
[in,out]emitterAn emitter object.
[in]widthThe preferred line width.

Definition at line 542 of file api.c.

References assert.

Referenced by initialize(), and set_line_width().