SkillAgentSearch skills...

SharedMemoryUtils

No description available

Install / Use

npx skills add simongeilfus/SharedMemoryUtils

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

#SharedMemory Utilities A collection of small shared memory utilities based on boost::interprocess. http://www.boost.org/doc/libs/1_55_0/doc/html/interprocess.html

####Server/Clients Messages System Initialize the server like this:

sm::MessengerRef mMessages;
mMessages = sm::Messenger::createServer( "SharedMemoryName" );

And as many clients as you want:

sm::MessengerRef mMessages;
mMessages = sm::Messenger::createClient( "SharedMemoryName" );

You can send and receive messages from both end. The only difference between server and clients is that the server take care of creating and destroying the shared memory segment.

sm::Message m = mMessages->createMessage( "Test" );
m.addIntArg( 123456 );
m.addFloatArg( 0.987654f );
m.addStringArg( "Hello Shared Memory!" );

mMessages->sendMessage( m );
if( mMessages->hasMessageWaiting() ){
    sm::Message m = mMessages->getFrontMessage();
    cout << m.getAddress() << endl;
    for( int i = 0; i < m.getNumArgs(); i++ ){
        cout << '\t' << m.getArgAsString( i ) << endl;
    }
}

####Smart Pointers Create your shared_ptr like this:

sm::shared_memory_object::remove( "SharedMemory" );
    
sm::managed_shared_memory sharedMemory  = sm::managed_shared_memory( sm::itp::create_only, "SharedMemory", sizeof(Object) );
sm::shared_ptr<Object> sharedObject     = sm::make_shared( sharedMemory.construct<Object>("SharedObject")(), sharedMemory );

And find them on the other side like this:

sm::managed_shared_memory sharedMemory  = sm::managed_shared_memory( sm::itp::open_only, "SharedMemory" );
sm::shared_ptr<Object> sharedObject     = sm::make_shared( sharedMemory.find<Object>("SharedObject").first, sharedMemory );

Related Skills

View on GitHub
GitHub Stars13
CategoryDevelopment
Updated2y ago
Forks5

Languages

C++

Security Score

55/100

Audited on Apr 22, 2024

No findings