\& .sp 1 .ce 3 \s+1\fBChapter 14\fP\s-1 \s+1\fBOutput Command Encode and Decode\fP\s-1 .sp 2 .nr H1 14 .nr H2 0 .nr H3 0 .nr H4 0 .nr H5 0 .na .LP .XS Chapter 14: Output Command Encode and Decode .XE .IN "encode" .IN "decode" .IN "output commands" .LP Some applications need to generate protocol-formatted output commands for use in archives or client-side data storage. Likewise, the application may need to decode the protocol-formatted output commands returned from functions like .PN PEXFetchElements . The functions described in this chapter provide for these operations. .LP For complete information on protocol format, see the \fIPEX Protocol Specification\fP and the \fIPEX Protocol Encoding\fP. .LP For the definition of the .PN PEXOCData data structure, see the PEXlib.h header file. .bp .XS Function Descriptions .XE .SH PEXCountOCs - Count Output Commands in an Encoded List .XS PEXCountOCs .XE .IN "PEXCountOCs" "" "@DEF@" .SH Synopsis .RS .FD 0 unsigned long PEXCountOCs\^(\^int \fIfloat_format\fP\^, unsigned long \fIlength\fP\^, char *\fIencoded_ocs\fP\^) .FN .RE .SH Arguments .RS .IP \fIfloat_format\fP 1i The floating point format of the encoded output commands .Pn ( PEXIEEE_754_32 , .PN PEXDEC_F_Floating , .PN PEXIEEE_754_64 , .PN PEXDEC_D_Floating ). .IP \fIlength\fP 1i The length, in bytes, of the encoded output commands. .IP \fIencoded_ocs\fP 1i A pointer to the encoded output commands. .RE .SH Returns .RS .LP The number of output commands represented in the encoded output commands. .RE .SH Description .RS .LP This function has no visible effect. This function returns the number of output commands in the encoded list of output commands. .LP A count of zero will be returned if the specified floating point format is not supported. .RE .SH Errors .RS .IP None 1i .RE .SH See Also .RS .LP .PN PEXDecodeOCs .RE .bp .SH PEXDecodeOCs - Decode Output Commands .XS PEXDecodeOCs .XE .IN "PEXDecodeOCs" "" "@DEF@" .SH Synopsis .RS .FD 0 PEXOCData *PEXDecodeOCs\^(\^int \fIfloat_format\fP\^, unsigned long \fIoc_count\fP\^, unsigned long \fIlength\fP\^, char *\fIencoded_ocs\fP\^) .FN .RE .SH Arguments .RS .IP \fIfloat_format\fP 1i The floating point format of the encoded output commands .Pn ( PEXIEEE_754_32 , .PN PEXDEC_F_Floating , .PN PEXIEEE_754_64 , .PN PEXDEC_D_Floating ). .IP \fIoc_count\fP 1i The number of output commands represented in the encoded output commands. .IP \fIlength\fP 1i The length, in bytes, of the encoded output commands. .IP \fIencoded_ocs\fP 1i A pointer to the encoded output commands. .RE .SH Returns .RS .LP A pointer to the decoded output commands; a null pointer if unsuccessful or if zero output commands specified. .RE .SH Description .RS .LP This function has no visible effect. Encoded output commands are passed in and the data typically passed as parameters to output attribute or primitive functions is returned in memory allocated by PEXlib. .PN PEXFreeOCData should be called to deallocate the memory. .LP A null pointer will be returned if the specified floating point format is not supported. .LP Any text or annotation text primitives are returned as encoded text or encoded annotation text. .LP .PN PEXCountOCs can be used to determine the number of output commands in the encoded list if that information is not already available. .RE .SH Errors .RS .IP None 1i .RE .SH See Also .RS .LP .PN PEXEncodeOCs , .PN PEXCountOCs .RE .bp .SH PEXEncodeOCs - Encode Output Commands .XS PEXEncodeOCs .XE .IN "PEXEncodeOCs" "" "@DEF@" .SH Synopsis .RS .FD 0 char *PEXEncodeOCs\^(\^int \fIfloat_format\fP\^, unsigned long \fIoc_count\fP\^, PEXOCData *\fIoc_data\fP\^, unsigned long *\fIlength_return\fP\^) .FN .RE .SH Arguments .RS .IP \fIfloat_format\fP 1i The floating point format for the encoded output commands .Pn ( PEXIEEE_754_32 , .PN PEXDEC_F_Floating , .PN PEXIEEE_754_64 , .PN PEXDEC_D_Floating ). .IP \fIoc_count\fP 1i The number of output commands to be encoded. .IP \fIoc_data\fP 1i An array of the output command data. .IP \fIlength_return\fP 1i Returns the length, in bytes, of the encoded output commands. .RE .SH Returns .RS .LP A pointer to the encoded output commands; a null pointer if unsuccessful or if zero output commands specified. .RE .SH Description .RS .LP This function has no visible effect. The data typically passed as parameters to output attribute or primitive functions is passed in and encoded into protocol formatted output commands. The encoded data is returned in memory allocated by PEXlib. .PN XFree should be called to deallocate the memory. .LP A null pointer will be returned if the specified floating point format is not supported. .LP Any text or annotation text primitives must be specified as encoded text or encoded annotation text. .RE .SH Errors .RS .IP None 1i .RE .SH See Also .RS .LP .PN PEXDecodeOCs .RE .bp .SH PEXFreeOCData - Deallocate OC Data .XS PEXFreeOCData .XE .IN "PEXFreeOCData" "" "@DEF@" .SH Synopsis .RS .FD 0 void PEXFreeOCData\^(\^unsigned long \fIcount\fP\^, PEXOCData *\fIoc_data\fP\^) .FN .RE .SH Arguments .RS .IP \fIcount\fP 1i The number of output commands. .IP \fIoc_data\fP 1i An array of output command data. .RE .SH Returns .RS .LP None .RE .SH Description .RS .LP This function deallocates memory allocated by PEXlib to hold decoded output command data. .RE .SH Errors .RS .IP None 1i .RE .SH See Also .RS .LP .PN PEXDecodeOCs .RE .bp