NetMsgs.NetMsgsLibStreamBuf
index
/prj/rnr-sdk/netmsgs/nmPython/modules/NetMsgs/NetMsgsLibStreamBuf.py

NetMsgs Run-Time Library Packing and Unpacking Stream Buffer Module.

 
Modules
       
itertools
NetMsgs.NetMsgsBase
struct
sys
warnings

 
Classes
       
NetMsgsStreamBuf

 
class NetMsgsStreamBuf
    RoadNarrows Net Messages Stream Buffer Virtual Base Class.
 
NetMsgsStreamBuf supports serialized packing and de-serialized
unpacking of a registered set of message definitions.
 
Packing and unpacking operations are multi-thread safe.
 
  Methods defined here:
AttrAddMsgDef(self, msgid, msgdef)
Add/Overwrite message definition to set.
 
Parameters:
  msgid   - Unique message identifier number.
  msgdef  - Message definition.
AttrDelMsgDef(self, msgid)
Delete message definition from set.
 
Parameters:
  msgid   - Unique message identifier number.
AttrSetByteOrder(self, endian)
Set message packing and unpack field byte order.
 
Parameters:
  endian  - Byte order. One of: big little native
ChkReqFValType(self, fielddef, fval, stateId=None)
Check field definition type against field value type.
 
Parameters:
  fielddef  - Field definition.
  fval      - Field value.
  stateId   - State id.
DebugState(self, stateId)
Debug print current operational state.
 
Parameters:
  stateId   - State id.
Error(self, *args, **kwargs)
Raise NetMsgsError error.
 
Parameters:
  *args   - List of error message arguments.
  kwargs  - Keyword arguments.
              stateId - Optional state id.
FindFId(self, msgdef, fid)
Find field definition with the given identifier in the (sub)message
 definition.
 
 Parameters:
   msgdef    - Message definition.
   fid       - Unique field id within message definition.
 
Return:
 Returns field definition on success, None on failure.
GetDefReqVal(self, d, k, epreface='', stateId=None)
Get a NetMsgs message or field definition required keyword value.
 
Raises NetMsgsError exception of failure.
 
Parameters:
  d         - Definition dictionary.
  k         - Definition key.
  epreface  - Optional error preface string on error.
  stateId   - Optional state id.
 
Return:
  Definition value.
MakeMsgTemplate(self, msgid)
Make a message template from the given message definition.
 
Parameters:
  msgid   - Message id.
 
Return:
  Message template dictionary.
Optimize(self)
Optimize message definition set for packing and unpacking.
OptimizeFieldDef(self, fielddef)
Optimize field definition for packing and unpacking.
 
Parameters:
  fielddef  - Field definition.
OptimizeMsgDef(self, msgid, msgdef)
Optimize message definition for packing and unpacking.
 
Parameters:
  msgid   - Message id.
  msgdef  - Message definition.
StateDelete(self, stateId)
Delete operational state.
 
Parameters:
  stateId   - State id.
StateFieldGet(self, stateId, *keypath)
Get top of field stack state value at key path.
 
Parameters:
  keypath   - Optional list of key arguments.
StateFieldPop(self, stateId)
Pop field state stack - deleting top state.
 
Parameters:
  stateId   - State id.
StateFieldPush(self, stateId, **kwargs)
Push new field state onto stack.
 
Parameters:
  stateId - State id.
  kwargs  - Optional initial field state overrides and
            implementation specifics.
StateFieldSet(self, stateId, *keypath, **kwargs)
Set a list of top of field stack state values at key path.
 
Parameters:
  keypath   - Optional list of key arguments.
  kwargs    - List of key=value arguments.
StateGet(self, stateId, *keypath)
Get state value at key path.
 
Parameters:
  keypath   - Optional list of key arguments.
StateNew(self, msgid, op, **kwargs)
Create a new packing/unpacking operational state.
 
The operational state contains message information plus a stack of
current field processing states. Each field state has header,
control, run-time determined values, and tracing parameters.
 
Parameters:
  msgid   - Message id.
  op      - Operation string. One of: 'pack', 'unpack'.
  kwargs  - Optional initial state overrides and implementation
            specifics.
 
Return:
  State id which is a key into the specific state.
StateSet(self, stateId, *keypath, **kwargs)
Set a list of state values at key path.
 
Parameters:
  keypath   - Optional list of key arguments.
  kwargs    - List of key=value arguments.
Trace2Col(self, textList, buf, stateId, fp=<open file '<stderr>', mode 'w'>)
Trace text and buffer in a two-column format.
 
Column 1 contains the formatted text output. Column 2 contains the
formatted contents of the buffer.
 
Parameters:
  textList  - List of raw text phrases. The phrase are join to fit
              into column 1. Special phrase end characters:
                '\t' = Do not append other phrases to this phrase.
                '\n' = Same as above, but also keep column 2 blank.
  buf       - Packed buffer.
  stateId   - Packing/unpacking state id.
  fp        - Opened output file pointer.
