1 #include <URI/Scheme/File.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4 
URI_Scheme_File__Init(URI_Scheme_File__URI file,Object__String schemeId,URI__Authority authority,URI__Query query)5 void URI_Scheme_File__Init(URI_Scheme_File__URI file, Object__String schemeId, URI__Authority authority, URI__Query query) {
6   register OOC_INT64 i0,i1,i2,i3;
7 
8   i0 = (OOC_INT64)query;
9   i1 = (OOC_INT64)authority;
10   i2 = (OOC_INT64)schemeId;
11   i3 = (OOC_INT64)file;
12   URI_Scheme_Hierarchical__Init((URI_Scheme_Hierarchical__Generic)i3, (Object__String)i2, (URI__Authority)i1, (URI__Query)i0);
13   return;
14   ;
15 }
16 
URI_Scheme_File__New(Object__String schemeId,URI__Authority authority,URI__Query query)17 URI_Scheme_File__URI URI_Scheme_File__New(Object__String schemeId, URI__Authority authority, URI__Query query) {
18   register OOC_INT64 i0,i1,i2,i3;
19 
20   i0 = (OOC_INT64)RT0__NewObject(_td_URI_Scheme_File__URI.baseTypes[0]);
21   i1 = (OOC_INT64)query;
22   i2 = (OOC_INT64)authority;
23   i3 = (OOC_INT64)schemeId;
24   URI_Scheme_File__Init((URI_Scheme_File__URI)i0, (Object__String)i3, (URI__Authority)i2, (URI__Query)i1);
25   return (URI_Scheme_File__URI)i0;
26   ;
27 }
28 
URI_Scheme_File__URIDesc_NewAuthority(URI_Scheme_File__URI file)29 URI__Authority URI_Scheme_File__URIDesc_NewAuthority(URI_Scheme_File__URI file) {
30   register OOC_INT64 i0;
31 
32   i0 = (OOC_INT64)URI_Authority_ServerBased__New((Object__String)(OOC_INT64)0, (Object__String)((OOC_INT64)_c0), (-1), (-1));
33   return (URI__Authority)i0;
34   ;
35 }
36 
URI_Scheme_File__URIDesc_AuthorityMandatory(URI_Scheme_File__URI file)37 OOC_CHAR8 URI_Scheme_File__URIDesc_AuthorityMandatory(URI_Scheme_File__URI file) {
38 
39   return 1u;
40   ;
41 }
42 
URI_Scheme_File__URIDesc_NewQuery(URI_Scheme_File__URI file)43 URI__Query URI_Scheme_File__URIDesc_NewQuery(URI_Scheme_File__URI file) {
44 
45   return (URI__Query)(OOC_INT64)0;
46   ;
47 }
48 
URI_Scheme_File__URIDesc_Clone(URI_Scheme_File__URI file)49 URI_Scheme_File__URI URI_Scheme_File__URIDesc_Clone(URI_Scheme_File__URI file) {
50   register OOC_INT64 i0,i1;
51   URI_Scheme_File__URI copy;
52 
53   i0 = (OOC_INT64)RT0__NewObject(_td_URI_Scheme_File__URI.baseTypes[0]);
54   copy = (URI_Scheme_File__URI)i0;
55   i1 = (OOC_INT64)file;
56   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2207)))), URI_Scheme_Hierarchical__GenericDesc_Copy)),URI_Scheme_Hierarchical__GenericDesc_Copy)((URI_Scheme_Hierarchical__Generic)i1, (URI__URI)i0);
57   return (URI_Scheme_File__URI)i0;
58   ;
59 }
60 
URI_Scheme_File__URIDesc_GetPath(URI_Scheme_File__URI file)61 Object__String8 URI_Scheme_File__URIDesc_GetPath(URI_Scheme_File__URI file) {
62   register OOC_INT64 i0,i1,i2,i3,i4;
63   ADT_StringBuffer__StringBuffer sb;
64   URI_Scheme_Hierarchical__Segment segm;
65   Object__String str;
66 
67   i0 = (OOC_INT64)ADT_StringBuffer__New((Object__String)((OOC_INT64)_c1));
68   sb = (ADT_StringBuffer__StringBuffer)i0;
69   i1 = (OOC_INT64)file;
70   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 2586))+24);
71   segm = (URI_Scheme_Hierarchical__Segment)i2;
72   i3 = i2!=(OOC_INT64)0;
73   if (!i3) goto l15;
74   i3 = (OOC_INT64)_c2;
75 
76 l3_loop:
77   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 2645))+24);
78   i4 = i2!=i4;
79   if (i4) goto l6;
80   i4 = *(OOC_UINT8*)((_check_pointer(i1, 2664))+32);
81 
82   goto l8;
83 l6:
84   i4=1u;
85 l8:
86   if (!i4) goto l10;
87   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2694)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)i3);
88 l10:
89   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 2739))+8);
90   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2727)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)i4);
91   i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 2767));
92   segm = (URI_Scheme_Hierarchical__Segment)i2;
93   i4 = i2!=(OOC_INT64)0;
94   if (i4) goto l3_loop;
95 l15:
96   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2822)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i0);
97   i0 = (OOC_INT64)OS_HostPath__Denormalize((Object__String)i0);
98   str = (Object__String)i0;
99   return (Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2858)))), &_td_Object__String8Desc, 2858));
100   ;
101 }
102 
URI_Scheme_File__URIDesc_GetChannel(URI_Scheme_File__URI file,OOC_INT8 mode)103 IO__ByteChannel URI_Scheme_File__URIDesc_GetChannel(URI_Scheme_File__URI file, OOC_INT8 mode) {
104   register OOC_INT64 i0,i1;
105   Object__String s;
106 
107   i0 = (OOC_INT64)file;
108   i0 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)i0);
109   s = (Object__String)i0;
110   i1 = mode;
111   switch (i1) {
112   case 0:
113     i0 = (OOC_INT64)IO_FileChannel__Open((Object__String)i0, 23u);
114     return (IO__ByteChannel)i0;
115     goto l6;
116   case 1:
117     i0 = (OOC_INT64)IO_FileChannel__Open((Object__String)i0, 67u);
118     return (IO__ByteChannel)i0;
119     goto l6;
120   case 2:
121     i0 = (OOC_INT64)IO_FileChannel__Open((Object__String)i0, 1u);
122     return (IO__ByteChannel)i0;
123     goto l6;
124   default:
125     _failed_case(i1, 3034);
126     goto l6;
127   }
128 l6:
129   _failed_function(2906); return 0;
130   ;
131 }
132 
URI_Scheme_File__NewPrototype(void)133 URI_Scheme_File__URI URI_Scheme_File__NewPrototype(void) {
134   register OOC_INT64 i0;
135 
136   i0 = (OOC_INT64)URI_Scheme_File__New((Object__String)((OOC_INT64)_c3), (URI__Authority)(OOC_INT64)0, (URI__Query)(OOC_INT64)0);
137   return (URI_Scheme_File__URI)i0;
138   ;
139 }
140 
URI_Scheme_File__GetCwd(void)141 URI_Scheme_File__URI URI_Scheme_File__GetCwd(void) {
142   register OOC_INT64 i0,i1;
143   volatile Object__String cwd;
144   volatile ADT_StringBuffer__StringBuffer uriString;
145   volatile Object__String str;
146   volatile URI__URI uri;
147   jmp_buf _target0, _target1;
148   Exception__Context _context0, _context1;
149 
150   {
151     Exception__PushContext(&_context0, &_target0);
152     if (!setjmp(_target0)) goto l7;
153     Exception__PopContext(1);
154     i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_IO__ErrorDesc);
155     if (i0) goto l5;
156     Exception__ActivateContext();
157     goto l6;
158 l5:
159     return (URI_Scheme_File__URI)(OOC_INT64)0;
160 l6:
161     Exception__Clear();
162     goto l19;
163 l7:
164     i0 = (OOC_INT64)OS_ProcessParameters__GetCwd();
165     i0 = (OOC_INT64)OS_HostPath__Normalize((Object__String)i0);
166     cwd = (Object__String)i0;
167     i1 = (OOC_INT64)ADT_StringBuffer__New((Object__String)((OOC_INT64)_c4));
168     uriString = (ADT_StringBuffer__StringBuffer)i1;
169     URI_String__AppendEscaped((Object__String)i0, (OOC_CHAR8*)":@&=+$,/", 9, (ADT_StringBuffer__StringBuffer)i1);
170     i0 = *(OOC_INT32*)((_check_pointer(i1, 4260))+4);
171     i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4243)))), ADT_StringBuffer__StringBufferDesc_CharAt)),ADT_StringBuffer__StringBufferDesc_CharAt)((ADT_StringBuffer__StringBuffer)i1, (i0-1));
172     i0 = i0!=47u;
173     if (!i0) goto l10;
174     OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4300)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i1, (Object__Object)((OOC_INT64)_c5));
175 l10:
176     i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4348)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i1);
177     str = (Object__String)i0;
178     {
179       Exception__PushContext(&_context1, &_target1);
180       if (!setjmp(_target1)) goto l17;
181       Exception__PopContext(1);
182       i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_Exception__ParseErrorDesc);
183       if (i0) goto l15;
184       Exception__ActivateContext();
185       goto l16;
186 l15:
187       _assert(0u, 127, 4494);
188 l16:
189       Exception__Clear();
190       goto l18;
191 l17:
192       i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4411)))), &_td_Object__String8Desc, 4411)), (URI__HierarchicalURI)(OOC_INT64)0);
193       uri = (URI__URI)i0;
194       Exception__PopContext(2);
195       return (URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4446)))), &_td_URI_Scheme_File__URIDesc, 4446));
196       Exception__PopContext(1);
197 l18:;
198     }
199     Exception__PopContext(1);
200 l19:;
201   }
202   _failed_function(3633); return 0;
203   ;
204 }
205 
URI_Scheme_File__ToURI(const OOC_CHAR8 filePath__ref[],volatile OOC_LEN filePath_0d)206 URI_Scheme_File__URI URI_Scheme_File__ToURI(const OOC_CHAR8 filePath__ref[], volatile OOC_LEN filePath_0d) {
207   register OOC_INT64 i0,i1;
208   OOC_ALLOCATE_VPAR(filePath,OOC_CHAR8 ,filePath_0d)
209   volatile Object__String normPath;
210   volatile ADT_StringBuffer__StringBuffer uriString;
211   volatile Object__String str;
212   volatile URI__URI uri;
213   jmp_buf _target0;
214   Exception__Context _context0;
215 
216   OOC_INITIALIZE_VPAR(filePath__ref,filePath,OOC_CHAR8 ,filePath_0d)
217   {
218     Exception__PushContext(&_context0, &_target0);
219     if (!setjmp(_target0)) goto l11;
220     Exception__PopContext(1);
221     i0 = (OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()));
222     i1 = OOC_TYPE_TEST(i0, &_td_IO__ErrorDesc);
223     if (i1) goto l9;
224     i0 = OOC_TYPE_TEST(i0, &_td_Exception__ParseErrorDesc);
225     if (i0) goto l7;
226     Exception__ActivateContext();
227     goto l10;
228 l7:
229     return (URI_Scheme_File__URI)(OOC_INT64)0;
230     goto l10;
231 l9:
232     return (URI_Scheme_File__URI)(OOC_INT64)0;
233 l10:
234     Exception__Clear();
235     goto l16;
236 l11:
237     i0 = (OOC_INT64)Object__NewLatin1((void*)(OOC_INT64)filePath, filePath_0d);
238     i0 = (OOC_INT64)OS_HostPath__Normalize((Object__String)i0);
239     normPath = (Object__String)i0;
240     i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4965)))), Object__StringDesc_CharAt)),Object__StringDesc_CharAt)((Object__String)i0, 0);
241     i1 = i1==47u;
242     if (i1) goto l14;
243     i1 = (OOC_INT64)ADT_StringBuffer__New((Object__String)((OOC_INT64)_c6));
244     uriString = (ADT_StringBuffer__StringBuffer)i1;
245     URI_String__AppendEscaped((Object__String)i0, (OOC_CHAR8*)"@&=+$,/", 8, (ADT_StringBuffer__StringBuffer)i1);
246     i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5374)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i1);
247     str = (Object__String)i0;
248     i1 = (OOC_INT64)URI_Scheme_File__GetCwd();
249     i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5428)))), &_td_Object__String8Desc, 5428)), (URI__HierarchicalURI)i1);
250     uri = (URI__URI)i0;
251 
252     goto l15;
253 l14:
254     i1 = (OOC_INT64)ADT_StringBuffer__New((Object__String)((OOC_INT64)_c7));
255     uriString = (ADT_StringBuffer__StringBuffer)i1;
256     URI_String__AppendEscaped((Object__String)i0, (OOC_CHAR8*)":@&=+$,/", 9, (ADT_StringBuffer__StringBuffer)i1);
257     i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5145)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i1);
258     str = (Object__String)i0;
259     i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5199)))), &_td_Object__String8Desc, 5199)), (URI__HierarchicalURI)(OOC_INT64)0);
260     uri = (URI__URI)i0;
261 
262 l15:
263     Exception__PopContext(1);
264     return (URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5476)))), &_td_URI_Scheme_File__URIDesc, 5476));
265     Exception__PopContext(1);
266 l16:;
267   }
268   _failed_function(4592); return 0;
269   ;
270 }
271 
OOC_URI_Scheme_File_init(void)272 void OOC_URI_Scheme_File_init(void) {
273   _c0 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);
274   _c1 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);
275   _c2 = Object__NewLatin1Char(47u);
276   _c3 = Object__NewLatin1Region((OOC_CHAR8*)"file", 5, 0, 4);
277   _c4 = Object__NewLatin1Region((OOC_CHAR8*)"file://", 8, 0, 7);
278   _c5 = Object__NewLatin1Char(47u);
279   _c6 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);
280   _c7 = Object__NewLatin1Region((OOC_CHAR8*)"file://", 8, 0, 7);
281 
282   return;
283   ;
284 }
285 
OOC_URI_Scheme_File_destroy(void)286 void OOC_URI_Scheme_File_destroy(void) {
287 }
288 
289 /* --- */
290