Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

CollectionMaster::CollectVectorSequence Class Reference

#include <CollectionMaster.h>

List of all members.

Public Member Functions

void submitData (CollectVectorMsg *msg, int max_index)
void enqueue (int seq, Lattice &lattice)
CollectVectorInstanceremoveReady (void)

Public Attributes

ResizeArray< CollectVectorInstance * > data
ResizeArray< int > queue
ResizeArray< Latticelatqueue


Member Function Documentation

void CollectionMaster::CollectVectorSequence::enqueue int  seq,
Lattice lattice
[inline]
 

Definition at line 259 of file CollectionMaster.h.

Referenced by CollectionMaster::enqueueForces(), CollectionMaster::enqueuePositions(), and CollectionMaster::enqueueVelocities().

00259                                             {
00260       queue.add(seq);
00261       latqueue.add(lattice);
00262     }

CollectVectorInstance* CollectionMaster::CollectVectorSequence::removeReady void   )  [inline]
 

Definition at line 264 of file CollectionMaster.h.

References CollectionMaster::CollectVectorInstance::lattice, CollectionMaster::CollectVectorInstance::ready(), and CollectionMaster::CollectVectorInstance::seq.

Referenced by CollectionMaster::enqueueForces(), CollectionMaster::enqueuePositions(), CollectionMaster::enqueueVelocities(), CollectionMaster::receiveForces(), CollectionMaster::receivePositions(), and CollectionMaster::receiveVelocities().

00265     {
00266       CollectVectorInstance *o = 0;
00267       if ( queue.size() )
00268       {
00269         int seq = queue[0];
00270         CollectVectorInstance **c = data.begin();
00271         CollectVectorInstance **c_e = data.end();
00272         for( ; c != c_e && (*c)->seq != seq; ++c );
00273         if ( c != c_e && (*c)->ready() )
00274         {
00275           o = *c;
00276           o->lattice = latqueue[0];
00277           queue.del(0,1);
00278           latqueue.del(0,1);
00279         }
00280       }
00281       return o;
00282     }

void CollectionMaster::CollectVectorSequence::submitData CollectVectorMsg msg,
int  max_index
[inline]
 

Definition at line 240 of file CollectionMaster.h.

References CollectionMaster::CollectVectorInstance::append(), CollectionMaster::CollectVectorInstance::notfree(), CollectionMaster::CollectVectorInstance::reset(), CollectionMaster::CollectVectorInstance::seq, and CollectVectorMsg::seq.

Referenced by CollectionMaster::receiveForces(), CollectionMaster::receiveOutputForceReady(), CollectionMaster::receiveOutputVelReady(), CollectionMaster::receivePositions(), and CollectionMaster::receiveVelocities().

00241     {
00242       int seq = msg->seq;
00243       CollectVectorInstance **c = data.begin();
00244       CollectVectorInstance **c_e = data.end();
00245       for( ; c != c_e && (*c)->seq != seq; ++c );
00246       if ( c == c_e )
00247       {
00248         c = data.begin();
00249         for( ; c != c_e && (*c)->notfree(); ++c );
00250         if ( c == c_e ) {
00251           data.add(new CollectVectorInstance(seq));
00252           c = data.end() - 1;
00253         }
00254         (*c)->reset(seq);
00255       }
00256       (*c)->append(msg, max_index);
00257     }


Member Data Documentation

ResizeArray<CollectVectorInstance*> CollectionMaster::CollectVectorSequence::data
 

Definition at line 284 of file CollectionMaster.h.

ResizeArray<Lattice> CollectionMaster::CollectVectorSequence::latqueue
 

Definition at line 286 of file CollectionMaster.h.

ResizeArray<int> CollectionMaster::CollectVectorSequence::queue
 

Definition at line 285 of file CollectionMaster.h.


The documentation for this class was generated from the following file:
Generated on Fri May 25 04:07:19 2012 for NAMD by  doxygen 1.3.9.1