diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita --- a/Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita Wed Mar 31 11:11:55 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita Fri Jun 11 12:39:03 2010 +0100 @@ -1,57 +1,57 @@ - - - - - -Open -C Producer Consumer Example -

OpenCProducerConsumerEx is a hybrid application that depicts solution for -producer consumer problem using Open C. This application uses main() as an -entry point for the application. It uses libc and libpthread

-
Download

Click -on the following link to download the example: opencproducerconsumerex.zip

Click: browse to view the example code.

-
Design and -Implementation

The following sections provide information about -the implementation of the example.

Capabilities

The program -capability is defined in: ProducerConsumer.mmp (EXE - -application): CAPABILITY NONE.

Implementation details -of EXE

This is a simple console based application. Main thread of -the application will create a thread named as Producer that will produce the -item and push it on to the stack. There will be N consumers which want to -consume some N(i) items from the Producer. Producer will produce N items at -a time and pushes them to the stack and totally it will produce sum(N(i)) -items. The consumer thread will try to pop items from the stack and each consumer -will pop N(i) items from the stack. The application will create one thread -for each consumer. Producer and all the consumer threads will be synchronized -using a semaphore. The main thread, Producer and the consumer codes are pure -C-code. the stack used by Producer and the consumer threads is Standard C++ -code. Apart from these threads, there is another thread named as Observer -that is created using Symbian platform API. Producer and the consumers will -establish a message queue with this thread and Observer will read message -from all other threads and will log them to a file wich is opened/written -using Symbian APIs. Hence, this application is a hybrid application with: -

Standard C code -> Consumer.c, Producer.c, ProducerConsumer.c, CommanHeader.h

Standard C++ code -> Stack.cpp,Stack.h, CommanHeader.h

Symbian -platform code that uses libc APIs and Observer.cpp.

-The application has its own icon and can be launched from the UI both in the -emulator and in the device.

API Usage

string APIs

IPC -APIs (message queue and semaphore)

Threading APIs -(from pthread)

console I/O APIs

File -APIs of Symbian platform

Threading APIs of Symbian -platform

-
Building and -Using To build the OpenCProducerConsumerEx application, go to the -OpenCProducerConsumerEx\group directory and build the application. The definition -for the whole application can be found in the bld.infin -the group subdirectory of the applications main directory.

The application -is simple console based application. It has its own default icon and can be -launched from the UI both in the emulator and in the device. The application -can be launched by: Executing OpenCProducerConsumerEx from eshell. Clicking -default icon with display text OpenCProducerConsumerEx within the install -folder launcher application.

+ + + + + +Open +C Producer Consumer Example +

OpenCProducerConsumerEx is a hybrid application that depicts solution for +producer consumer problem using Open C. This application uses main() as an +entry point for the application. It uses libc and libpthread

+
Download

Click +on the following link to download the example: opencproducerconsumerex.zip

Click: browse to view the example code.

+
Design and +Implementation

The following sections provide information about +the implementation of the example.

Capabilities

The program +capability is defined in: ProducerConsumer.mmp (EXE - +application): CAPABILITY NONE.

Implementation details +of EXE

This is a simple console based application. Main thread of +the application will create a thread named as Producer that will produce the +item and push it on to the stack. There will be N consumers which want to +consume some N(i) items from the Producer. Producer will produce N items at +a time and pushes them to the stack and totally it will produce sum(N(i)) +items. The consumer thread will try to pop items from the stack and each consumer +will pop N(i) items from the stack. The application will create one thread +for each consumer. Producer and all the consumer threads will be synchronized +using a semaphore. The main thread, Producer and the consumer codes are pure +C-code. the stack used by Producer and the consumer threads is Standard C++ +code. Apart from these threads, there is another thread named as Observer +that is created using Symbian platform API. Producer and the consumers will +establish a message queue with this thread and Observer will read message +from all other threads and will log them to a file wich is opened/written +using Symbian APIs. Hence, this application is a hybrid application with: +

Standard C code -> Consumer.c, Producer.c, ProducerConsumer.c, CommanHeader.h

Standard C++ code -> Stack.cpp,Stack.h, CommanHeader.h

Symbian +platform code that uses libc APIs and Observer.cpp.

+The application has its own icon and can be launched from the UI both in the +emulator and in the device.

API Usage

string APIs

IPC +APIs (message queue and semaphore)

Threading APIs +(from pthread)

console I/O APIs

File +APIs of Symbian platform

Threading APIs of Symbian +platform

+
Building and +Using To build the OpenCProducerConsumerEx application, go to the +OpenCProducerConsumerEx\group directory and build the application. The definition +for the whole application can be found in the bld.infin +the group subdirectory of the applications main directory.

The application +is simple console based application. It has its own default icon and can be +launched from the UI both in the emulator and in the device. The application +can be launched by: Executing OpenCProducerConsumerEx from eshell. Clicking +default icon with display text OpenCProducerConsumerEx within the install +folder launcher application.

\ No newline at end of file