o
    ³Á b7  ã                   @   sæ   d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZmZmZ ddlmZ eedƒƒZeedƒƒZG d	d
„ d
eƒZeej_eeegej_eej_eeeeeƒƒgej_eej_eeƒeegej_G dd„ deƒZdS )zF Wrapper module for libpcp_gui - PCP Graphical User Interface clients é    )ÚpmErr)Ú
PM_ERR_IPC)ÚCDLLÚ	StructureÚPOINTERÚcastÚbyref)Úc_void_pÚc_char_pÚc_intÚc_long)Úfind_libraryÚpcp_guiÚcc                   @   s2   e Zd ZdZdefdefdefdefdefgZdS )ÚpmRecordHostzAstate information between the recording session and the pmlogger Úf_configÚfd_ipcÚlogfileÚpidÚstatusN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r
   Ú_fields_© r   r   ú+/usr/lib/python3/dist-packages/pcp/pmgui.pyr   2   s    ür   c                   @   s4   e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZdS )	Ú	GuiClientz; Provides metric recording and time control interfaces
    c                 C   sR   t | tƒs
|  d¡} t |tƒs| d¡}t t| ƒt|ƒ|¡}|dkr't|ƒ‚|S )zp GUI API - Setup an archive recording session
        File* file = pmRecordSetup("folio", "creator", 0)
        úutf-8r   )Ú
isinstanceÚbytesÚencodeÚ
LIBPCP_GUIÚpmRecordSetupr
   r   )ÚfolioÚcreatorÚreplayÚfile_resultr   r   r   r#   \   s   




ÿzGuiClient.pmRecordSetupc                 C   s–   t | tƒs
|  d¡} ttƒƒ }t t| ƒ|t|ƒ¡}|dk r"t	|ƒ‚t |tƒs,| d¡}t
 t|ƒt|jjƒ¡}|dk rGt
 tdƒ¡ t	|ƒ‚||fS )zˆ GUI API - Adds host to an archive recording session
        (status, recordhost) = pmRecordAddHost("host", 1, "configuration")
        r   r   Ú )r   r    r!   r   r   r"   ÚpmRecordAddHostr
   r   r   ÚLIBCÚfputsr   Úcontentsr   Úperror)ÚhostÚ	isdefaultÚconfigÚrhpr   r   r   r   r)   k   s   



ÿ

zGuiClient.pmRecordAddHostc                 C   sL   t |tƒs
| d¡}t t| ttƒƒ|t|ƒ¡}|dk r$|t	kr$t
|ƒ‚|S )zâPMAPI - Control an archive recording session
        status = pmRecordControl(0, cpmgui.PM_RCSETARG, "args")
        status = pmRecordControl(0, cpmgui.PM_REC_ON)
        status = pmRecordControl(0, cpmgui.PM_REC_OFF)
        r   r   )r   r    r!   r"   ÚpmRecordControlr   r   r   r
   r   r   )r1   ÚrequestÚoptionsr   r   r   r   r2      s   

ÿzGuiClient.pmRecordControlN)r   r   r   r   Ústaticmethodr#   r)   r2   r   r   r   r   r   U   s    

r   N)r   Ú	pcp.pmapir   Úcpmapir   Úctypesr   r   r   r   r   r	   r
   r   r   Úctypes.utilr   r"   r*   r   r#   ÚrestypeÚargtypesr)   r2   Úobjectr   r   r   r   r   Ú<module>   s"    ÿ
