grpc
src
ruby
ext
grpc
rb_loader.c
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2016 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
19
#include "
rb_grpc_imports.generated.h
"
20
21
#if GPR_WINDOWS
22
#include <tchar.h>
23
24
int
grpc_rb_load_core
() {
25
#if GPR_ARCH_64
26
TCHAR fname[] = _T(
"grpc_c.64.ruby"
);
27
#else
28
TCHAR fname[] = _T(
"grpc_c.32.ruby"
);
29
#endif
30
HMODULE
module
= GetModuleHandle(_T(
"grpc_c.so"
));
31
TCHAR
path
[2048 + 32] = _T(
""
);
32
LPTSTR seek_back = NULL;
33
GetModuleFileName(
module
,
path
, 2048);
34
35
seek_back = _tcsrchr(
path
, _T(
'\\'
));
36
37
while
(seek_back) {
38
HMODULE grpc_c;
39
_tcscpy(seek_back + 1, fname);
40
grpc_c = LoadLibrary(
path
);
41
if
(grpc_c) {
42
grpc_rb_load_imports(grpc_c);
43
return
1;
44
}
else
{
45
*seek_back = _T(
'\0'
);
46
seek_back = _tcsrchr(
path
, _T(
'\\'
));
47
}
48
}
49
50
return
0;
51
}
52
53
#else
54
55
int
grpc_rb_load_core
() {
return
1; }
56
57
#endif
rb_grpc_imports.generated.h
check_documentation.path
path
Definition:
check_documentation.py:57
descriptor_database_test_wrapper.module
module
Definition:
descriptor_database_test_wrapper.py:30
grpc_rb_load_core
int grpc_rb_load_core()
Definition:
rb_loader.c:55
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:59