PaCO++  0.05
Identity Class Reference

#include <Identity.h>

Inheritance diagram for Identity:
Collaboration diagram for Identity:

List of all members.

Public Member Functions

virtual void clientFree ()
virtual PieceToSendcomputePiecesToSend (unsigned &size)
virtual bool freeComId (long id)
virtual void * getClientData (void *pid, int server_node, long &size, long &length, bool &end)
virtual void * getDescr ()
virtual PaCO::PacoTopology_t getDestTopology ()
virtual long getNodeRank ()
virtual void * getServerData (long &length)
virtual PaCO::PacoTopology_t getSourceTopology ()
 Identity ()
virtual bool insertData (void *rcptBuf, unsigned long element_nb)
virtual void serverFree ()
virtual bool setComId (long id)
virtual void setCommunicator (void *group)
virtual void setDataPtr (void *dataPtr)
virtual void setDescr (void *descr)
virtual void setDestTopology (PaCO::PacoTopology_t topo)
void setEltSize (unsigned long size)
void setLocalNbElt (unsigned long elt_nb)
virtual void setNodeRank (long Rank)
virtual void setSourceTopology (PaCO::PacoTopology_t topo)
virtual ~Identity ()

Private Attributes

char * _clientBuffer
IdentityLib::IdentityDescr _clientDescr
unsigned _config
PaCO::PacoTopology_t _dTopo
unsigned _llen
unsigned _nodeRank
char * _serverBuffer
IdentityLib::IdentityDescr_serverDescr
unsigned long _serverToReceived
PaCO::PacoTopology_t _sTopo
unsigned _unitsize

Detailed Description

Definition at line 13 of file Identity.h.


Constructor & Destructor Documentation

Definition at line 18 of file Identity.cc.

References _clientBuffer, _config, _dTopo, _nodeRank, _serverBuffer, _serverDescr, _sTopo, and PaCO::PacoTopology_s::total.

{
  // Common
  _config = 0;

  // By default 1->1 :)
  _sTopo.total=1;
  _dTopo.total=1;
  _nodeRank=0;
  
  // Client side
  _clientBuffer=NULL;

  // Server side
  _serverDescr=NULL;
  _serverBuffer=NULL;
}
Identity::~Identity ( ) [virtual]

Definition at line 36 of file Identity.cc.

{
}

Member Function Documentation

void Identity::clientFree ( ) [virtual]

Implements DistributionLibrary.

Definition at line 174 of file Identity.cc.

{

#ifdef DEBUG_INTERNAL
  std::cerr << "-- clientFree\n";
#endif
}
PieceToSend * Identity::computePiecesToSend ( unsigned &  size) [virtual]

Implements DistributionLibrary.

Definition at line 114 of file Identity.cc.

References _config, _llen, _nodeRank, CORRECT_CONFIG, PieceToSend::destNode, PieceToSend::id, PieceToSend::size, and PieceToSend::sourceNode.

{

  PieceToSend * sched;

#ifdef DEBUG_INTERNAL
  std::cerr << "computePiecesToSend-------------------- in\n";
  std::cerr << __FUNCTION__ << ": config = "<<_config<<endl;
#endif

  if (_config != CORRECT_CONFIG) {
    std::cerr << "Identity: incorrect configuration state "<< _config<<"/"<<CORRECT_CONFIG<<endl;
    abort();
  }

  sched = new PieceToSend[1];
  size_out = 1;

  sched[0].sourceNode = _nodeRank; // my self :)
  sched[0].destNode   = _nodeRank; // the corresponding node
  sched[0].size       = _llen;     // msg size
  sched[0].id         = (void*) -1; /* not used */
 

#ifdef DEBUG_INTERNAL
  std::cerr << "computePiecesToSend-------------------- done\n";
#endif

  return sched;
}
virtual bool DistributionLibrary::freeComId ( long  id) [inline, virtual, inherited]

Reimplemented in BasicBC, and GaBro.

Definition at line 41 of file DistributionLibrairie.h.

