3
NZ3                 @   s   d dl Z ddlT dZdZdZdZG dd deZG dd	 d	eZe	d
kre
jd d dlZe Zejedded ejedded ej Zeje e
jej  dS )    N   )*      c               @   s   e Zd Zdd ZdS )Recordc             C   s   || _ || _|| _|| _d S )N)idtyptyp_codepayload)selfr   r   r	   r
    r   /usr/share/hplip/base/dime.py__init__$   s    zRecord.__init__N)__name__
__module____qualname__r   r   r   r   r   r   #   s   r   c               @   s0   e Zd Zdd Zdd Zdd ZefddZd	S )
Messagec             C   s
   g | _ d S )N)records)r   r   r   r   r   ,   s    zMessage.__init__c             C   s   | j j| d S )N)r   append)r   Zrecr   r   r   
add_record/   s    zMessage.add_recordc       
      C   s  xt | jD ]\}}tjd||jf  d } }}|dkrDd}|t| jd krZd}|jtjdt	d@ d> |d@ d> B |d@ d> B |d@ B  |jtjd|j
d@ d	> d
@  |jtjdd | jt|j}|jtjdt|j | jt|j}|jtjdt|j | jt|j}	|jtjdt|j |r\|jtjd| |j |rz|jtjd| |j |	r|jtjd|	 |j qW d S )NzProcessing record %d (%s)r   r   z!B      r      r      z!Hz!Iz%ds)	enumerater   logdebugr   lenwritestructZpackDIME_VERSIONr	   bytes_neededr   r
   )
r   outputirZmbmeZcfZid_lenZtyp_lendata_lenr   r   r   generate2   s0      
" zMessage.generatec             C   s(   || dkr|S t || d | S d S )Nr   r   )int)r   r&   Z
block_sizer   r   r   r!   U   s    zMessage.bytes_neededN)r   r   r   r   r   r'   PAD_SIZEr!   r   r   r   r   r   +   s   #r   __main__r   zcid:id0z)http://schemas.xmlsoap.org/soap/envelope/z<test>test</test>Ztest2ztext/xmlz<test>test2</test>)r   gZTYPE_T_MIMEZ
TYPE_T_URIr    r)   objectr   r   r   r   Z	set_leveliomr   StringIOr"   r'   Zlog_datagetvaluer   r   r   r   <module>   s"   3



