env_windows.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
21 #ifdef GPR_WINDOWS_ENV
22 
23 #include <windows.h>
24 
25 #include <grpc/support/alloc.h>
26 #include <grpc/support/log.h>
28 
29 #include "src/core/lib/gpr/env.h"
32 
33 char* gpr_getenv(const char* name) {
34  char* result = NULL;
35  DWORD size;
36  LPTSTR tresult = NULL;
37  LPTSTR tname = gpr_char_to_tchar(name);
38  DWORD ret;
39 
40  ret = GetEnvironmentVariable(tname, NULL, 0);
41  if (ret == 0) {
42  gpr_free(tname);
43  return NULL;
44  }
45  size = ret * (DWORD)sizeof(TCHAR);
46  tresult = (LPTSTR)gpr_malloc(size);
47  ret = GetEnvironmentVariable(tname, tresult, size);
48  gpr_free(tname);
49  if (ret == 0) {
50  gpr_free(tresult);
51  return NULL;
52  }
53  result = gpr_tchar_to_char(tresult);
54  gpr_free(tresult);
55  return result;
56 }
57 
58 void gpr_setenv(const char* name, const char* value) {
59  LPTSTR tname = gpr_char_to_tchar(name);
60  LPTSTR tvalue = gpr_char_to_tchar(value);
61  BOOL res = SetEnvironmentVariable(tname, tvalue);
62  gpr_free(tname);
63  gpr_free(tvalue);
64  GPR_ASSERT(res);
65 }
66 
67 void gpr_unsetenv(const char* name) {
68  LPTSTR tname = gpr_char_to_tchar(name);
69  BOOL res = SetEnvironmentVariable(tname, NULL);
70  gpr_free(tname);
71  GPR_ASSERT(res);
72 }
73 
74 #endif /* GPR_WINDOWS_ENV */
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
log.h
string.h
gpr_free
GPRAPI void gpr_free(void *ptr)
Definition: alloc.cc:51
gpr_malloc
GPRAPI void * gpr_malloc(size_t size)
Definition: alloc.cc:29
setup.name
name
Definition: setup.py:542
env.h
BOOL
int BOOL
Definition: undname.c:46
string_util.h
gpr_getenv
char * gpr_getenv(const char *name)
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
string_windows.h
value
const char * value
Definition: hpack_parser_table.cc:165
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
alloc.h
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
gpr_unsetenv
void gpr_unsetenv(const char *name)
gpr_setenv
void gpr_setenv(const char *name, const char *value)
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:19