{ return false;}
void * Identity::getClientData ( void *  pid,
int  server_node,
long &  size,
long &  length,
bool &  end 
) [virtual]

Implements DistributionLibrary.

Definition at line 155 of file Identity.cc.

References _clientBuffer, and _llen.

{
  if (remaining_size_octet < _llen) {
    std::cerr << "Identity: not yet implemented !\n";
    abort();
  }
    
#ifdef DEBUG_INTERNAL
  std::cerr << __FUNCTION__ << ": getClientData returns #elt: "<<_llen<<endl;
#endif

  remaining_size_octet-= _llen;
  returned_length_element= _llen;
  end=true;

  return _clientBuffer;
}
void * Identity::getDescr ( ) [virtual]

Implements DistributionLibrary.

Definition at line 183 of file Identity.cc.

References _clientDescr, and IdentityLib::IdentityDescr::llen.

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- descr:llen: "<<_clientDescr.llen<<std::endl;
#endif
  return &_clientDescr;
}

Implements DistributionLibrary.

Definition at line 70 of file Identity.cc.

References _dTopo.

{
  std::cerr << "****** Why is the method " << __FUNCTION__ << "called?\n";
  abort();
  return _dTopo;
}
long Identity::getNodeRank ( ) [virtual]

Implements DistributionLibrary.

Definition at line 87 of file Identity.cc.

References _nodeRank.

{
  return _nodeRank;
}
void * Identity::getServerData ( long &  length) [virtual]

Implements DistributionLibrary.

Definition at line 211 of file Identity.cc.

References _llen, and _serverBuffer.

{
  length= _llen;
#ifdef DEBUG_INTERNAL
  std::cerr << "-- getServerData: ptr : "<<(void*)_serverBuffer<<" #element:"<<length<<std::endl;
#endif  
  return (void*) _serverBuffer;
}

Implements DistributionLibrary.

Definition at line 51 of file Identity.cc.

References _sTopo.

{
  std::cerr << "****** Why is the method " << __FUNCTION__ << "called?\n";
  abort();
  return _sTopo;
}
bool Identity::insertData ( void *  rcptBuf,
unsigned long  element_nb 
) [virtual]

Implements DistributionLibrary.

Definition at line 192 of file Identity.cc.

References _llen, _serverBuffer, and _unitsize.

{
  // cp from recpBuf to _serverBuffer
#ifdef DEBUG_INTERNAL
  std::cerr << "-- insertData "<<endl;
#endif
  
  if (element_nb != _llen) {
    std::cerr << "Identity: not yet implemented !\n";
    abort();
  }

  unsigned long llen = element_nb*_unitsize;
  memcpy(_serverBuffer, rcptBuf, llen);

  return true;
}
void Identity::serverFree ( ) [virtual]

Implements DistributionLibrary.

Definition at line 249 of file Identity.cc.

References _serverBuffer.

{ 
#ifdef DEBUG_INTERNAL
  std::cerr << "-- serverFree: "<<(void*)_serverBuffer<<endl;
#endif
  free(_serverBuffer);
  _serverBuffer=NULL; // the orb (or the user) need to free the memory!
}
virtual bool DistributionLibrary::setComId ( long  id) [inline, virtual, inherited]

Reimplemented in BasicBC, and GaBro.

Definition at line 40 of file DistributionLibrairie.h.

{ return false;}
virtual void Identity::setCommunicator ( void *  group) [inline, virtual]

Implements DistributionLibrary.

Definition at line 54 of file Identity.h.

{}
void Identity::setDataPtr ( void *  dataPtr) [virtual]

Implements DistributionLibrary.

Definition at line 146 of file Identity.cc.

References _clientBuffer.

{
  _clientBuffer = (char *) dataPtr;
#ifdef DEBUG_INTERNAL
  cerr << "-- _clientBuffer set to "<<dataPtr<<endl;
#endif
}
void Identity::setDescr ( void *  descr) [virtual]

Implements DistributionLibrary.

Definition at line 221 of file Identity.cc.

References _dTopo, _llen, _serverBuffer, _serverDescr, _serverToReceived, _sTopo, _unitsize, IdentityLib::IdentityDescr::llen, setLocalNbElt(), and PaCO::PacoTopology_s::total.

