sc::GlobalMsgIter(3)
π sc::GlobalMsgIter π
okay bestie, pull up a chair πͺ because we're talking about sc::GlobalMsgIter β that's the sc:: one, from the Library Functions Manual, section 3 if you're keeping score. It's the little iterator that handles your global message passing vibes and honestly? she's serving.
β¨ NAME β¨
sc::GlobalMsgIter β yes that's her whole name, she's mysterious like that π
π¦ SYNOPSIS π¦
She inherits from sc::DescribedClass.
And get this β she's inherited by sc::HypercubeGMI. so she's got a legacy, a whole bloodline, main character energy fr fr π
πΈ Public Member Functions πΈ
okay so here's her own repertoire, no nepo baby behaviour, all her own work:
GlobalMsgIter(int nproc, int me, int root=0)β the constructor, she's born.rootdefaults to0because of course it does.void backwards()β go backwards, queen.void forwards()β and now go forwards. versatility β¨void next()β next one, please, we're moving.int done()β are we done here or whatint n()β thenint sendto()β who are we sending toint send()β send itint recvfrom()β who sent this to usint recv()β receive it
π Public Member Functions inherited from sc::DescribedClass π
the family traits, passed down:
DescribedClass(const DescribedClass &)β copy constructor, she's a copycat (affectionate)DescribedClass & operator=(const DescribedClass &)β assignment operator, giving main character the same energyClassDesc * class_desc() const throw()β This returns the unique pointer to theClassDesccorresponding to the given type_info object.const char * class_name() constβ Return the name of the object's exact type. (yes, exact type, she doesn't do approximations)int class_version() constβ Return the version of the class.virtual void print(std::ostream &=ExEnv::out0()) constβ Print the object. that's it, that's the job π
π Public Member Functions inherited from sc::RefCount π
the reference-counting side of the family, obsessed with her tbh:
int lock_ptr() constβ Lock this object.int unlock_ptr() constβ Unlock this object.void use_locks(bool inVal)β start and stop using locks on this objectrefcount_t nreference() constβ Return the reference count.refcount_t reference()β Increment the reference count and return the new count.refcount_t dereference()β Decrement the reference count and return the new count.int managed() constβ (yes she's listed twice in the original, we don't question the icon's choices)void unmanage()β Turn off the reference counting mechanism for this object.int managed() constβ Return1if the object is managed. Otherwise return0.
π«Ά Public Member Functions inherited from sc::Identity π«Ά
Identifier identifier()β Return theIdentifierfor this argument.
π§ Protected Member Functions π§
these are the private-ish ones, for the inner circle only:
virtual int fwdsendto()=0β pure virtual, meaning you gotta implement this yourself, no skipping π€virtual int fwdsend()=0β also pure virtual, also on youvirtual int fwdrecvfrom()=0β pure virtual, still on you bestievirtual int fwdrecv()=0β pure virtual, last one, you got this
π Protected Member Functions inherited from sc::RefCount π
RefCount(const RefCount &)β the copy constructorRefCount & operator=(const RefCount &)β and the assignment operator
π Protected Attributes π
the lil data members tucked away:
int me_int nproc_int root_int i_int n_int fwd_
π Author π
Generated automatically by Doxygen for MPQC from the source code. yeah, a robot wrote her bio, she's still iconic π β¨
and that's the whole page, bestie π«Ά this was MPQC Version 2.3.1, filed under sc::GlobalMsgIter(3). go forth and iterate, globally ππ
π¦ where this page comes from
- fedora 43: mpqc-devel 2.3.1-65.fc43 Β· GPL-2.0-or-later AND LicenseRef-Callaway-LGPLv2+
- fedora 43: mpqc-devel 2.3.1-65.fc43 Β· GPL-2.0-or-later AND LicenseRef-Callaway-LGPLv2+
- ubuntu noble: libsc-doc 2.3.1-22build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms