/* * Copyright 1995, 1997 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. */ /* * enviro.h - get/set environment variables/registry entries * * Note that there is no longer a global environment. If * multiple threads wish to share the same enviroment, they'll * have to call Reload() to see any changes. On UNIX, there * is no setting the environment so that isn't an issue. * * Public methods: * * Enviro::BeServer() - get and set "system level"/service(NT) variables * Enviro::Get() - get a variable from the environment * Enviro::Set() - set a variable in the environment (NT only) * Enviro::Config() - load $P4CONFIG file (if set) * Enviro::List() - list variables in the environment * Enviro::Reload() - flush values cached from NT registry * Enviro::GetConfig() - get the name of the $P4CONFIG file (if set) */ class EnviroTable; struct EnviroItem; class Error; class StrBuf; class StrPtr; class FileSys; struct KeyPair; class Enviro { public: Enviro(); ~Enviro(); enum ItemType { NEW, // not looked up yet UNSET, // looked up and is empty UPDATE, // set via the Update call ENV, // set in environment CONFIG, // via P4CONFIG ENVIRO, // P4ENVIRO file SVC, // set in service-specific registry USER, // set in user registry SYS // set is machine registry }; int BeServer( const StrPtr *name = 0, int checkName = 0 ); const char *ServiceName(); static const StrPtr *GetCachedServerName(); void OsServer(); void List(); int FormatVariable( int i, StrBuf *sb ); int HasVariable( int i ); static int IsKnown( const char *nm ); void GetVarName( int i, StrBuf &sb ); void GetVarValue( int i, StrBuf &sb ); void Format( const char *var, StrBuf *sb ); void Print( const char *var ); char *Get( const char *var ); void Set( const char *var, const char *value, Error *e ); void Update( const char *var, const char *value ); ItemType GetType( const char *var ); int FromRegistry( const char *var ); void Config( const StrPtr &cwd ); void LoadConfig( const StrPtr &cwd, int checkSyntax = 1 ); void LoadEnviro( int checkSyntax = 1 ); void Reload(); void SetCharSet( int ); // for i18n support int GetCharSet(); const StrPtr &GetConfig(); void SetEnviroFile( const char * ); const StrPtr *GetEnviroFile(); private: EnviroTable *symbolTab; EnviroItem *GetItem( const char *var ); void ReadConfig( FileSys *, Error *, int, ItemType ); void Setup(); bool ReadItemPlatform( ItemType type, const char *var, EnviroItem * item ); int SetEnviro( const char *var, const char *value, Error *e ); StrBuf configFile; StrBuf enviroFile; StrBuf serviceName; // used for netsslcredentials to get at service name static const StrPtr *sServiceNameStrP; # ifdef OS_NT KeyPair *setKey; KeyPair *serviceKey; StrBuf serviceKeyName; int charset; # endif /* OS_NT */ } ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 16129 | tjuricek |
Rename/move files again... this time to the hyphenated-approach. |
||
//guest/tjuricek/file_system_client/main/vendor/p4api-15.1/macosx105x86_64/include/p4/enviro.h | |||||
#1 | 16119 | tjuricek | Rename/move to meet workshop project conventions. | ||
//guest/tjuricek/fsclient/vendor/p4api-15.1/macosx105x86_64/include/p4/enviro.h | |||||
#1 | 16118 | tjuricek |
FSClient initial version: handles add, edit This is a proof-of-concept app that mirrors an existing Perforce workspace to handle running commands like "p4 add" and "p4 edit" automatically when your apps add and write files. See the readme for more information. |