TraceBufBlock(self, preface, buf, start=0, end=None, fp=<open file '<stderr>', mode 'w'>)
Trace a block bytes in packed buffer.
 
Parameters:
  preface   - Preface string.
  buf         - Packed buffer.
  start       - Start position in buffer.
  end         - End position + 1 in buffer.
  fp        - Opened output file pointer.
TraceField(self, fielddef, fval, buf, stateId, fp=<open file '<stderr>', mode 'w'>)
Trace a field.
 
Parameters:
  fielddef  - Field definition.
  fval      - Field value.
  buf       - Packed buffer.
  stateId   - Packing/unpacking state id.
  fp        - Opened output file pointer.
TraceStart(self, preface, msgid, msgdef, buf, stateId, fp=<open file '<stderr>', mode 'w'>)
Start of a message trace.
 
Parameters:
  preface   - Preface string.
  msgid     - Message id.
  msgdef    - Message definition.
  buf       - Packed buffer.
  stateId   - Packing/unpacking state id.
  fp        - Opened output file pointer.
Warning(self, *args)
Issue warning message.
 
Parameters:
  *args   - List of warning message arguments.
ZeroFType(self, fielddef)
Return "zero" value assocated with field type.
 
Parameters:
  fielddef  - Field definition.
__init__(self, msgdefset, **kwargs)
Initialize NetMsgsStreamBuf instance.
 
Parameters:
  msgdefset - Set of message definitions.
  kwargs    - Optional keyword arguments.
                msgsetname=str  - Name. Default: "MessageSet"
                encoding=val    - Message stream encoding.
                                  Default: unknown
                endian=val      - Byte ordering. Default: big
                nowarn=bool     - Disable warnings. Default: False.
                trace=bool      - Trace packing/unpacking.
                                  Default: False
nmIdent(self, fielddef, val, stateId)
Identity function.
 
Parameter:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - State id.
 
Return:
  val
nmPackBool(self, fielddef, val, stateId)
Pack boolean field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackChar(self, fielddef, val, stateId)
Pack one character field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackF32(self, fielddef, val, stateId)
Pack 32-bit floating-point number field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackF64(self, fielddef, val, stateId)
Pack 64-bit floating-point number field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackFieldHdr(self, fielddef, val, stateId)
Pack field header. 
 
No header is packed in base function.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value(s).
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackMsg(self, msgid, fvals)
Pack a message.
 
Parameters:
  msgid     - Message identifier.
  fvals     - Dictionary of associated field values.
 
Return:
  Packed buffer.
nmPackMsgHdr(self, msgid, msgdef, stateId)
Pack message header. 
 
No header is packed in base function.
 
Parameters:
  msgid     - Message identifier.
  msgdef    - Message definition.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackP32(self, fielddef, val, stateId)
Pack 32-bit pointer field.
 
Pointer is always packed in natvie byte order.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackP64(self, fielddef, val, stateId)
Pack 64-bit pointer field.
 
Pointer is always packed in natvie byte order.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackPad(self, fielddef, val, stateId)
Pack pad byte(s). 
 
Count pad bytes are packed.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value(s) - ignored.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackS16(self, fielddef, val, stateId)
Pack 16-bit signed integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackS32(self, fielddef, val, stateId)
Pack 32-bit signed integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackS64(self, fielddef, val, stateId)
Pack 64-bit signed integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackS8(self, fielddef, val, stateId)
Pack 8-bit signed integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackStream(self, msgdef, fvals, stateId)
Pack a stream of fields.
 
Parameters:
  msgdef    - Message definition.
  fvals     - Dictionary of associated field values.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackString(self, fielddef, val, stateId)
Pack variable length string into fixed-size field.
 
Field length is fixed max_count bytes. If length of string is less
than max_count, the value is right padded with zeros.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackStruct(self, fielddef, fvals, stateId)
Pack structure field.
 
Parameters:
  fielddef  - Field definition.
  fvals     - Dictionary of associated field values.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackU16(self, fielddef, val, stateId)
Pack 16-bit unsigned integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackU32(self, fielddef, val, stateId)
Pack 32-bit unsigned integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackU64(self, fielddef, val, stateId)
Pack 64-bit unsigned integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackU8(self, fielddef, val, stateId)
Pack 8-bit unsigned integer field.
 
Parameters:
  fielddef  - Field definition.
  val       - Field value.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmPackVector(self, fielddef, vallist, stateId)
Pack variable vector into fixed-size field.
 
Vector length is fixed max_count bytes. If length is less than
max_count, the value is right padded with vector items of zero value.
 
Parameters:
  fielddef  - Field definition.
  vallist   - Vector (list) of vector item values.
  stateId   - Packing state id.
 
