Giriş
Şu satırı dahil ederiz.
Constructor
Yazan taraf için şöyle yaparız. En fazla 4 byte büyüklüğünde ve 100 tane mesaj alabilen bir kuyruk yaratır.
Okuyan taraf için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Kuyruk boşsa bloke olur. Eğer hata oluşursa interprocess_exception fırlatılır. Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Kuyrukta doluysa bloke olur. Eğer hata oluşursa interprocess_exception fırlatılır. İskeleti şöyledir.
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/interprocess/ipc/message_queue.hpp>
Bu sınıf thred safe bir nesnedir.Constructor
Yazan taraf için şöyle yaparız. En fazla 4 byte büyüklüğünde ve 100 tane mesaj alabilen bir kuyruk yaratır.
bi::message_queue mq (
bi::create_only,"messagequeue",100,4);
bi::message_queue mq (
bi::open_only,"messagequeue");
ÖrnekŞöyle yaparız.
bi::message_queue mq (bi::open_or_create,"messagequeue", 100, 4 );
ÖrnekŞöyle yaparız.
//Create a message_queue.
message_queue mq
(create_only //only create
,"message_queue" //name
,100 //max message number
,sizeof(int) //max message size
);
receive metodu - int okumaKuyruk boşsa bloke olur. Eğer hata oluşursa interprocess_exception fırlatılır. Şöyle yaparız.
unsigned int priority;
message_queue::size_type recvd_size;
int number;
bi::mq.receive (&number, sizeof(number), recvd_size, priority);
if (recvd_size != sizeof(number)) {
...
}
receive metodu - string okumaŞöyle yaparız.
unsigned int priority;
bi::message_queue::size_type recvd_size;
std::string msg;
msg.resize (100);
bi::mq.receive (msg.data(), 100, recvd_size, priority);
remove metoduŞöyle yaparız.
bi::message_queue::remove ("messagequeue");
send metodu - int yazmaKuyrukta doluysa bloke olur. Eğer hata oluşursa interprocess_exception fırlatılır. İskeleti şöyledir.
try{
mq.send(...,..., 0);
...
}
catch (bi::interprocess_exception &ex){
...
}
Şöyle yaparız. Üçüncü parametre priority değeridir.int i = ...;
bi::mq.send (&i, sizeof(i), 0);
send metodu - string yazmaŞöyle yaparız.
std::string msg = ...;
bi::mq.send (msg.data(), msg.size(), 0);
Hiç yorum yok:
Yorum Gönder