36 #define _________________________________________VARIABLES_SECTION__________________________________________________________________________ 41 .
Name =
"streams manager" ,
46 #undef _________________________________________VARIABLES_SECTION__________________________________________________________________________ 54 #define _________________________________________INTERFACE_FUNCTIONS_SECTION________________________________________________________________ 58 oC_ErrorCode_t oC_StreamMan_TurnOn(
void )
60 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
62 if(oC_AssignErrorCodeIfFalse(&errorCode ,
ModuleEnabledFlag ==
false , oC_ErrorCode_ModuleIsTurnedOn))
64 Streams = oC_List_New(&
Allocator,AllocationFlags_NoWait);
69 errorCode = oC_ErrorCode_None;
71 #define IN oC_Stream_Type_Input 72 #define OUT oC_Stream_Type_Output 73 #define ADD_STREAM( NAME , TYPE , DRIVER_NAME , CONFIG_NAME ) oC_AssignErrorCode(&errorCode , oC_StreamMan_Add(oC_Stream_New(&Allocator,AllocationFlags_NoWait,TYPE,#NAME,&DRIVER_NAME,&CONFIG_NAME))); 81 errorCode = oC_ErrorCode_AllocationError;
90 oC_ErrorCode_t oC_StreamMan_TurnOff(
void )
92 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
94 if(oC_AssignErrorCodeIfFalse(&errorCode ,
ModuleEnabledFlag ==
true , oC_ErrorCode_ModuleNotStartedYet))
96 errorCode = oC_ErrorCode_None;
98 oC_List_Foreach(Streams,stream)
100 if(!oC_Stream_Delete(&stream))
102 errorCode = oC_ErrorCode_ReleaseError;
106 if(!oC_List_Delete(Streams,AllocationFlags_CanWaitForever))
108 errorCode = oC_ErrorCode_ReleaseError;
117 oC_ErrorCode_t oC_StreamMan_Add(
oC_Stream_t Stream )
119 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
122 oC_AssignErrorCodeIfFalse(&errorCode ,
ModuleEnabledFlag ==
true , oC_ErrorCode_ModuleNotStartedYet) &&
123 oC_AssignErrorCodeIfFalse(&errorCode , oC_Stream_IsCorrect(Stream) , oC_ErrorCode_ObjectNotCorrect)
126 bool added = oC_List_PushCopyBack(Streams,Stream,&
Allocator);
130 errorCode = oC_ErrorCode_None;
134 errorCode = oC_ErrorCode_CannotAddObjectToList;
143 oC_ErrorCode_t oC_StreamMan_Remove(
oC_Stream_t Stream )
145 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
148 oC_AssignErrorCodeIfFalse(&errorCode ,
ModuleEnabledFlag ==
true , oC_ErrorCode_ModuleNotStartedYet) &&
149 oC_AssignErrorCodeIfFalse(&errorCode , oC_Stream_IsCorrect(Stream) , oC_ErrorCode_ObjectNotCorrect)
152 bool contains = oC_List_Contains(Streams,Stream);
156 bool removed = oC_List_RemoveAll(Streams,Stream);
160 errorCode = oC_ErrorCode_None;
164 errorCode = oC_ErrorCode_CannotRemoveObjectFromList;
169 errorCode = oC_ErrorCode_ObjectNotFoundOnList;
192 oC_Stream_t oC_StreamMan_GetStream(
const char * Name )
198 oC_List_Foreach(Streams,stream)
200 if(strcmp(oC_Stream_GetName(stream),Name)==0)
202 streamToReturn = stream;
207 return streamToReturn;
217 #undef _________________________________________INTERFACE_FUNCTIONS_SECTION________________________________________________________________ static bool ModuleEnabledFlag
identifier for allocations
#define CFG_STDERR_STREAM_NAME
standard error stream for fatal system errors
The file with configurations of streams.
The file with interface for stream manager.
static const oC_Allocator_t Allocator
#define CFG_STREAMS_LIST(ADD_STREAM)
#define NULL
pointer to a zero