o
    FDi                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ G dd	 d	ZG d
d dZG dd dZG dd dZdS )    N)time)LogicalError)	constants)Context)OpenTelemetryTraceContext)BufferedWriterc                   @   s:   e Zd Zdededededededefdd	Zd
d ZdS )
ServerInfonameversion_majorversion_minorversion_patchrevisiontimezonedisplay_namec                 C   s.   || _ || _|| _|| _|| _|| _|| _d S N)r	   r
   r   r   r   r   r   )selfr	   r
   r   r   r   r   r    r   H/var/www/Datamplify/venv/lib/python3.10/site-packages/asynch/proto/cs.py__init__   s   

zServerInfo.__init__c                 C   s   | j | j| jfS r   )r
   r   r   r   r   r   r   version_tuple   s   zServerInfo.version_tupleN)__name__
__module____qualname__strintr   r   r   r   r   r   r      s"    
r   c                   @   s   e Zd ZdZdZdS )	Interface      N)r   r   r   TCPHTTPr   r   r   r   r   #   s    r   c                   @   s   e Zd ZdZdZdZdS )	QueryKindr   r   r   N)r   r   r   NO_QUERYINITIAL_QUERYSECONDARY_QUERYr   r   r   r   r!   (   s    r!   c                   @   sj   e Zd ZejZejZejZ	ej
ZejZdZdZdZdZdededefddZedd	 Zd
efddZdS )
ClientInfo z	0.0.0.0:0client_namewritercontextc                 C   s   t j| _zt | _W n ty   d| _Y nw t | _	|| _
|| _|jd | _t|jd |jd | _d| _tt d | _d S )Nr&   	quota_keyopentelemetry_traceparentopentelemetry_tracestater   i@B )r!   r"   
query_kindgetpassgetuseros_userKeyErrorsocketgethostnameclient_hostnamer'   r(   client_settingsr*   r   client_trace_contextdistributed_depthr   r   %initial_query_start_time_microseconds)r   r'   r(   r)   r   r   r   r   @   s    

zClientInfo.__init__c                 C   s   | j tjkS r   )r-   r!   r"   r   r   r   r   emptyR   s   zClientInfo.emptyserver_revisionc                    s@  |}|t jk rtd| j}|| jI d H  | jrd S || jI d H  || j	I d H  || j
I d H  |t jkrG| j| jI d H  || jI d H  || jI d H  || jI d H  || jI d H  || jI d H  || jI d H  || jI d H  |t jkr|| jI d H  |t jkr| j| jI d H  |t jkr|| jI d H  |t jkr| jjd ur| jdI d H  | j | jjI d H  | j| jj!I d H  | j| jj"I d H  | j| jj#I d H  n	| jdI d H  |t j$kr| jdI d H  | jdI d H  | jdI d H  d S d S )NzAMethod ClientInfo.write is called for unsupported server revisionr   r   )%r   "DBMS_MIN_REVISION_WITH_CLIENT_INFOr   r(   
write_int8r-   r9   	write_strinitial_userinitial_query_idinitial_address7DBMS_MIN_PROTOCOL_VERSION_WITH_INITIAL_QUERY_START_TIMEwrite_uint64r8   write_uint8	interfacer0   r4   r'   write_varintclient_version_majorclient_version_minorclient_revision/DBMS_MIN_REVISION_WITH_QUOTA_KEY_IN_CLIENT_INFOr*   0DBMS_MIN_PROTOCOL_VERSION_WITH_DISTRIBUTED_DEPTHr7   $DBMS_MIN_REVISION_WITH_VERSION_PATCHclient_version_patch$DBMS_MIN_REVISION_WITH_OPENTELEMETRYr6   trace_idwrite_uint128span_id
tracestatetrace_flags(DBMS_MIN_REVISION_WITH_PARALLEL_REPLICAS)r   r:   r   r(   r   r   r   writeV   s   























zClientInfo.writeN)r   r   r   r   CLIENT_VERSION_MAJORrF   CLIENT_VERSION_MINORrG   CLIENT_VERSION_PATCHrL   CLIENT_REVISIONrH   r   r   rD   r>   r?   r@   r*   r   r   r   r   propertyr9   r   rT   r   r   r   r   r%   3   s    
r%   )r.   r2   r   asynch.errorsr   asynch.protor   asynch.proto.contextr   asynch.proto.opentelemetryr   asynch.proto.streams.bufferedr   r   r   r!   r%   r   r   r   r   <module>   s    