B
    g\/                 @   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_mar18/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
   