Version: 8.3.0
SALOMESDS::KeyWaiter Class Reference

#include <SALOMESDS_KeyWaiter.hxx>

Inheritance diagram for SALOMESDS::KeyWaiter:

Public Member Functions

 KeyWaiter (PickelizedPyObjServer *var, const SALOME::ByteVec &keyVal)
 
PyObject * getKeyPyObj () const
 
virtual ~KeyWaiter ()
 
PortableServer::POA_var getPOA () const
 
void waitFor ()
 WARNING : here it is the single method that can be invoked in non SINGLE_THREAD POA. More...
 
void valueJustCome (PyObject *val)
 WARNING call this method before calling go ! More...
 
void go ()
 
std::string getVarName () const
 
SALOME::ByteVecwaitForMonoThr ()
 this method is supposed to be performed in alone. More...
 
SALOME::ByteVecwaitForAndKill ()
 
CORBA::Object_var activate ()
 
void enforcedRelease ()
 

Private Member Functions

DataScopeServerTransactiongetDSS () const
 

Private Attributes

PickelizedPyObjServer_var
 
PyObject * _ze_key
 
PyObject * _ze_value
 
sem_t _sem
 

Constructor & Destructor Documentation

KeyWaiter::~KeyWaiter ( )
virtual

References _ze_key, and _ze_value.

Member Function Documentation

CORBA::Object_var SALOMESDS::POAHolder::activate ( )
inherited

References SALOMESDS::POAHolder::getPOA().

Referenced by SALOMESDS::DataScopeServerTransaction::addKeyValueInVarErrorIfAlreadyExisting(), SALOMESDS::DataScopeServerTransaction::addKeyValueInVarHard(), SALOMESDS::DataScopeServerTransaction::addMultiKeyValueSession(), SALOMESDS::DataScopeServerTransaction::createRdExtInitVarInternal(), SALOMESDS::DataScopeServerTransaction::createRdExtInitVarTransac(), SALOMESDS::DataScopeServer::createRdExtVar(), SALOMESDS::DataScopeServerTransaction::createRdExtVarInternal(), SALOMESDS::DataScopeServerTransaction::createRdExtVarTransac(), SALOMESDS::DataScopeServer::createRdOnlyVar(), SALOMESDS::DataScopeServerTransaction::createRdOnlyVarInternal(), SALOMESDS::DataScopeServerTransaction::createRdOnlyVarTransac(), SALOMESDS::DataScopeServer::createRdWrVar(), SALOMESDS::DataScopeServerTransaction::createRdWrVarInternal(), SALOMESDS::DataScopeServerTransaction::createRdWrVarTransac(), SALOMESDS::DataScopeServerTransaction::createWorkingVarTransac(), SALOMESDS::DataServerManager::DataServerManager(), SALOMESDS::DataScopeServerTransaction::killVarTransac(), SALOMESDS::DataScopeServerBase::moveStatusOfVarFromRdExtOrRdExtInitToRdExt(), SALOMESDS::DataScopeServerBase::moveStatusOfVarFromRdExtOrRdExtInitToRdExtInit(), SALOMESDS::DataScopeServerBase::moveStatusOfVarFromRdOnlyToRdWr(), SALOMESDS::DataScopeServerBase::moveStatusOfVarFromRdWrToRdOnly(), SALOMESDS::DataScopeServerTransaction::removeKeyInVarErrorIfNotAlreadyExisting(), SALOMESDS::DataScopeServerTransaction::waitForKeyInVar(), and SALOMESDS::DataScopeServerTransaction::waitForKeyInVarAndKillIt().

DataScopeServerTransaction* SALOMESDS::KeyWaiter::getDSS ( ) const
private

Referenced by getPOA(), and KeyWaiter().

PyObject* SALOMESDS::KeyWaiter::getKeyPyObj ( ) const
PortableServer::POA_var KeyWaiter::getPOA ( ) const
virtual
std::string SALOMESDS::KeyWaiter::getVarName ( ) const
void KeyWaiter::go ( )

References _sem.

Referenced by KeyWaiter().

void KeyWaiter::valueJustCome ( PyObject *  val)

WARNING call this method before calling go !

References _ze_value.

void KeyWaiter::waitFor ( )

WARNING : here it is the single method that can be invoked in non SINGLE_THREAD POA.

So take care to do avoid collapses (especially in python).

References _sem, and _ze_value.

Field Documentation

sem_t SALOMESDS::KeyWaiter::_sem
private

Referenced by go(), KeyWaiter(), and waitFor().

PickelizedPyObjServer* SALOMESDS::KeyWaiter::_var
private
PyObject* SALOMESDS::KeyWaiter::_ze_key
private
PyObject* SALOMESDS::KeyWaiter::_ze_value
private