B
    g\	                 @   sT   d dl Z G dd deZdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Z	dS )    Nc               @   sN   e Zd ZdgZedd Zdd Zdd Zdd	 Zd
d Z	dd Z
dd ZdS )Observe_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/Observe.pyGetRootAsObserve
   s    zObserve.GetRootAsObservec             C   s   t j||| _d S )N)r   tableTabler   )selfr   posr   r   r   r	      s    zObserve.Initc             C   s6   t jj| jd}|dkr2| j|| jj S d S )N   r   )r   number_typesUOffsetTFlagspy_typer   OffsetStringPos)r   or   r   r   Address   s    zObserve.Addressc             C   s6   t jj| jd}|dkr2| j|| jj S d S )N   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   Name   s    zObserve.Namec             C   s<   t jj| jd}|dkr8| jt jj|| jj S dS )N   r   )	r   r   r   r   r   r   r   
Uint8Flagsr   )r   r   r   r   r   DistributionType$   s    zObserve.DistributionTypec             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   flatbuffers.tabler   	bytearrayUnion)r   r   r   objr   r   r   Distribution+   s    zObserve.Distributionc             C   s\   t jj| jd}|dkrX| j|| jj }ddlm} | }|	| jj
| |S d S )N   r      )Tensor)r   r   r   r   r   r   Indirectr   r,   r	   Bytes)r   r   r   r,   r(   r   r   r   Value5   s    zObserve.ValueN)__name__
__module____qualname__	__slots__classmethodr   r	   r   r    r#   r)   r/   r   r   r   r   r      s   
r   c             C   s   |  d d S )N   )StartObject)builderr   r   r   ObserveStart?   s    r8   c             C   s   |  dtjj|d d S )Nr   )PrependUOffsetTRelativeSlotr   r   r   r   )r7   addressr   r   r   ObserveAddAddress@   s    r;   c             C   s   |  dtjj|d d S )Nr+   r   )r9   r   r   r   r   )r7   namer   r   r   ObserveAddNameA   s    r=   c             C   s   |  d|d d S )N   r   )PrependUint8Slot)r7   distributionTyper   r   r   ObserveAddDistributionTypeB   s    rA   c             C   s   |  dtjj|d d S )N   r   )r9   r   r   r   r   )r7   distributionr   r   r   ObserveAddDistributionC   s    rD   c             C   s   |  dtjj|d d S )Nr   r   )r9   r   r   r   r   )r7   valuer   r   r   ObserveAddValueD   s    rF   c             C   s   |   S )N)	EndObject)r7   r   r   r   
ObserveEndE   s    rH   )
r   objectr   r8   r;   r=   rA   rD   rF   rH   r   r   r   r   <module>   s   8