Return:
  Packed buffer.
nmSetFPN(self, fielddef, val, stateId)
Set floating-point number value and check any contraints.
 
Parameter:
  fielddef  - Field definition.
  val       - FPN field value.
  stateId   - State id.
 
Return:
  (Converted) field value.
nmSetInt(self, fielddef, val, stateId)
Set [un]signed integer value and check any contraints.
 
Parameter:
  fielddef  - Field definition.
  val       - Integer field value.
  stateId   - State id.
 
Return:
  (Converted) field value.
nmSetStr(self, fielddef, val, stateId)
Set string value and check any contraints.
 
Parameter:
  fielddef  - Field definition.
  val       - String field value.
  stateId   - State id.
 
Return:
  (Converted) field value.
nmUnpackBool(self, fielddef, buf, offset, fvals, stateId)
Unpack boolean field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackChar(self, fielddef, buf, offset, fvals, stateId)
Unpack one character field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackF32(self, fielddef, buf, offset, fvals, stateId)
Unpack 32-bit floating-point number field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackF64(self, fielddef, buf, offset, fvals, stateId)
Unpack 64-bit floating-point number field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackFieldHdr(self, buf, offset, stateId)
Unpack field header. 
 
No header is unpacked in base function.
 
Parameters:
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackMsg(self, msgid, buf, fvals)
Unpack a message from the buffer.
 
Parameters:
  msgid     - Message identifier.
  buf       - Buffer to unpack.
  fvals     - Dictionary to hold unpacked field values.
 
Return:
  Number of bytes unpacked.
nmUnpackMsgHdr(self, msgid, msgdef, buf, offset, fvals, stateId)
Unpack message header. 
 
No header is unpacked in base function.
 
Parameters:
  msgid     - Message identifier.
  msgdef    - Message definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackP32(self, fielddef, buf, offset, fvals, stateId)
Unpack 32-bit pointer field from the buffer.
 
Pointers are unpacked in native byte order.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackP64(self, fielddef, buf, offset, fvals, stateId)
Unpack 64-bit pointer field from the buffer.
 
Pointers are unpacked in native byte order.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackPad(self, fielddef, buf, offset, fvals, stateId)
Unpack fixed number of pad bytes from the buffer.
 
No field values are set.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackS16(self, fielddef, buf, offset, fvals, stateId)
Unpack 16-bit signed integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackS32(self, fielddef, buf, offset, fvals, stateId)
Unpack 32-bit signed integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackS64(self, fielddef, buf, offset, fvals, stateId)
Unpack 64-bit signed integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackS8(self, fielddef, buf, offset, fvals, stateId)
Unpack 8-bit signed integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackStream(self, msgdef, buf, offset, fvals, stateId)
Unpack a field stream from the buffer.
 
Parameters:
  msgdef    - Message definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackString(self, fielddef, buf, offset, fvals, stateId)
Unpack fixed-size string field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackStruct(self, fielddef, buf, offset, fvals, stateId)
Unpack structure field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackU16(self, fielddef, buf, offset, fvals, stateId)
Unpack 16-bit unsigned integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackU32(self, fielddef, buf, offset, fvals, stateId)
Unpack 32-bit unsigned integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackU64(self, fielddef, buf, offset, fvals, stateId)
Unpack 64-bit unsigned integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackU8(self, fielddef, buf, offset, fvals, stateId)
Unpack 8-bit unsigned integer field from the buffer.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.
nmUnpackVector(self, fielddef, buf, offset, fvals, stateId)
Unpack fixed-size vector field from the buffer.
 
The unpacked vector length is a fixed max_count items.
 
Parameters:
  fielddef  - Field definition.
  buf       - Buffer to unpack.
  offset    - Buffer offset where unpacking begins.
  fvals     - Dictionary to hold unpacked field values.
  stateId   - Unpacking state id.
 
Return:
  New buffer offset.

 
Functions
       
space lambda indent
## space over

 
Data
        EMsgBadId = 'Identifier not an integer'
EMsgBadMsg = 'Bad message format'
EMsgBufType = 'Invalid buffer type'
EMsgEndian = 'Invalid byte order value'
EMsgFPNRange = 'Floating-point number out-of-range'
EMsgFValType = 'Invalid field value type'
EMsgIntRange = 'Integer out-of-range'
EMsgNoFVal = 'Field value not defined'
EMsgNoIndex = 'Required index out of range'
EMsgNoMem = 'No space in buffer'
EMsgNoMsgDef = 'Message definition not found'
EMsgRange = 'Field value out-of-range'
EMsgReqKeyword = 'Required definition keyword not found'
EMsgStringRange = 'String length out-of-range'
EMsgStructRange = 'Message/Struct field count out-of-range'
EMsgVectorRange = 'Vector length out-of-range'