/* * 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; # elif defined ( OS_MACOSX ) || defined ( OS_DARWIN ) ItemType domain; // set to Enviro::USER or Enviro::SYS #endif /* OS_NT, OS_MACOSX, OS_DARWIN */ } ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 25222 | seandanger | "Forking branch Main of perforce-software-p4connect to seandanger-p4connect." | ||
//guest/perforce_software/p4connect/main/src/P4Bridge/p4api/include/p4/enviro.h | |||||
#1 | 16209 | Norman Morse | Move entire source tree into "main" branch so workshop code will act correctly. | ||
//guest/perforce_software/p4connect/src/P4Bridge/p4api/include/p4/enviro.h | |||||
#2 | 12135 | Norman Morse |
Integrate dev branch changes into main. This code is the basiis of the 2.7 BETA release which provides Unity 5 compatibility |
||
#1 | 10940 | Norman Morse |
Inital Workshop release of P4Connect. Released under BSD-2 license |