Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/dnn/src/torch/THFile.cpp
16337 views
1
#include "../precomp.hpp"
2
#include "THFile.h"
3
#include "THFilePrivate.h"
4
5
namespace TH {
6
7
#define IMPLEMENT_THFILE_RW(TYPEC, TYPE) \
8
long THFile_read##TYPEC##Raw(THFile *self, TYPE *data, long n) \
9
{ \
10
return (*self->vtable->read##TYPEC)(self, data, n); \
11
}
12
13
IMPLEMENT_THFILE_RW(Byte, unsigned char)
14
IMPLEMENT_THFILE_RW(Char, char)
15
IMPLEMENT_THFILE_RW(Short, short)
16
IMPLEMENT_THFILE_RW(Int, int)
17
IMPLEMENT_THFILE_RW(Long, int64)
18
IMPLEMENT_THFILE_RW(Float, float)
19
IMPLEMENT_THFILE_RW(Double, double)
20
21
long THFile_readStringRaw(THFile *self, const char *format, char **str_)
22
{
23
return self->vtable->readString(self, format, str_);
24
}
25
26
void THFile_seek(THFile *self, long position)
27
{
28
self->vtable->seek(self, position);
29
}
30
31
void THFile_seekEnd(THFile *self)
32
{
33
self->vtable->seekEnd(self);
34
}
35
36
long THFile_position(THFile *self)
37
{
38
return self->vtable->position(self);
39
}
40
41
void THFile_close(THFile *self)
42
{
43
self->vtable->close(self);
44
}
45
46
void THFile_free(THFile *self)
47
{
48
self->vtable->free(self);
49
}
50
51
int THFile_isOpened(THFile *self)
52
{
53
return self->vtable->isOpened(self);
54
}
55
56
#define IMPLEMENT_THFILE_FLAGS(FLAG) \
57
int THFile_##FLAG(THFile *self) \
58
{ \
59
return self->FLAG; \
60
}
61
62
IMPLEMENT_THFILE_FLAGS(isQuiet)
63
IMPLEMENT_THFILE_FLAGS(isReadable)
64
IMPLEMENT_THFILE_FLAGS(isWritable)
65
IMPLEMENT_THFILE_FLAGS(isBinary)
66
IMPLEMENT_THFILE_FLAGS(isAutoSpacing)
67
IMPLEMENT_THFILE_FLAGS(hasError)
68
69
void THFile_binary(THFile *self)
70
{
71
self->isBinary = 1;
72
}
73
74
void THFile_ascii(THFile *self)
75
{
76
self->isBinary = 0;
77
}
78
79
void THFile_autoSpacing(THFile *self)
80
{
81
self->isAutoSpacing = 1;
82
}
83
84
void THFile_noAutoSpacing(THFile *self)
85
{
86
self->isAutoSpacing = 0;
87
}
88
89
void THFile_quiet(THFile *self)
90
{
91
self->isQuiet = 1;
92
}
93
94
void THFile_pedantic(THFile *self)
95
{
96
self->isQuiet = 0;
97
}
98
99
void THFile_clearError(THFile *self)
100
{
101
self->hasError = 0;
102
}
103
104
#define IMPLEMENT_THFILE_SCALAR(TYPEC, TYPE) \
105
TYPE THFile_read##TYPEC##Scalar(THFile *self) \
106
{ \
107
TYPE scalar; \
108
THFile_read##TYPEC##Raw(self, &scalar, 1); \
109
return scalar; \
110
}
111
112
IMPLEMENT_THFILE_SCALAR(Byte, unsigned char)
113
IMPLEMENT_THFILE_SCALAR(Char, char)
114
IMPLEMENT_THFILE_SCALAR(Short, short)
115
IMPLEMENT_THFILE_SCALAR(Int, int)
116
IMPLEMENT_THFILE_SCALAR(Long, int64)
117
IMPLEMENT_THFILE_SCALAR(Float, float)
118
IMPLEMENT_THFILE_SCALAR(Double, double)
119
120
} // namespace
121
122