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 (int seq, AtomIDList &i, ResizeArray< Vector > &d, ResizeArray< FloatVector > &fd)
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 117 of file CollectionMaster.h.

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

00117                                             {
00118       queue.add(seq);
00119       latqueue.add(lattice);
00120     }

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

Definition at line 122 of file CollectionMaster.h.

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

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

00123     {
00124       CollectVectorInstance *o = 0;
00125       if ( queue.size() )
00126       {
00127         int seq = queue[0];
00128         CollectVectorInstance **c = data.begin();
00129         CollectVectorInstance **c_e = data.end();
00130         for( ; c != c_e && (*c)->seq != seq; ++c );
00131         if ( c != c_e && (*c)->ready() )
00132         {
00133           o = *c;
00134           o->lattice = latqueue[0];
00135           queue.del(0,1);
00136           latqueue.del(0,1);
00137         }
00138       }
00139       return o;
00140     }

void CollectionMaster::CollectVectorSequence::submitData int  seq,
AtomIDList i,
ResizeArray< Vector > &  d,
ResizeArray< FloatVector > &  fd
[inline]
 

Definition at line 98 of file CollectionMaster.h.

References CollectionMaster::CollectVectorInstance::append(), AtomIDList, ResizeArray< Elem >::begin(), ResizeArray< Elem >::end(), CollectionMaster::CollectVectorInstance::notfree(), CollectionMaster::CollectVectorInstance::reset(), and CollectionMaster::CollectVectorInstance::seq.

Referenced by CollectionMaster::receivePositions(), and CollectionMaster::receiveVelocities().

00100     {
00101       CollectVectorInstance **c = data.begin();
00102       CollectVectorInstance **c_e = data.end();
00103       for( ; c != c_e && (*c)->seq != seq; ++c );
00104       if ( c == c_e )
00105       {
00106         c = data.begin();
00107         for( ; c != c_e && (*c)->notfree(); ++c );
00108         if ( c == c_e ) {
00109           data.add(new CollectVectorInstance(seq));
00110           c = data.end() - 1;
00111         }
00112         (*c)->reset(seq);
00113       }
00114       (*c)->append(i,d,fd);
00115     }


Member Data Documentation

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

Definition at line 142 of file CollectionMaster.h.

ResizeArray<Lattice> CollectionMaster::CollectVectorSequence::latqueue
 

Definition at line 144 of file CollectionMaster.h.

ResizeArray<int> CollectionMaster::CollectVectorSequence::queue
 

Definition at line 143 of file CollectionMaster.h.


The documentation for this class was generated from the following file:
Generated on Mon Nov 23 04:59:31 2009 for NAMD by  doxygen 1.3.9.1