{
  std::cerr << "-- insertData "<<endl;

  _serverDescr = (IdentityLib::IdentityDescr*) descr;

  // Descr already received

  if ( _serverBuffer == NULL)
    {
      // 1st time -> allocate memory & init
      //this->setEltSize(_descr->usz); BUG: usz can be different in client and server (32bit vs 64bit)
      unsigned long len = _serverDescr->llen*_unitsize;
      this->setLocalNbElt(_serverDescr->llen);
      
#ifdef DEBUG_INTERNAL
      fprintf(stderr, "-- setDescr: stopo: %ld\tdtopo: %ld\n",_sTopo.total, _dTopo.total);
      fprintf(stderr, "   setDescr: local len: %ld", _serverDescr->llen);
#endif  
      _serverBuffer = (char*) malloc(len);
#ifdef DEBUG_INTERNAL
      std::cerr << "-- serverMalloc: "<<(void*)_serverBuffer<<" - "<<_llen<<endl;
#endif
      _serverToReceived = len;
    }
}

Here is the call graph for this function:

Implements DistributionLibrary.

Definition at line 59 of file Identity.cc.

References _config, _dTopo, DST_TOPOLOGY, and PaCO::PacoTopology_s::total.

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- setDestTopology: " << topo.total << std::endl;
#endif
  _config |= DST_TOPOLOGY;
  _dTopo = topo;

}
void Identity::setEltSize ( unsigned long  size)

Definition at line 93 of file Identity.cc.

References _config, _unitsize, and ELEMENT_SIZE.

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- setEltSize: " << size << std::endl;
#endif
  _config |= ELEMENT_SIZE;
  _unitsize = size;
}
void Identity::setLocalNbElt ( unsigned long  elt_nb)

Definition at line 103 of file Identity.cc.

References _clientDescr, _config, _llen, IdentityLib::IdentityDescr::llen, and LOCAL_SIZE.

Referenced by setDescr().

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- setLocalNbElt: " << elt_nb << std::endl;
#endif
  _config |= LOCAL_SIZE;
  _clientDescr.llen = _llen = elt_nb;
}
void Identity::setNodeRank ( long  Rank) [virtual]

Implements DistributionLibrary.

Definition at line 78 of file Identity.cc.

References _nodeRank.

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- setNodeRank: " << Rank << std::endl;
#endif
  _nodeRank = Rank;
}

Implements DistributionLibrary.

Definition at line 41 of file Identity.cc.

References _config, _sTopo, SRC_TOPOLOGY, and PaCO::PacoTopology_s::total.

{
#ifdef DEBUG_INTERNAL
  std::cerr << "-- setSourceTopology: " << topo.total << std::endl;
#endif
  _config |= SRC_TOPOLOGY;
  _sTopo = topo;
}

Member Data Documentation

char* Identity::_clientBuffer [private]

Definition at line 30 of file Identity.h.

Referenced by getClientData(), Identity(), and setDataPtr().

Definition at line 31 of file Identity.h.

Referenced by getDescr(), and setLocalNbElt().

Definition at line 22 of file Identity.h.

Referenced by getDestTopology(), Identity(), setDescr(), and setDestTopology().

unsigned Identity::_llen [private]
unsigned Identity::_nodeRank [private]

Definition at line 24 of file Identity.h.

Referenced by computePiecesToSend(), getNodeRank(), Identity(), and setNodeRank().

char* Identity::_serverBuffer [private]

Definition at line 36 of file Identity.h.

Referenced by getServerData(), Identity(), insertData(), serverFree(), and setDescr().

Definition at line 38 of file Identity.h.

Referenced by Identity(), and setDescr().

unsigned long Identity::_serverToReceived [private]

Definition at line 35 of file Identity.h.

Referenced by setDescr().

unsigned Identity::_unitsize [private]

Definition at line 26 of file Identity.h.

Referenced by insertData(), setDescr(), and setEltSize().


The documentation for this class was generated from the following files: