2005-10-25 01:26:25 +10:00
/** \file env_universal.h
2012-11-18 11:23:22 +01:00
Universal variable client library .
2005-09-20 23:26:39 +10:00
*/
2005-10-05 01:11:39 +10:00
# ifndef ENV_UNIVERSAL_H
# define ENV_UNIVERSAL_H
# include <wchar.h>
2005-09-20 23:26:39 +10:00
# include "env_universal_common.h"
/**
Data about the universal variable server .
*/
extern connection_t env_universal_server ;
/**
Initialize the envuni library
*/
2012-11-18 16:30:30 -08:00
void env_universal_init ( wchar_t * p ,
2012-11-18 11:23:22 +01:00
wchar_t * u ,
2011-12-26 19:18:46 -08:00
void ( * sf ) ( ) ,
2012-11-18 16:30:30 -08:00
void ( * cb ) ( fish_message_type_t type , const wchar_t * name , const wchar_t * val ) ) ;
2005-10-25 01:26:25 +10:00
/**
2005-09-20 23:26:39 +10:00
Free memory used by envuni
*/
void env_universal_destroy ( ) ;
/**
Get the value of a universal variable
*/
2013-02-11 23:16:50 -08:00
const wchar_t * env_universal_get ( const wcstring & name ) ;
2005-09-23 06:16:52 +10:00
/**
Get the export flag of the variable with the specified
name . Returns 0 if the variable doesn ' t exist .
*/
2013-01-19 13:16:21 -08:00
bool env_universal_get_export ( const wcstring & name ) ;
2005-09-23 06:16:52 +10:00
2005-09-20 23:26:39 +10:00
/**
Set the value of a universal variable
*/
2013-01-19 13:16:21 -08:00
void env_universal_set ( const wcstring & name , const wcstring & val , bool exportv ) ;
2005-09-20 23:26:39 +10:00
/**
Erase a universal variable
2012-11-18 11:23:22 +01:00
2006-06-05 06:14:51 +10:00
\ return zero if the variable existed , and non - zero if the variable did not exist
2005-09-20 23:26:39 +10:00
*/
2012-11-18 16:30:30 -08:00
int env_universal_remove ( const wchar_t * name ) ;
2005-09-20 23:26:39 +10:00
2005-10-03 23:24:46 +10:00
/**
Read all available messages from the server .
*/
2005-09-20 23:26:39 +10:00
int env_universal_read_all ( ) ;
2005-10-03 23:24:46 +10:00
/**
Get the names of all universal variables
2012-11-18 11:23:22 +01:00
2005-10-03 23:24:46 +10:00
\ param l the list to insert the names into
\ param show_exported whether exported variables should be shown
\ param show_unexported whether unexported variables should be shown
*/
2013-02-11 23:16:50 -08:00
void env_universal_get_names ( wcstring_list_t & list ,
bool show_exported ,
bool show_unexported ) ;
2005-09-23 06:16:52 +10:00
2005-10-03 23:24:46 +10:00
/**
Synchronize with fishd
*/
2005-09-23 06:16:52 +10:00
void env_universal_barrier ( ) ;
2005-09-20 23:26:39 +10:00
# endif