페이지

Include Lists

2017년 1월 19일 목요일

PPL 라이브러리 (비/동기 메세지 통신) - 1


 What
  - AAL Library 설명
  - Thread간의 safe하게 동기/비동기 방식으로 메세지 전달 기능

 Why
  - 다른 Task 간의 명령을 전달하기 위한 라이브러리

 Usage
  - ppl.h 참조


쓰레드간에 데이터 전달 및 통신을 하기 위한 라이브러리로서

AAL에 대해서 소개한다.

AAL( Asynchronous Agents Library ) 은 아래의 그림과 같은 구조를 가진다.



















쓰레드 간의 메세지를 전달 하기위한 객체들로 구성되어 있으며,
Thread safe하게 동기/비동기 방식으로 메세지 전달 기능이 주된 기능이다.

관련 함수로는 
 - Passing Functions
 - Message Block 



기본적으로 동기/비동기에 대한 내용은 관련 글에서 참고하길 바란다. (동기/비동기)


메시지 전달함수에는 동기함수인 send() 비동기 함수인 asend() 함수가 있다.

Send 함수 원형 (Asend 함수도 일치)

1 
2 template <
3    class _Type
4 >
5 bool send(
6    ITarget<_Type> * _Trg,
7    const _Type& _Data
8 );
9  
10 template <
11    class _Type
12 >
13 bool send(
14    ITarget<_Type> &_Trg,
15    const _Type &_Data
16 );

Itarget<type> *trg 는 메시 블록의 인터페이스를 상속받은 객체를 말한다.
Type 데이터 타입을 말하고,
Data 전달할 객체를 말한다.

** send() asend() 함수는 동일하다