Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional documentation for 6 files #1045

Merged
merged 3 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/sst/core/action.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class Action : public Activity
protected:
/** Called to signal to the Simulation object to end the simulation */
void endSimulation();
/** Called to signal to the Simulation object to end the simulation
* @param end Simulation cycle when the simulation finishes
*/
void endSimulation(SimTime_t end);

NotSerializable(SST::Action)
Expand Down
18 changes: 18 additions & 0 deletions src/sst/core/configGraphOutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ class ConfigGraph;

namespace Core {

/**
* Exception handler class for graph configuration.
* Provides the interface to handle errors through the throw exception.
*/
class ConfigGraphOutputException : public std::exception
{
public:
Expand All @@ -32,19 +36,33 @@ class ConfigGraphOutputException : public std::exception
std::strcpy(exMsg, msg);
}

/**
* @return Exception Message
*/
virtual const char* what() const noexcept override { return exMsg; }

/**
* Exception message generated on call.
*/
protected:
char* exMsg;
};

/**
* Outputs configuration data to a specified file path.
*/
class ConfigGraphOutput
{
public:
ConfigGraphOutput(const char* path) { outputFile = fopen(path, "wt"); }

virtual ~ConfigGraphOutput() { fclose(outputFile); }

/**
* @param cfg Constant pointer to SST configuration
* @param graph Constant pointer to SST configuration graph
* @return void
*/
virtual void generate(const Config* cfg, ConfigGraph* graph) = 0;

protected:
Expand Down
3 changes: 3 additions & 0 deletions src/sst/core/cputimer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@

#include <sys/time.h>

/**
* @return Current CPU time using the time of day. Timezone information is not filled.
*/
double sst_get_cpu_time();

#endif // SST_CORE_CPU_TIMER_H
1 change: 1 addition & 0 deletions src/sst/core/event.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ class Event : public Activity
For links that are going to a sync, the delivery_info is used
on the remote side to send the event on the proper link. For
local links, delivery_info contains the delivery functor.
@return void
*/
inline void setDeliveryInfo(LinkId_t tag, uintptr_t delivery_info)
{
Expand Down
26 changes: 22 additions & 4 deletions src/sst/core/exit.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ class Exit : public Action
public:
/**
* Create a new ExitEvent
* @param sim - Simulation Object
* @param single_rank - True if there are no parallel ranks
* @param sim Simulation object
* @param single_rank True if there are no parallel ranks
*
* Exit needs to register a handler during constructor time, which
* requires a simulation object. But the simulation class creates
Expand All @@ -56,20 +56,38 @@ class Exit : public Action
bool refDec(ComponentId_t, uint32_t thread);

unsigned int getRefCount();
SimTime_t getEndTime() { return end_time; }
void setEndTime(SimTime_t time) { end_time = time; }

/** Gets the end time of the simulation
* @return Time when simulation ends
*/
SimTime_t getEndTime() { return end_time; }

/** Stores the time the simulation has ended
* @param time Current simulation time
* @return void
*/
void setEndTime(SimTime_t time) { end_time = time; }

/** Computes the end time of the simulation
* @return End time of the simulation
*/
SimTime_t computeEndTime();
void execute(void) override;
void check();

/**
* @param header String to preface the exit action log
* @param out SST Output logger object
* @return void
*/
void print(const std::string& header, Output& out) const override
{
out.output(
"%s Exit Action to be delivered at %" PRIu64 " with priority %d\n", header.c_str(), getDeliveryTime(),
getPriority());
}


unsigned int getGlobalCount() { return global_count; }

private:
Expand Down
17 changes: 13 additions & 4 deletions src/sst/core/linkPair.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ namespace SST {
class LinkPair
{
public:
/** Create a new LinkPair. This is used when the endpoints are in the same partition. */
/** Create a new LinkPair. This is used when the endpoints are in the same partition.
* @param order Value used to enforce the link order.
*/
LinkPair(LinkId_t order) : left(new Link(order)), right(new Link(order))
{
my_id = order;
Expand All @@ -32,7 +34,10 @@ class LinkPair
right->pair_link = left;
}

/** Create a new LinkPair. This is used when the endpoints are in different partitions. */
/** Create a new LinkPair. This is used when the endpoints are in different partitions.
* @param order Value used to enforce the link order.
* @param remote_tag Used to look up the correct link on the other side.
*/
LinkPair(LinkId_t order, LinkId_t remote_tag) : left(new Link(remote_tag)), right(new Link(order))
{
my_id = order;
Expand All @@ -43,10 +48,14 @@ class LinkPair

virtual ~LinkPair() {}

/** Return the Left Link */
/** Return the Left Link
* @return Left link
*/
inline Link* getLeft() { return left; }

/** Return the Right Link */
/** Return the Right Link
* @return Right link
*/
inline Link* getRight() { return right; }

private:
Expand Down
27 changes: 22 additions & 5 deletions src/sst/core/sstinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,22 @@ class SSTInfoConfig : public ConfigShared
/** Clears the current filter map */
void clearFilterMap() { m_filters.clear(); }

/** Return the filter map */
/** @return Filter map */
FilterMap_t& getFilterMap() { return m_filters; }

/** Return the bit field of various command line options enabled. */
/** @return Bit field of various command line options enabled. */
unsigned int getOptionBits() { return m_optionBits; }

/** Return the user defined path the XML File. */
/** @return User defined path the XML File. */
std::string& getXMLFilePath() { return m_XMLFilePath; }

/** Is debugging output enabled? */
/** @return True if the debugging output is enabled, otherwise False */
bool debugEnabled() const { return m_debugEnabled; }
/** @return True if the m_filter multimap is emtpy, otherwise False */
bool processAllElements() const { return m_filters.empty(); }
/** @return True if command line options are enabled and verbose configuration is valid, otherwise False */
bool doVerbose() const { return m_optionBits & CFG_VERBOSE; }
/** @return True if interactive is enabled, otherwise False */
bool interactiveEnabled() const { return m_interactive; }
void addFilter(const std::string& name);

Expand Down Expand Up @@ -191,10 +194,24 @@ class SSTLibraryInfo
/** Set filters based on search term */
void filterSearch(std::stringstream& outputStream, std::string tag, std::string searchTerm);

/** Filter output from info map*/
/** Filter output from info map
* @return True if the library filter is defined, otherwise False
*/
bool getFilter() { return m_libraryFilter; }
/**
* Clears the component filter and sets the internal library filter status
* @param libFilter
*/
void resetFilters(bool libFilter) { m_libraryFilter = libFilter, m_componentFilters.clear(); }
/**
* Sets the internal library filter status
* @param libFilter
*/
void setLibraryFilter(bool filter) { m_libraryFilter = filter; }
/**
* Adds the component filter string to the end of the internal vector of components
* @param component
*/
void setComponentFilter(std::string component) { m_componentFilters.push_back(component); }

template <class BaseType>
Expand Down
2 changes: 1 addition & 1 deletion src/sst/core/stringize.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ struct escaped_list_separator
{}

/**
* @return pair<iter, iter> = <tok_end, next_tok>
* Sets pair<iter, iter> = <tok_end, next_tok>
*/
void operator()(iter& first, iter last, std::string& token)
{
Expand Down
9 changes: 4 additions & 5 deletions src/sst/core/timeConverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,24 @@ class TimeConverter
public:
/**
Converts from the component's view to the core's view of time.
\param time time to convert to core time
@param time time to convert to core time
*/
SimTime_t convertToCoreTime(SimTime_t time) const { return time * factor; }

/**
Converts from the core's view to the components's view of time.
The result is truncated, not rounded.
\param time time to convert from core time
@param time time to convert from core time
*/
SimTime_t convertFromCoreTime(SimTime_t time) const { return time / factor; }

/**
* Return the factor used for conversions with Core Time
* @return The factor used for conversions with Core Time
*/
SimTime_t getFactor() const { return factor; }

/**
Return the period represented by this TimeConverter as a
UnitAlgebra
@return The period represented by this TimeConverter as a UnitAlgebra
*/
UnitAlgebra getPeriod() const; // Implemented in timeLord.cc

Expand Down
8 changes: 4 additions & 4 deletions src/sst/core/timeLord.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@ class TimeLord
TimeConverter* getTimeConverter(const UnitAlgebra& ts);

/**
* Return the Time Base of the TimeLord
* @return Time Base of the TimeLord
*/
UnitAlgebra getTimeBase() const { return timeBase; }

/** Return a TimeConverter which represents Nanoseconds */
/** @return TimeConverter which represents Nanoseconds */
TimeConverter* getNano() { return nano; }
/** Return a TimeConverter which represents Microseconds */
/** @return TimeConverter which represents Microseconds */
TimeConverter* getMicro() { return micro; }
/** Return a TimeConverter which represents Milliseconds */
/** @return TimeConverter which represents Milliseconds */
TimeConverter* getMilli() { return milli; }

/** Not a Public API.
Expand Down
22 changes: 12 additions & 10 deletions src/sst/core/unitAlgebra.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ class Units

// Non-static data members and functions
/** Create a new instantiation of a Units with a base unit string, and multiplier
* \param units String representing the new unit
* \param multiplier Value by which to multiply to get to this unit
* @param units String representing the new unit
* @param multiplier Value by which to multiply to get to this unit
*/
Units(const std::string& units, sst_big_num& multiplier);
Units() {}
Expand Down Expand Up @@ -120,8 +120,8 @@ class UnitAlgebra :
/**
Create a new UnitAlgebra instance, and pre-populate with a parsed value.

\param val Value to parse. It is of the following format:
\code
@param val Value to parse. It is of the following format:
@code
val := NUMBER( )?UNITS
NUMBER := (-)?[0-9]+(.[0-9]+)?
UNITS := UNITGROUP(/UNITGROUP)
Expand All @@ -130,7 +130,7 @@ class UnitAlgebra :
SIPREFIX := {a,f,p,n,u,m,[kKMGTPE]i?}
BASEUNIT := {s,B,b,events}
COMPUNIT := {Hz,hz,Bps,bps,event}
\endcode
@endcode
*/
UnitAlgebra(const std::string& val);
virtual ~UnitAlgebra();
Expand All @@ -139,21 +139,23 @@ class UnitAlgebra :
UnitAlgebra(const UnitAlgebra&) = default;

/** Print to an ostream the value
* \param precision Number of digits to print. Default is 6. <= 0 is full precision.
* @param stream Output stream
* @param precision Number of digits to print. Default is 6. <= 0 is full precision.
*/
void print(std::ostream& stream, int32_t precision = 6);
/** Print to an ostream the value
* Formats the number using SI-prefixes
* \param precision Number of digits to print. Default is 6. <= 0 is full precision.
* @param stream Output stream
* @param precision Number of digits to print. Default is 6. <= 0 is full precision.
*/
void printWithBestSI(std::ostream& stream, int32_t precision = 6);
/** Return a string representation of this value
* \param precision Number of digits to print. Default is 6. <= 0 is full precision.
* @param precision Number of digits to print. Default is 6. <= 0 is full precision.
*/
std::string toString(int32_t precision = 6) const;
/** Return a string representation of this value
* Formats the number using SI-prefixes
* \param precision Number of digits to print. Default is 6. <= 0 is full precision.
* @param precision Number of digits to print. Default is 6. <= 0 is full precision.
*/
std::string toStringBestSI(int32_t precision = 6) const;

Expand Down Expand Up @@ -220,7 +222,7 @@ class UnitAlgebra :
bool hasUnits(const std::string& u) const;
/** Return the raw value */
sst_big_num getValue() const { return value; }
/** Return the rounded value as a 64bit integer */
/** @return Rounded value as a 64bit integer */
int64_t getRoundedValue() const;
double getDoubleValue() const;
bool isValueZero() const;
Expand Down
Loading