B
    áÉ’\/  ã               @   s<   d dl Z G dd„ deƒZdd„ Zdd„ Zdd	„ Zd
d„ ZdS )é    Nc               @   s6   e Zd ZdgZedd„ ƒZdd„ Zdd„ Zdd	„ Zd
S )ÚMessageÚ_tabc             C   s.   t j t jj||¡}tƒ }| ||| ¡ |S )N)ÚflatbuffersÚencodeÚGetÚpackerÚuoffsetr   ÚInit)ÚclsÚbufÚoffsetÚnÚx© r   úV/global/project/projectdirs/dasrepo/etalumis/pyprob_master_mar20/pyprob/ppx/Message.pyÚGetRootAsMessage
   s    zMessage.GetRootAsMessagec             C   s   t j ||¡| _d S )N)r   ÚtableÚTabler   )Úselfr   Úposr   r   r   r	      s    zMessage.Initc             C   s<   t jj | j d¡¡}|dkr8| j t jj|| jj ¡S dS )Né   r   )	r   Únumber_typesÚUOffsetTFlagsÚpy_typer   ÚOffsetr   Ú
Uint8FlagsÚPos)r   Úor   r   r   ÚBodyType   s    zMessage.BodyTypec             C   sL   t jj | j d¡¡}|dkrHddlm} |tƒ dƒ}| j 	||¡ |S d S )Né   r   )r   )
r   r   r   r   r   r   Zflatbuffers.tabler   Ú	bytearrayÚUnion)r   r   r   Úobjr   r   r   ÚBody   s    zMessage.BodyN)	Ú__name__Ú
__module__Ú__qualname__Ú	__slots__Úclassmethodr   r	   r   r#   r   r   r   r   r      s
   r   c             C   s   |   d¡ d S )Né   )ÚStartObject)Úbuilderr   r   r   ÚMessageStart&   s    r,   c             C   s   |   d|d¡ d S )Nr   )ÚPrependUint8Slot)r+   ZbodyTyper   r   r   ÚMessageAddBodyType'   s    r.   c             C   s   |   dtjj |¡d¡ d S )Né   r   )ÚPrependUOffsetTRelativeSlotr   r   r   r   )r+   Úbodyr   r   r   ÚMessageAddBody(   s    r2   c             C   s   |   ¡ S )N)Ú	EndObject)r+   r   r   r   Ú
MessageEnd)   s    r4   )r   Úobjectr   r,   r.   r2   r4   r   r   r   r   Ú<module>   s
   