mirror of
https://github.com/boostorg/interprocess.git
synced 2026-01-19 04:12:13 +00:00
Added support for wide characters when creating named resources in operating systems with wide-char APIs (at this time, Windows).
Fixes #93 and fixes #134.
This commit is contained in:
@@ -25,10 +25,11 @@
|
||||
#include <memory>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <stdexcept>
|
||||
#include <exception>
|
||||
#include <limits>
|
||||
|
||||
#include "get_process_id_name.hpp"
|
||||
#include "named_creation_template.hpp"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
@@ -350,25 +351,86 @@ bool test_multi_sender_receiver()
|
||||
return ret;
|
||||
}
|
||||
|
||||
class msg_queue_named_test_wrapper
|
||||
: public test::named_sync_deleter<message_queue>, public message_queue
|
||||
{
|
||||
public:
|
||||
|
||||
msg_queue_named_test_wrapper(create_only_t)
|
||||
: message_queue(create_only, test::get_process_id_name(), 10, 10)
|
||||
{}
|
||||
|
||||
msg_queue_named_test_wrapper(open_only_t)
|
||||
: message_queue(open_only, test::get_process_id_name())
|
||||
{}
|
||||
|
||||
msg_queue_named_test_wrapper(open_or_create_t)
|
||||
: message_queue(open_or_create, test::get_process_id_name(), 10, 10)
|
||||
{}
|
||||
|
||||
~msg_queue_named_test_wrapper()
|
||||
{}
|
||||
};
|
||||
|
||||
#if defined(BOOST_INTERPROCESS_WCHAR_NAMED_RESOURCES)
|
||||
|
||||
class msg_queue_named_test_wrapper_w
|
||||
: public test::named_sync_deleter_w<message_queue>, public message_queue
|
||||
{
|
||||
public:
|
||||
|
||||
template <class CharT>
|
||||
msg_queue_named_test_wrapper_w(create_only_t)
|
||||
: message_queue(create_only, test::get_process_id_wname(), 10, 10)
|
||||
{}
|
||||
|
||||
msg_queue_named_test_wrapper_w(open_only_t)
|
||||
: message_queue(open_only, test::get_process_id_wname())
|
||||
{}
|
||||
|
||||
msg_queue_named_test_wrapper_w(open_or_create_t)
|
||||
: message_queue(open_or_create, test::get_process_id_wname(), 10, 10)
|
||||
{}
|
||||
|
||||
~msg_queue_named_test_wrapper_w()
|
||||
{}
|
||||
};
|
||||
|
||||
#endif //defined(BOOST_INTERPROCESS_WCHAR_NAMED_RESOURCES)
|
||||
|
||||
|
||||
int main ()
|
||||
{
|
||||
if(!test_priority_order()){
|
||||
return 1;
|
||||
}
|
||||
int ret = 0;
|
||||
try{
|
||||
message_queue::remove(test::get_process_id_name());
|
||||
test::test_named_creation<msg_queue_named_test_wrapper>();
|
||||
#if defined(BOOST_INTERPROCESS_WCHAR_NAMED_RESOURCES)
|
||||
test::test_named_creation<msg_queue_named_test_wrapper>();
|
||||
#endif
|
||||
|
||||
if(!test_serialize_db()){
|
||||
return 1;
|
||||
}
|
||||
if(!test_priority_order()){
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(!test_buffer_overflow()){
|
||||
return 1;
|
||||
}
|
||||
if(!test_serialize_db()){
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(!test_multi_sender_receiver()){
|
||||
return 1;
|
||||
}
|
||||
if(!test_buffer_overflow()){
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
if(!test_multi_sender_receiver()){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
catch (std::exception &ex) {
|
||||
std::cout << ex.what() << std::endl;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
message_queue::remove(test::get_process_id_name());
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user