1 #include <Channel.oh>
2 #include <Strings.oh>
3 static Channel__ErrorContext Channel__errorContext;
4 static Msg__Msg Channel__GetError(OOC_INT32 code);
5 
6 /* run-time meta data */
7 static RT0__ModuleDesc _mid;
8 RT0__StructDesc _td_Channel__Channel = { (RT0__Struct[]){&_td_Channel__ChannelDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Channel", 8, -1, 0, RT0__strPointer };
9 RT0__StructDesc _td_Channel__ChannelDesc = { (RT0__Struct[]){&_td_Channel__ChannelDesc}, (void*[]){(void*)Channel__ChannelDesc_Length,(void*)Channel__ChannelDesc_GetModTime,(void*)Channel__ChannelDesc_NewReader,(void*)Channel__ChannelDesc_NewWriter,(void*)Channel__ChannelDesc_Flush,(void*)Channel__ChannelDesc_Close,(void*)Channel__ChannelDesc_ClearError}, NULL, &_mid, (OOC_CHAR8*)"ChannelDesc", 16, 0, 0, RT0__strRecord };
10 RT0__StructDesc _td_Channel__Reader = { (RT0__Struct[]){&_td_Channel__ReaderDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Reader", 8, -1, 0, RT0__strPointer };
11 RT0__StructDesc _td_Channel__ReaderDesc = { (RT0__Struct[]){&_td_Channel__ReaderDesc}, (void*[]){(void*)Channel__ReaderDesc_Pos,(void*)Channel__ReaderDesc_Available,(void*)Channel__ReaderDesc_SetPos,(void*)Channel__ReaderDesc_ReadByte,(void*)Channel__ReaderDesc_ReadBytes,(void*)Channel__ReaderDesc_ClearError}, NULL, &_mid, (OOC_CHAR8*)"ReaderDesc", 24, 0, 0, RT0__strRecord };
12 RT0__StructDesc _td_Channel__Writer = { (RT0__Struct[]){&_td_Channel__WriterDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Writer", 8, -1, 0, RT0__strPointer };
13 RT0__StructDesc _td_Channel__WriterDesc = { (RT0__Struct[]){&_td_Channel__WriterDesc}, (void*[]){(void*)Channel__WriterDesc_Pos,(void*)Channel__WriterDesc_SetPos,(void*)Channel__WriterDesc_WriteByte,(void*)Channel__WriterDesc_WriteBytes,(void*)Channel__WriterDesc_ClearError}, NULL, &_mid, (OOC_CHAR8*)"WriterDesc", 24, 0, 0, RT0__strRecord };
14 RT0__StructDesc _td_Channel__ErrorContext = { (RT0__Struct[]){&_td_Channel__ErrorContextDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ErrorContext", 8, -1, 0, RT0__strPointer };
15 RT0__StructDesc _td_Channel__ErrorContextDesc = { (RT0__Struct[]){&_td_Msg__ContextDesc,&_td_Channel__ErrorContextDesc}, (void*[]){(void*)Channel__ErrorContextDesc_GetTemplate}, NULL, &_mid, (OOC_CHAR8*)"ErrorContextDesc", 8, 1, 0, RT0__strRecord };
16 RT0__StructDesc _td_Channel__12140 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 128, 128, (1<<RT0__flagAtomic), RT0__strArray };
17 RT0__StructDesc _td_Channel__16681 = { (RT0__Struct[]){&RT0__byte}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
18 RT0__StructDesc _td_Channel__20326 = { (RT0__Struct[]){&RT0__byte}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
19 static RT0__ModuleDesc _mid = { (OOC_CHAR8*)"Channel", (RT0__Struct[]) { &_td_Channel__Channel, &_td_Channel__ChannelDesc, &_td_Channel__Reader, &_td_Channel__ReaderDesc, &_td_Channel__Writer, &_td_Channel__WriterDesc, &_td_Channel__ErrorContext, &_td_Channel__ErrorContextDesc, NULL }, 0 };
20 
OOC_Channel_open(RT0__Module client)21 extern void OOC_Channel_open(RT0__Module client) {
22   if (_mid.openCount == 0) {
23     OOC_Strings_open(&_mid);
24     OOC_Time_open(&_mid);
25     OOC_Msg_open(&_mid);
26     OOC_RT0_open(&_mid);
27     OOC_Object_open(&_mid);
28     OOC_Exception_open(&_mid);
29 
30     RT0__RegisterModule(&_mid);
31     OOC_Channel_init();
32   }
33   _mid.openCount++;
34 }
OOC_Channel_close(RT0__Module client)35 extern void OOC_Channel_close(RT0__Module client) {
36   _mid.openCount--;
37   if (_mid.openCount == 0) {
38     OOC_Channel_destroy();
39     RT0__UnregisterModule(&_mid);
40 
41     OOC_Strings_close(&_mid);
42     OOC_Time_close(&_mid);
43     OOC_Msg_close(&_mid);
44     OOC_RT0_close(&_mid);
45     OOC_Object_close(&_mid);
46     OOC_Exception_close(&_mid);
47   }
48 }
49 
50 /* --- */
51