summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMark Wenning <wenning@us.ibm.com>2012-02-08 21:52:02 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-02-17 17:42:45 -0600
commit8aaee89b88f8c7bc75aa51f6db9feb2d236682d3 (patch)
tree8fba41573cc44308838c799c29e54f80fe31d1dc /src/include
parent0b277c4e05ecee392779b81dab4d55405978d092 (diff)
downloadtalos-hostboot-8aaee89b88f8c7bc75aa51f6db9feb2d236682d3.tar.gz
talos-hostboot-8aaee89b88f8c7bc75aa51f6db9feb2d236682d3.zip
RTC36927 - Refactor targeting code
- branch hwaspredicate - change name to PredicateIsFunctional, move to targeting/predicates Change-Id: I726af4b5b1db4bbe5de56992539df01bd2dca593 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/657 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/targeting/predicates/predicateisfunctional.H102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/include/usr/targeting/predicates/predicateisfunctional.H b/src/include/usr/targeting/predicates/predicateisfunctional.H
new file mode 100644
index 000000000..7a3ad741c
--- /dev/null
+++ b/src/include/usr/targeting/predicates/predicateisfunctional.H
@@ -0,0 +1,102 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/targeting/predicates/predicateisfunctional.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2012
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#ifndef __PREDICATES_PREDICATEISFUNCTIONAL_H
+#define __PREDICATES_PREDICATEISFUNCTIONAL_H
+/**
+ * @file predicateisfunctional.H
+ *
+ * PredicateIsFunctional class, used to filter targets for HWP wrapper.
+ * From the example tutorial page at
+ * https://w3-connections.ibm.com/wikis/home?lang=en_US#/wiki/Host%20Boot/page/Target%20And%20Attribute%20Usage%20Guide
+ * :
+ * Create Custom Predicate
+ * Take the following predicate "template" and customize to your needs.
+ * Make sure to:
+ * 1) Rename the class in the appropriate places
+ * 2) Implement the operator() function which should return "true" if
+ * the given Target matches the predicate criteria, false otherwise
+ * 3) Add any input arguments to the constructor, and any necessary
+ * private variables to store state
+ * 4) Implement the destructor, if needed
+ * 5) Update documentation
+ *
+ * See example in src/include/usr/targeting/predicate/predicatectm.H
+ * (and usr/targeting/predicate/predicatectm.C)
+ *
+ */
+
+
+/******************************************************************************/
+// Includes
+/******************************************************************************/
+#include <stdint.h>
+
+// targeting support.
+#include <targeting/attributes.H>
+#include <targeting/entitypath.H>
+#include <targeting/target.H>
+#include <targeting/targetservice.H>
+#include <targeting/iterators/rangefilter.H>
+#include <targeting/predicates/predicatectm.H>
+
+
+namespace TARGETING
+{
+
+class PredicateIsFunctional : public PredicateBase
+{
+
+public:
+
+ /**
+ * @brief Create a predicate to select targets that
+ * are marked functional.
+ * Default (no parms) is to check for functional: assumption is that
+ * functional implies poweredOn, etc.
+ * More function will probably be added later.
+ *
+ */
+ PredicateIsFunctional( );
+
+
+ /**
+ * @brief Destroy the predicate
+ */
+ virtual ~PredicateIsFunctional();
+
+ /**
+ * @brief returns true if target is marked functional
+ *
+ */
+ inline bool operator()(
+ const TARGETING::Target* i_pTarget) const ;
+
+private:
+
+ TARG_DISABLE_COPY_AND_ASSIGNMENT_OPERATORS(PredicateIsFunctional);
+};
+
+}; // end namespace
+
+#endif
OpenPOWER on IntegriCloud