41 const std::shared_ptr<CHypo> &rhs)
const {
43 if (lhs->getTSort() < rhs->getTSort()) {
80 explicit CHypoList(
int numThreads = 1,
int sleepTime = 50,
81 int checkInterval = 300);
109 bool addHypo(std::shared_ptr<CHypo> hypo,
bool scheduleProcessing =
true,
122 bool associateData(std::shared_ptr<CPick> pk);
133 bool fitData(std::shared_ptr<CPick> pk);
147 bool associateData(std::shared_ptr<CCorrelation> corr);
152 void clear()
override;
168 bool receiveExternalMessage(std::shared_ptr<json::Object> com);
182 bool processHypo(std::shared_ptr<CHypo> hyp);
189 int getHypoProcessingQueueLength();
201 std::vector<std::weak_ptr<CHypo>> getHypos(
double t1,
double t2);
208 int getMaxAllowableHypoCount()
const;
215 int getCountOfTotalHyposProcessed()
const;
237 bool findAndMergeMatchingHypos(std::shared_ptr<CHypo> hyp);
248 int appendToHypoProcessingQueue(std::shared_ptr<CHypo> hyp);
258 std::shared_ptr<CHypo> getNextHypoFromProcessingQueue();
270 void removeHypo(std::shared_ptr<CHypo> hypo,
bool reportCancel =
true);
283 bool requestHypo(std::shared_ptr<json::Object> com);
300 bool resolveData(std::shared_ptr<CHypo> hypo,
bool allowStealing =
true);
307 void setMaxAllowableHypoCount(
int hypoMax);
332 static constexpr
double k_nHypoSearchPastDurationForPick = 3600;
340 void updatePosition(std::shared_ptr<CHypo> hyp);
346 void eraseFromMultiset(std::shared_ptr<CHypo> hyp);
352 std::atomic<int> m_iMaxAllowableHypoCount;
358 std::atomic<int> m_iCountOfTotalHyposProcessed;
365 std::list<std::weak_ptr<CHypo>> m_lHypoProcessingQueue;
370 std::mutex m_HypoProcessingQueueMutex;
376 std::multiset<std::shared_ptr<CHypo>,
HypoCompare> m_msHypoList;
382 std::map<std::string, std::shared_ptr<CHypo>> m_mHypo;
391 mutable std::recursive_mutex m_HypoListMutex;
397 static const int k_nMaxAllowableHypoCountDefault = 100;
402 static const unsigned int k_nNumberOfMergeAnnealIterations = 2000;
407 static constexpr
double k_dFinalMergeAnnealTimeStepSize = 0.01;
413 static constexpr
double k_dMergeStackImprovementRatio = 0.1;
418 static constexpr
double k_dMinimumRoundingProtectionRatio = 0.99;
423 static constexpr
double k_dExistingTimeTolerance = 5.0;
428 static constexpr
double k_dExistingDistanceTolerance = 0.5;
CHypoList comparison function.
Definition: HypoList.h:39
glasscore pick list class
Definition: PickList.h:62
WorkState
glass3::util::WorkState enumeration
Definition: workstate.h:25
glasscore hypocenter list class
Definition: HypoList.h:67
bool operator()(const std::shared_ptr< CHypo > &lhs, const std::shared_ptr< CHypo > &rhs) const
Definition: HypoList.h:40
The namespace containing the core algorithm.
Definition: Correlation.h:17
glass3::util::ThreadBaseClass class
Definition: threadbaseclass.h:34