示例#1
0
void EnergyDensityEstimator::addObservables(PropertySetType& plist, BufferType& collectables)
{
  myIndex=collectables.size();
  //allocate space for energy density outside of any spacegrid
  outside_buffer_offset=collectables.size();
  int nvalues=(int)nEDValues;
  vector<RealType> tmp(nvalues);
  collectables.add(tmp.begin(),tmp.end());
  //allocate space for spacegrids
  for(int i=0; i<spacegrids.size(); i++)
  {
    spacegrids[i]->allocate_buffer_space(collectables);
  }
}
示例#2
0
void MomentumEstimator::addObservables(PropertySetType& plist, BufferType& collectables)
{
  if (hdf5_out)
  {
    myIndex=collectables.size();
    collectables.add(nofK.begin(),nofK.end());
    collectables.add(compQ.begin(),compQ.end());
  }
  else
  {
    myIndex=plist.size();
    for (int i=0; i<nofK.size(); i++)
    {
      std::stringstream sstr;
      sstr << "nofk_" <<i;
      int id=plist.add(sstr.str());
    }
    for (int i=0; i<Q.size(); i++)
    {
      std::stringstream sstr;
      sstr << "Q_" <<i;
      int id=plist.add(sstr.str());
    }
  }
}
bool SpotMessageVgdProcessPackageResponse::parse (BufferType const & buff)
{
  if(buff.size() < CMessageSize)  return false; // message too short

  // In this message the work is just parse the header + ACK code.
  return AbsSpotMessageWithAppCatCmdID::parse(buff); // Length and AckCode are get by this method.
}
void BufferSender::setBuffer( BufferType& buffer ) 
{
   MC2_ASSERT( m_impl->state == READY ||
               m_impl->state == DONE );
   MC2_ASSERT( buffer.size() != 0 );

   m_impl->setBuffer( buffer );
   m_impl->state = SENDING;
   resetTimeout();
}
    void sessionEvent( BufferType const & buffer, TypeId const & typeId, KeyType const & keyType)
    {
      m_typeId  = typeId;
      m_keyType = keyType;

      m_buffer.clear();
      m_buffer.reserve(buffer.size());
      m_buffer.insert(m_buffer.end(),buffer.begin(),buffer.end());

      std::cout << "SpotSessionListenerWorker: [" << m_workerName << "] has been received an event." << std::endl;
    }
   Impl( BufferType& buffer, 
         const IPnPort& _destination )
      throw (SocketException) :
      bytesLeft( buffer.size() ),
      curByte( buffer.begin() ),
      destination( _destination ),
      state( BufferSender::ERROR )  {
      // take control of the data
      setBuffer( buff );
      connect();

   }
void QueuedPacketReceiver::enqueuePacket()
{
   if ( getState() != IDLE ) {
      return;
   }

   BufferType buffer;
   getBuffer( buffer );
   uint32 dataSize = buffer.size();

   if ( dataSize > 0 ) { 
      mc2dbg4 << "[QueuedPacketReceiver] got buffer with size: " 
             << dataSize << endl;
      m_packetQueue.
         enqueue( Packet::makePacket( buffer.release(), dataSize ));
   } else {
      mc2dbg2 << "[QueuedPacketReceiver] buffer empty!" << endl;
   }
}
bool SpotMessageHardwareInfo::parse (BufferType const & buff)
{
  if(buff.size() <= CHeaderSize)  return false; // message too short

  if( buff[CMessageItemQtyOffset] == 0 )
  {
    return true; // This request has no item codes, so this is a request for ALL available items in SPOT.
  }

  bool blRet = AbsSpotMessageWithAppCatCmdID::parse(buff);

  if( !blRet ) return false; // malformed header

  BufferType::const_iterator itDataBegining( buff.begin() + CMessageItemDataOffset );

  m_ItemVector.assign(itDataBegining, itDataBegining + buff[CMessageItemQtyOffset]);

  std::cout << "SpotMessageHardwareInfo::parse() - Length: " << size() << " bytes.\n";
  char* pcBuffer = new char[3 * size() + 2];
  std::cout << "\nMessage Data: " << Utils::dumpBuffer(pcBuffer, &buff.front(), size()) << std::endl << std::endl;
  delete[] pcBuffer;

  return true;
}