OSJSONEncodeStream Class Reference

The OSJSONEncodeStream class is derived from the OSJSONMessageBuffer base class. More...

#include <OSJSONEncodeStream.h>

Inheritance diagram for OSJSONEncodeStream:
OSJSONMessageBuffer

List of all members.

Public Member Functions

EXTJSONMETHOD OSJSONEncodeStream (OSRTOutputStream &outputStream)
 This version of the OSJSONEncodeStream constructor takes a reference to the OSOutputStream object.
 OSJSONEncodeStream (OSRTOutputStream *pOutputStream, OSBOOL ownStream=TRUE)
 This version of the OSJSONEncodeStream constructor takes a pointer to the OSRTOutputStream object.
EXTJSONMETHOD int encodeAttr (const OSUTF8CHAR *name, const OSUTF8CHAR *value)
 This function encodes an attribute in which the name and value are given as null-terminated UTF-8 strings.
EXTJSONMETHOD int encodeText (const OSUTF8CHAR *value)
 This method encodes JSON textual content.
virtual EXTJSONMETHOD int init ()
 This method reinitializes the encode stream to allow a new message to be encoded.
virtual OSBOOL isA (Type bufferType)
 This is a virtual method that must be overridden by derived classes to allow identification of the class.
virtual const OSOCTET * getMsgPtr ()
 This is a virtual method that must be overridden by derived classes to allow access to the stored message.
OSRTOutputStream * getStream () const
 This method returns the output stream associated with the object.

Protected Attributes

OSRTOutputStream * mpStream
 A pointer to an OSRTOutputStream object.
OSBOOL mbOwnStream
 TRUE if the OSJSONEncodeStream object will close and free the stream in the destructor.
OSCTXT * mpCtxt
 Internal pointer to the context structure associated with the stream for making C function calls.

Detailed Description

The OSJSONEncodeStream class is derived from the OSJSONMessageBuffer base class.

It contains variables and methods specific to streaming encoding JSON messages. It is used to manage the stream into which a message is to be encoded.

Definition at line 40 of file OSJSONEncodeStream.h.


Constructor & Destructor Documentation

EXTJSONMETHOD OSJSONEncodeStream::OSJSONEncodeStream ( OSRTOutputStream &  outputStream  ) 

This version of the OSJSONEncodeStream constructor takes a reference to the OSOutputStream object.

The stream is assumed to have been previously initialized.

Parameters:
outputStream reference to the OSOutputStream object
OSJSONEncodeStream::OSJSONEncodeStream ( OSRTOutputStream *  pOutputStream,
OSBOOL  ownStream = TRUE 
)

This version of the OSJSONEncodeStream constructor takes a pointer to the OSRTOutputStream object.

The stream is assumed to have been previously initialized. If ownStream is set to TRUE, then stream will be closed and freed in the destructor.

Parameters:
pOutputStream reference to the OSOutputStream object
ownStream set ownership for the passed stream object.

Member Function Documentation

EXTJSONMETHOD int OSJSONEncodeStream::encodeAttr ( const OSUTF8CHAR *  name,
const OSUTF8CHAR *  value 
)

This function encodes an attribute in which the name and value are given as null-terminated UTF-8 strings.

Parameters:
name Attribute name.
value UTF-8 string value to be encoded.
Returns:
Completion status of operation:
  • 0 = success,
  • negative return value is error.
EXTJSONMETHOD int OSJSONEncodeStream::encodeText ( const OSUTF8CHAR *  value  ) 

This method encodes JSON textual content.

JSON metadata characters are escaped. The input value is specified in UTF-8 character format.

Parameters:
value UTF-8 string value to be encoded.
Returns:
Completion status of operation:
  • 0 = success,
  • negative return value is error.
virtual const OSOCTET* OSJSONEncodeStream::getMsgPtr (  )  [inline, virtual]

This is a virtual method that must be overridden by derived classes to allow access to the stored message.

The base class implementation returns a null value.

Returns:
A pointer to the stored message.

Definition at line 135 of file OSJSONEncodeStream.h.

OSRTOutputStream* OSJSONEncodeStream::getStream (  )  const [inline]

This method returns the output stream associated with the object.

Returns:
A pointer to the output stream.

Definition at line 142 of file OSJSONEncodeStream.h.

virtual EXTJSONMETHOD int OSJSONEncodeStream::init (  )  [virtual]

This method reinitializes the encode stream to allow a new message to be encoded.

This makes it possible to reuse one stream object in a loop to encode multiple messages.

virtual OSBOOL OSJSONEncodeStream::isA ( Type  bufferType  )  [inline, virtual]

This is a virtual method that must be overridden by derived classes to allow identification of the class.

The base class variant is abstract. This method matches an enumerated identifier defined in the base class. One identifier is declared for each of the derived classes.

Parameters:
bufferType Enumerated identifier specifying a derived class. This type is defined as a public access type in the OSRTMessageBufferIF base interface. Possible values include BEREncode, BERDecode, PEREncode, PERDecode, JSONEncode, and JSONDecode.
Returns:
Boolean result of the match operation. True if the bufferType argument is JSONEncode. argument.

Definition at line 124 of file OSJSONEncodeStream.h.


Member Data Documentation

OSBOOL OSJSONEncodeStream::mbOwnStream [protected]

TRUE if the OSJSONEncodeStream object will close and free the stream in the destructor.

Definition at line 47 of file OSJSONEncodeStream.h.

OSCTXT* OSJSONEncodeStream::mpCtxt [protected]

Internal pointer to the context structure associated with the stream for making C function calls.

Definition at line 51 of file OSJSONEncodeStream.h.

OSRTOutputStream* OSJSONEncodeStream::mpStream [protected]

A pointer to an OSRTOutputStream object.

Definition at line 43 of file OSJSONEncodeStream.h.


The documentation for this class was generated from the following file: