summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2015-06-24 08:35:28 +0200
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2015-06-24 08:35:28 +0200
commit5d616820226fd4047651307852b7e8e25b83aa3f (patch)
tree735aac8bf5e3d7ce4fc91ad0a31b718e1425fe81
parent1d4285325a5feeec927de1785fc7a9125f607fba (diff)
parent80dc8c465746f152b1654dc752ad0ba127c2b054 (diff)
Merge pull request #203 from RicoAntonioFelix/master
Enhanced and refactored file constant.h
-rw-r--r--include/argument.h4
-rw-r--r--include/classtype.h2
-rw-r--r--include/constant.h175
3 files changed, 119 insertions, 62 deletions
diff --git a/include/argument.h b/include/argument.h
index 747f7a8..f7fb782 100644
--- a/include/argument.h
+++ b/include/argument.h
@@ -1,5 +1,5 @@
/**
- * Argument.h
+ * @file argument.h
*
* Class holds information about an argument that is passed to a function.
* You'll need this class when you're defining your own functions.
@@ -25,7 +25,7 @@ public:
/**
* Destructor
*/
- virtual ~Argument() {}
+ virtual ~Argument() = default;
protected:
/**
diff --git a/include/classtype.h b/include/classtype.h
index 9b6cc9e..5128353 100644
--- a/include/classtype.h
+++ b/include/classtype.h
@@ -1,5 +1,5 @@
/**
- * ClassType.h
+ * @file classtype.h
*
* Internal class types enumeration.
*
diff --git a/include/constant.h b/include/constant.h
index 0f2b354..1397994 100644
--- a/include/constant.h
+++ b/include/constant.h
@@ -1,12 +1,13 @@
/**
- * Constant.h
+ * @file constant.h
*
* If you want to define global PHP constants, or class constants you can
* use this constant class for it. Wrap the constant you'd like to create
- * in a Php::Constant object and add it to the extension or the class:
+ * in a Php::Constant object and add it to the extension or the class.
*
- * extension.add(Php::Constant("CONSTANT_NAME", "value"));
- * myclass.add(Php::Constant("CLASS_CONSTANT", "value"));
+ * Examples:
+ * extension.add(Php::Constant("CONSTANT_NAME", "value"));
+ * myclass.add(Php::Constant("CLASS_CONSTANT", "value"));
*
* @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
* @copyright 2015 Copernica BV
@@ -28,64 +29,120 @@ class ConstantImpl;
class PHPCPP_EXPORT Constant
{
public:
- /**
- * Constructor
- * @param name Constant name
- * @param value Constant value
- * @param size Size of the value (in case of a string)
- */
- Constant(const char *name, std::nullptr_t value = nullptr);
- Constant(const char *name, bool value);
- Constant(const char *name, int32_t value);
- Constant(const char *name, int64_t value);
- Constant(const char *name, double value);
- Constant(const char *name, const char *value);
- Constant(const char *name, const char *value, size_t size);
- Constant(const char *name, const std::string &value);
-
- /**
- * Destructor
- */
- virtual ~Constant() {}
-
- /**
- * Add the constant to a class
- *
- * You normally do not have to call this method yourself. You can simply
- * do one of the following method calls to create class constants:
- *
- * myclass.property("MY_CONSTANT", "value", Php::Const);
- * myclass.constant("MY_CONSTANT", "value");
- * myclass.add(Php::Constant("MY_CONSTANT", "value"));
- *
- * All of the calls have the same result, it is up to you to decide which
- * one suits you most. If you use the last one - using a Php::Constant
- * class - the PHP-CPP library will call this "addTo()" method internally
- * to forward the call to one of the other methods.
- *
- * @param clss Class to which the constant is added
- * @internal
- */
- void addTo(ClassBase &clss) const;
+ /**
+ * Constructor to create a constant for a null value
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, std::nullptr_t value = nullptr);
+
+ /**
+ * Constructor to create a constant for a boolean value
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, bool value);
+
+ /**
+ * Constructor to create a constant for a 32-bit integer
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, int32_t value);
+
+ /**
+ * Constructor to create a constant for a 64-bit integer
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, int64_t value);
+
+ /**
+ * Constructor to create a constant for a double precision
+ * floating point number
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, double value);
+
+ /**
+ * Constructor to create a constant for a string literal
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, const char *value);
+
+ /**
+ * Constructor to create a constant for a string literal
+ * specifying the length of the string
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ * @param size Length of the string value
+ */
+ Constant(const char *name, const char *value, size_t size);
+
+ /**
+ * Constructor to create a constant for a string literal
+ * using a std::string
+ *
+ * @param name Constant's name
+ * @param value Constant's value
+ */
+ Constant(const char *name, const std::string &value);
+
+ /**
+ * Destructor
+ */
+ virtual ~Constant() = default;
+
+ /**
+ * Add the constant to a class
+ *
+ * You normally do not have to call this method yourself. You can simply
+ * do one of the following method calls to create class constants:
+ *
+ * myclass.property("MY_CONSTANT", "value", Php::Const);
+ * myclass.constant("MY_CONSTANT", "value");
+ * myclass.add(Php::Constant("MY_CONSTANT", "value"));
+ *
+ * All of the calls have the same result, it is up to you to decide which
+ * one suits you best. If you use the last one - using a Php::Constant
+ * class - the PHP-CPP library will call this "addTo()" method internally
+ * to forward the call to one of the other methods.
+ *
+ * @param clss Class to which the constant is added
+ * @internal
+ */
+ void addTo(ClassBase &clss) const;
private:
- /**
- * Pointer to the actual implementation of the constant
- * @var std::shared_ptr
- */
- std::shared_ptr<ConstantImpl> _impl;
-
- /**
- * Get access to the implementation object
- * @return std::shared_ptr
- */
- const std::shared_ptr<ConstantImpl> &implementation() const { return _impl; }
-
- /**
- * The extension object has access to privates
- */
- friend class ExtensionImpl;
+ /**
+ * Pointer to the actual implementation of the constant
+ *
+ * @var std::shared_ptr Pointer to the constant implementation containing
+ * distributed ownership properties
+ */
+ std::shared_ptr<ConstantImpl> _impl;
+
+ /**
+ * Get access to the implementation object
+ *
+ * @return std::shared_ptr Pointer to the constant implementation
+ */
+ const std::shared_ptr<ConstantImpl> &implementation() const
+ { return _impl; }
+ /**
+ * The extension object has access to privates
+ */
+ friend class ExtensionImpl;
};
/**