rename doc macros

This commit is contained in:
2021-08-04 16:31:32 +03:00
parent 0c7ce272e6
commit 25def958a1
140 changed files with 963 additions and 983 deletions

View File

@@ -200,7 +200,7 @@ JAVADOC_AUTOBRIEF = NO
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
# requiring an explicit \brief command for a brief description.)
# requiring an explicit @brief command for a brief description.)
# The default value is: NO.
QT_AUTOBRIEF = NO

View File

@@ -1,5 +1,5 @@
/*! \file pifft_p.h
* \brief Class for FFT, IFFT and Hilbert transformations
/*! @file pifft_p.h
* @brief Class for FFT, IFFT and Hilbert transformations
*/
/*
PIP - Platform Independent Primitives

View File

@@ -20,7 +20,7 @@
#include "pibroadcast.h"
/** \class PIBroadcast
* \brief Broadcast for all interfaces, including loopback
* @brief Broadcast for all interfaces, including loopback
*
* \section PIBroadcast_synopsis Synopsis
* %PIBroadcast used as multichannel IO device. It can use

View File

@@ -23,7 +23,7 @@
#endif
/** \class PIEthUtilBase
* \brief Base class for ethernet utils
* @brief Base class for ethernet utils
*
* \section PIEthUtilBase_synopsis Synopsis
* %PIEthUtilBase provides crypt layer for derived classes:

View File

@@ -28,7 +28,7 @@
#endif
/** \class PIStreamPacker
* \brief Simple packet wrap aroud any PIIODevice
* @brief Simple packet wrap aroud any PIIODevice
*
* \section PIStreamPacker_synopsis Synopsis
* %PIStreamPacker provides simple pack/unpack logic for any data packets.

View File

@@ -1,5 +1,5 @@
/*! \file picloudbase.h
* \brief PICloud Base - Base class for PICloudClient and PICloud Server
/*! @file picloudbase.h
* @brief PICloud Base - Base class for PICloudClient and PICloud Server
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picloudclient.h
* \brief PICloud Client
/*! @file picloudclient.h
* @brief PICloud Client
*/
/*
PIP - Platform Independent Primitives
@@ -27,11 +27,12 @@
#include "piconditionvar.h"
//! @brief PICloudClient
class PIP_CLOUD_EXPORT PICloudClient: public PIIODevice, public PICloudBase
{
PIIODEVICE(PICloudClient)
public:
//! PICloudClient
explicit PICloudClient(const PIString & path = PIString(), PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);
virtual ~PICloudClient();

View File

@@ -1,5 +1,5 @@
/*! \file picloudserver.h
* \brief PICloud Server
/*! @file picloudserver.h
* @brief PICloud Server
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picloudtcp.h
* \brief PICloud TCP transport
/*! @file picloudtcp.h
* @brief PICloud TCP transport
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picodeinfo.h
* \brief C++ code info structs
/*! @file picodeinfo.h
* @brief C++ code info structs
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picodeparser.h
* \brief C++ code parser
/*! @file picodeparser.h
* @brief C++ code parser
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picompress.h
* \brief Compress class using zlib
/*! @file picompress.h
* @brief Compress class using zlib
*/
/*
PIP - Platform Independent Primitives

View File

@@ -25,7 +25,7 @@
#endif
/** \class PIKbdListener
* \brief Keyboard console input listener
* @brief Keyboard console input listener
* \details This class provide listening of console keyboard input.
* There is two ways to receive pressed key:
* * external static function with format "void func(char key, void * data_)"

View File

@@ -1,5 +1,5 @@
/*! \file pikbdlistener.h
* \brief Keyboard console input listener
/*! @file pikbdlistener.h
* @brief Keyboard console input listener
*/
/*
PIP - Platform Independent Primitives
@@ -181,20 +181,20 @@ public:
//! \{
//! \fn void enableExitCapture(int key = 'Q')
//! \brief Enable exit key "key" awaiting
//! @brief Enable exit key "key" awaiting
//! \fn void disableExitCapture()
//! \brief Disable exit key awaiting
//! @brief Disable exit key awaiting
//! \fn void setActive(bool yes = true)
//! \brief Set keyboard listening is active or not
//! @brief Set keyboard listening is active or not
//! \}
//! \events
//! \{
//! \fn void keyPressed(PIKbdListener::KeyEvent key, void * data)
//! \brief Raise on key "key" pressed, "data" is custom data
//! @brief Raise on key "key" pressed, "data" is custom data
//! \}

View File

@@ -1,5 +1,5 @@
/*! \file piscreen.h
* \brief Console GUI class
/*! @file piscreen.h
* @brief Console GUI class
*/
/*
PIP - Platform Independent Primitives
@@ -80,23 +80,23 @@ public:
//! \{
//! \fn void waitForFinish()
//! \brief block until finished (exit key will be pressed)
//! @brief block until finished (exit key will be pressed)
//! \fn void start(bool wait = false)
//! \brief Start console output and if "wait" block until finished (exit key will be pressed)
//! @brief Start console output and if "wait" block until finished (exit key will be pressed)
//! \fn void stop(bool clear = false)
//! \brief Stop console output and if "clear" clear the screen
//! @brief Stop console output and if "clear" clear the screen
//! \}
//! \events
//! \{
//! \fn void keyPressed(PIKbdListener::KeyEvent key, void * data)
//! \brief Raise on key "key" pressed, "data" is pointer to %PIConsole object
//! @brief Raise on key "key" pressed, "data" is pointer to %PIConsole object
//! \fn void tileEvent(PIScreenTile * tile, PIScreenTypes::TileEvent e)
//! \brief Raise on some event "e" from tile "tile"
//! @brief Raise on some event "e" from tile "tile"
//! \}

View File

@@ -1,5 +1,5 @@
/*! \file piscreenconsole.h
* \brief Tile for PIScreen with PIConsole API
/*! @file piscreenconsole.h
* @brief Tile for PIScreen with PIConsole API
*
* This file declares TileVars
*/

View File

@@ -1,5 +1,5 @@
/*! \file piscreendrawer.h
* \brief Drawer for PIScreen
/*! @file piscreendrawer.h
* @brief Drawer for PIScreen
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piscreentile.h
* \brief Basic PIScreen tile
/*! @file piscreentile.h
* @brief Basic PIScreen tile
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piscreentiles.h
* \brief Various tiles for PIScreen
/*! @file piscreentiles.h
* @brief Various tiles for PIScreen
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piscreentypes.h
* \brief Types for PIScreen
/*! @file piscreentypes.h
* @brief Types for PIScreen
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piterminal.h
* \brief Virtual terminal
/*! @file piterminal.h
* @brief Virtual terminal
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picontainers.h
* \brief Base for generic containers
/*! @file picontainers.h
* @brief Base for generic containers
*
* This file declare all containers and useful macros
* to use them
@@ -58,7 +58,7 @@
#ifdef DOXYGEN
/*!\brief Macro for iterate any container
/*!@brief Macro for iterate any container
* \details Use this macros instead of standard "for"
* to get read/write access to each element of container.
* Pass direction is direct \n
@@ -66,7 +66,7 @@
*/
# define piForeach(i,c)
/*!\brief Macro for iterate any container only for read
/*!@brief Macro for iterate any container only for read
* \details Use this macros instead of standard "for"
* to get read access to each element of container.
* Pass direction is direct \n
@@ -74,7 +74,7 @@
*/
# define piForeachC(i,c)
/*!\brief Macro for iterate any container with reverse direction
/*!@brief Macro for iterate any container with reverse direction
* \details Use this macros instead of standard "for"
* to get read/write access to each element of container.
* Pass direction is reverse \n
@@ -82,7 +82,7 @@
*/
# define piForeachR(i,c)
/*!\brief Macro for iterate any container only for read with reverse direction
/*!@brief Macro for iterate any container only for read with reverse direction
* \details Use this macros instead of standard "for"
* to get read access to each element of container.
* Pass direction is reverse \n

View File

@@ -1,5 +1,5 @@
/*! \file pideque.h
* \brief Dynamic array of any type
/*! @file pideque.h
* @brief Dynamic array of any type
*
* This file declares PIDeque
*/

View File

@@ -1,5 +1,5 @@
/** \class PIMap
* \brief Associative array
* @brief Associative array
* \details This class used to store Key = Value array of any
* type of data. \a value() returns value for key and leave map
* unchaged in any case. \a operator [] create entry in map if
@@ -9,97 +9,97 @@
* \a makeIterator() and \a makeReverseIterator().
* \fn PIMap::PIMap();
* \brief Contructs an empty map
* @brief Contructs an empty map
* \fn PIMap::PIMap(const PIMap & other);
* \brief Contructs a copy of "other"
* @brief Contructs a copy of "other"
* \fn PIMap & PIMap::operator =(const PIMap & other);
* \brief Copy operator
* @brief Copy operator
* \fn PIMap::PIMap(const PIMap & other);
* \brief Contructs a copy of "other"
* @brief Contructs a copy of "other"
* \fn PIMapIterator PIMap::makeIterator() const
* \brief Returns PIMapIterator for this map
* @brief Returns PIMapIterator for this map
* \fn PIMapIterator PIMap::makeReverseIterator() const
* \brief Returns reverse PIMapIterator for this map
* @brief Returns reverse PIMapIterator for this map
* \fn size_t PIMap::size() const
* \brief Returns entries count
* @brief Returns entries count
* \fn int PIMap::size_s() const
* \brief Returns entries count
* @brief Returns entries count
* \fn size_t PIMap::length() const
* \brief Returns entries count
* @brief Returns entries count
* \fn bool PIMap::isEmpty() const
* \brief Returns if map is empty
* @brief Returns if map is empty
* \fn T & PIMap::operator [](const Key & key)
* \brief Returns value for key "key". If there is no key in map, create one.
* @brief Returns value for key "key". If there is no key in map, create one.
* \fn const T PIMap::operator [](const Key & key) const
* \brief Returns value for key "key". If there is no key in map, returns default T().
* @brief Returns value for key "key". If there is no key in map, returns default T().
* \fn T & PIMap::at(const Key & key)
* \brief Equivalent to operator []
* @brief Equivalent to operator []
* \fn const T PIMap::at(const Key & key) const
* \brief Equivalent to operator []
* @brief Equivalent to operator []
* \fn PIMap & PIMap::operator <<(const PIMap & other)
* \brief Insert all etries of "other" to this map. Override existing values.
* @brief Insert all etries of "other" to this map. Override existing values.
* \fn bool PIMap::operator ==(const PIMap & t) const
* \brief Compare operator
* @brief Compare operator
* \fn bool PIMap::operator !=(const PIMap & t) const
* \brief Compare operator
* @brief Compare operator
* \fn bool PIMap::contains(const Key & key) const
* \brief Returns "true" if map contains entry with key "key"
* @brief Returns "true" if map contains entry with key "key"
* \fn PIMap & PIMap::reserve(size_t new_size)
* \brief Reserve space for "new_size" entries
* @brief Reserve space for "new_size" entries
* \fn PIMap & PIMap::removeOne(const Key & key)
* \brief Remove entry with key "key"
* @brief Remove entry with key "key"
* \fn PIMap & PIMap::remove(const Key & key)
* \brief Equivalent \a removeOne(key)
* @brief Equivalent \a removeOne(key)
* \fn PIMap & PIMap::erase(const Key & key)
* \brief Equivalent \a removeOne(key)
* @brief Equivalent \a removeOne(key)
* \fn PIMap & PIMap::clear()
* \brief Clear map
* @brief Clear map
* \fn void PIMap::swap(PIMap & other)
* \brief Swap map with "other"
* @brief Swap map with "other"
* \fn PIMap & PIMap::insert(const Key & key, const T & value)
* \brief Insert or rewrite entry with key "key" and value "value"
* @brief Insert or rewrite entry with key "key" and value "value"
* \fn const T PIMap::value(const Key & key, const T & default = T())
* \brief Returns value for key "key". If there is no key in map, returns "default".
* @brief Returns value for key "key". If there is no key in map, returns "default".
* \fn PIVector<T> PIMap::values() const
* \brief Returns all values as PIVector
* @brief Returns all values as PIVector
* \fn Key PIMap::key(const T & value, const Key & default = Key()) const
* \brief Returns key for first founded value "value". If there is no such value in map, returns "default".
* @brief Returns key for first founded value "value". If there is no such value in map, returns "default".
* \fn PIVector<Key> PIMap::keys() const
* \brief Returns all keys as PIVector
* @brief Returns all keys as PIVector
* */
@@ -107,7 +107,7 @@
/** \class PIMapIterator
* \brief Helper class to iterate over PIMap
* @brief Helper class to iterate over PIMap
* \details This class used to access keys and values in PIMap.
* You can use constructor to create iterator, or use \a PIMap::makeIterator()
* and \a PIMap::makeReverseIterator() methods.
@@ -164,24 +164,24 @@
* \endcode
* \fn PIMapIterator(const PIMap & map, bool reverse = false)
* \brief Contructs iterator for "map". Current position is invalid.
* @brief Contructs iterator for "map". Current position is invalid.
* \fn const Key & PIMapIterator::key() const
* \brief Returns current entry key
* @brief Returns current entry key
* \fn const T & PIMapIterator::value() const
* \brief Returns current entry value
* @brief Returns current entry value
* \fn T & PIMapIterator::valueRef() const
* \brief Returns reference to current entry value
* @brief Returns reference to current entry value
* \fn bool PIMapIterator::hasNext()
* \brief Returns if iterator can jump to next entry
* @brief Returns if iterator can jump to next entry
* \fn bool PIMapIterator::next()
* \brief Jump to next entry and return if new position is valid.
* @brief Jump to next entry and return if new position is valid.
* \fn void PIMapIterator::reset()
* \brief Reset iterator to initial position.
* @brief Reset iterator to initial position.
* */

View File

@@ -1,5 +1,5 @@
/*! \file pimap.h
* \brief Associative array with custom types of key and value
/*! @file pimap.h
* @brief Associative array with custom types of key and value
*
* This file declares PIMap
*/

View File

@@ -1,5 +1,5 @@
/*! \file pipair.h
* \brief pair
/*! @file pipair.h
* @brief pair
*
* This file declare PIPair
*/

View File

@@ -1,5 +1,5 @@
/*! \file pideque.h
* \brief Queue container
/*! @file pideque.h
* @brief Queue container
*
* This file declare PIQueue
*/

View File

@@ -1,5 +1,5 @@
/*! \file piset.h
* \brief Set container
/*! @file piset.h
* @brief Set container
*
* This file declare PISet
*/
@@ -27,7 +27,7 @@
#include "pimap.h"
/*! \brief Set of any type
/*! @brief Set of any type
* \details This class used to store collection of unique elements
* of any type. You can only add values to set with \a operator<< or
* with function \a insert(). You can discover if value already in
@@ -129,16 +129,16 @@ public:
};
//! \relatesalso PISet \brief Returns unite of two sets
//! \relatesalso PISet @brief Returns unite of two sets
template <typename T> PISet<T> operator +(const PISet<T> & v0, const PISet<T> & v1) {PISet<T> ret(v0); ret.unite(v1); return ret;}
//! \relatesalso PISet \brief Returns subtraction of two sets
//! \relatesalso PISet @brief Returns subtraction of two sets
template <typename T> PISet<T> operator -(const PISet<T> & v0, const PISet<T> & v1) {PISet<T> ret(v0); ret.subtract(v1); return ret;}
//! \relatesalso PISet \brief Returns unite of two sets
//! \relatesalso PISet @brief Returns unite of two sets
template <typename T> PISet<T> operator |(const PISet<T> & v0, const PISet<T> & v1) {PISet<T> ret(v0); ret.unite(v1); return ret;}
//! \relatesalso PISet \brief Returns intersetion of two sets
//! \relatesalso PISet @brief Returns intersetion of two sets
template <typename T> PISet<T> operator &(const PISet<T> & v0, const PISet<T> & v1) {PISet<T> ret(v0); ret.intersect(v1); return ret;}

View File

@@ -1,5 +1,5 @@
/*! \file pistack.h
* \brief Stack container
/*! @file pistack.h
* @brief Stack container
*
* This file declare PIStack
*/

View File

@@ -1,5 +1,5 @@
/** \class PIVector
* \brief Dynamic array of any type
* @brief Dynamic array of any type
* \details This class used to store dynamic array of any
* type of data. In memory data stored linear. You can insert
* item in any place of remove some items from any place.
@@ -9,162 +9,162 @@
* Contructs an empty vector
* \fn PIVector::PIVector(size_t size, const T & value = T());
* \brief Contructs vector with size "size" filled elements "value"
* @brief Contructs vector with size "size" filled elements "value"
* \details Example: \snippet picontainers.cpp PIVector::PIVector
* \fn PIVector::PIVector(std::initializer_list list);
* \brief Contructs vector from C++11 initializer list
* @brief Contructs vector from C++11 initializer list
* \details Example: \snippet picontainers.cpp PIVector::PIVector
* \fn const T & PIVector::at(size_t index) const;
* \brief Read-only access to element by index "index"
* @brief Read-only access to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::at_c
* \sa \a operator[]
* \fn T & PIVector::at(size_t index);
* \brief Full access to element by index "index"
* @brief Full access to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::at
* \sa \a operator[]
* \fn const T * PIVector::data(size_t index = 0) const;
* \brief Read-only pointer to element by index "index"
* @brief Read-only pointer to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::data_c
* \fn T * PIVector::data(size_t index = 0);
* \brief Pointer to element by index "index"
* @brief Pointer to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::data
* \fn size_t PIVector::size() const;
* \brief Elements count
* @brief Elements count
* \fn ssize_t PIVector::size_s() const;
* \brief Elements count
* @brief Elements count
* \fn bool PIVector::isEmpty() const;
* \brief Return \c "true" if vector is empty, i.e. size = 0
* @brief Return \c "true" if vector is empty, i.e. size = 0
* \fn bool PIVector::has(const T & t) const;
* \fn bool PIVector::contains(const T & v) const;
* \brief Return \c "true" if vector has at least one element equal "t"
* @brief Return \c "true" if vector has at least one element equal "t"
* \fn int PIVector::etries(const T & t) const;
* \brief Return how many times element "t" appears in vector
* @brief Return how many times element "t" appears in vector
* \fn ssize_t PIVector::indexOf(const T & t) const;
* \brief Return index of first element equal "t" or -1 if there is no such element
* @brief Return index of first element equal "t" or -1 if there is no such element
* \fn ssize_t PIVector::lastIndexOf(const T & t) const;
* \brief Return index of last element equal "t" or -1 if there is no such element
* @brief Return index of last element equal "t" or -1 if there is no such element
* \fn static int PIVector::compare_func(const T * t0, const T * t1);
* \brief Standard compare function for type "T". Return 0 if t0 = t1, -1 if t0 < t1 and 1 if t0 > t1.
* @brief Standard compare function for type "T". Return 0 if t0 = t1, -1 if t0 < t1 and 1 if t0 > t1.
* \fn void PIVector::resize(size_t size, const T & new_type = T());
* \brief Resize vector to size "size"
* @brief Resize vector to size "size"
* \details Elements removed from end of vector if new size < old size, or added new elements = "new_type" if new size > old size.\n
* Example: \snippet picontainers.cpp PIVector::resize
* \sa \a size(), \a clear()
* \fn PIVector & PIVector::enlarge(size_t size);
* \brief Increase vector size with "size" elements
* @brief Increase vector size with "size" elements
* \fn void PIVector::clear();
* \brief Clear vector. Equivalent to call <tt>"resize(0)"</tt>
* @brief Clear vector. Equivalent to call <tt>"resize(0)"</tt>
* \fn PIVector & PIVector::sort(CompareFunc compare = compare_func);
* \brief Sort vector using quick sort algorithm and standard compare function
* @brief Sort vector using quick sort algorithm and standard compare function
* \details Example: \snippet picontainers.cpp PIVector::sort_0
* With custom compare function: \snippet picontainers.cpp PIVector::sort_1
* \fn PIVector & PIVector::fill(const T & t);
* \brief Fill vector with elements "t" leave size is unchanged and return reference to vector
* @brief Fill vector with elements "t" leave size is unchanged and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::fill
* \fn PIVector & PIVector::assign(const T & t = T());
* \brief Synonym of \a fill(t)
* @brief Synonym of \a fill(t)
* \fn PIVector & PIVector::assign(size_t new_size, const T & t);
* \brief Resize to "new_size", then fill with "t"
* @brief Resize to "new_size", then fill with "t"
* \fn T & PIVector::back();
* \brief Last element of the vector
* @brief Last element of the vector
* \fn const T & PIVector::back() const;
* \brief Last element of the vector
* @brief Last element of the vector
* \fn T & PIVector::front();
* \brief First element of the vector
* @brief First element of the vector
* \fn const T & PIVector::front() const;
* \brief First element of the vector
* @brief First element of the vector
* \fn PIVector & PIVector::push_back(const T & t);
* \brief Add new element "t" at the end of vector and return reference to vector
* @brief Add new element "t" at the end of vector and return reference to vector
* \fn PIVector & PIVector::push_front(const T & t);
* \brief Add new element "t" at the beginning of vector and return reference to vector
* @brief Add new element "t" at the beginning of vector and return reference to vector
* \fn PIVector & PIVector::pop_back();
* \brief Remove one element from the end of vector and return reference to vector
* @brief Remove one element from the end of vector and return reference to vector
* \fn PIVector & PIVector::pop_front();
* \brief Remove one element from the beginning of vector and return reference to vector
* @brief Remove one element from the beginning of vector and return reference to vector
* \fn T PIVector::take_back();
* \brief Remove one element from the end of vector and return it
* @brief Remove one element from the end of vector and return it
* \fn T PIVector::take_front();
* \brief Remove one element from the beginning of vector and return it
* @brief Remove one element from the beginning of vector and return it
* \fn PIVector & PIVector::remove(size_t index);
* \brief Remove one element by index "index" and return reference to vector
* @brief Remove one element by index "index" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::remove_0
* \sa \a removeOne(), \a removeAll()
* \fn PIVector & PIVector::remove(size_t index, size_t count);
* \brief Remove "count" elements by first index "index" and return reference to vector
* @brief Remove "count" elements by first index "index" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::remove_1
* \sa \a removeOne(), \a removeAll()
* \fn PIVector & PIVector::removeOne(const T & v);
* \brief Remove no more than one element equal "v" and return reference to vector
* @brief Remove no more than one element equal "v" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::removeOne
* \sa \a remove(), \a removeAll()
* \fn PIVector & PIVector::removeAll(const T & v);
* \brief Remove all elements equal "v" and return reference to vector
* @brief Remove all elements equal "v" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::removeAll
* \sa \a remove(), \a removeOne()
* \fn PIVector & PIVector::insert(size_t pos, const T & t);
* \brief Insert element "t" after index "pos" and return reference to vector
* @brief Insert element "t" after index "pos" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::insert_0
* \fn PIVector & PIVector::insert(size_t pos, const PIVector & t);
* \brief Insert other vector "t" after index "pos" and return reference to vector
* @brief Insert other vector "t" after index "pos" and return reference to vector
* \details Example: \snippet picontainers.cpp PIVector::insert_1
* \fn T & PIVector::operator [](size_t index);
* \brief Full access to element by index "index"
* @brief Full access to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::()
* \sa \a at()
* \fn const T & PIVector::operator [](size_t index) const;
* \brief Read-only access to element by index "index"
* @brief Read-only access to element by index "index"
* \details Example: \snippet picontainers.cpp PIVector::()_c
* \sa \a at()
* \fn PIVector & PIVector::operator <<(const T & t);
* \brief Add new element "t" at the end of vector and return reference to vector
* @brief Add new element "t" at the end of vector and return reference to vector
* \fn PIVector & PIVector::operator <<(const PIVector & t);
* \brief Add vector "t" at the end of vector and return reference to vector
* @brief Add vector "t" at the end of vector and return reference to vector
* \fn bool PIVector::operator ==(const PIVector & t);
* \brief Compare with vector "t"
* @brief Compare with vector "t"
* \fn bool PIVector::operator !=(const PIVector & t);
* \brief Compare with vector "t"
* @brief Compare with vector "t"
* */

View File

@@ -1,5 +1,5 @@
/*! \file pivector.h
* \brief Dynamic array of any type
/*! @file pivector.h
* @brief Dynamic array of any type
*
* This file declares PIVector
*/

View File

@@ -1,5 +1,5 @@
/*! \file pivector2d.h
* \brief 2D wrapper around PIVector
/*! @file pivector2d.h
* @brief 2D wrapper around PIVector
*
* This file declares PIVector
*/
@@ -27,7 +27,7 @@
#include "pivector.h"
/*! \brief 2D array,
/*! @brief 2D array,
* \details This class used to store 2D array of any type elements as plain vector.
* You can read/write any element via operators [][], first dimension - row, second - column.
* The first dimension is Row, and you can operate with Row as PIVector<T>: modify any element, assign to another Row and etc.

View File

@@ -1,5 +1,5 @@
/*! \file pibase.h
* \brief Base types and functions
/*! @file pibase.h
* @brief Base types and functions
*
* This file implements first layer above the system and
* declares some basic useful functions
@@ -106,6 +106,9 @@
//! Macro to access private section by pointer
# define PRIVATE
//! Macro to access private section by pointer without brakes ()
# define PRIVATEWB
//! Macro to start static initializer
# define STATIC_INITIALIZER_BEGIN
@@ -113,7 +116,7 @@
# define STATIC_INITIALIZER_END
#endif
#endif //DOXYGEN
#include <functional>
@@ -220,6 +223,7 @@
// Private data macros
#ifndef DOXYGEN
#define PRIVATE_DECLARATION(e) \
struct __Private__; \
@@ -246,6 +250,7 @@
#define PRIVATE (__privateinitializer__.p)
#define PRIVATEWB __privateinitializer__.p
#endif //DOXYGEN
#define NO_COPY_CLASS(name) \
name(const name&) = delete; \
@@ -301,11 +306,11 @@ typedef unsigned long long ullong;
typedef long long llong;
typedef long double ldouble;
/*! \brief Templated function for swap two values
/*! @brief Templated function for swap two values
* \details Example:\n \snippet piincludes.cpp swap */
template<typename T> inline void piSwap(T & f, T & s) {T t(std::move(f)); f = std::move(s); s = std::move(t);}
/*! \brief Templated function for swap two values without "="
/*! @brief Templated function for swap two values without "="
* \details Example:\n \snippet piincludes.cpp swapBinary */
template<typename T> inline void piSwapBinary(T & f, T & s) {
if ((size_t*)&f == (size_t*)&s) return;
@@ -341,7 +346,7 @@ template<> inline void piSwapBinary(const void *& f, const void *& s) {
}
/*! \brief Function for compare two values without "=" by raw content
/*! @brief Function for compare two values without "=" by raw content
* \details Example:\n \snippet piincludes.cpp compareBinary */
inline bool piCompareBinary(const void * f, const void * s, size_t size) {
for (size_t i = 0; i < size; ++i)
@@ -350,7 +355,7 @@ inline bool piCompareBinary(const void * f, const void * s, size_t size) {
return true;
}
/*! \brief Templated function return round of float falue
/*! @brief Templated function return round of float falue
* \details Round is the nearest integer value \n
* There are some macros:
* - \c piRoundf for "float"
@@ -360,7 +365,7 @@ inline bool piCompareBinary(const void * f, const void * s, size_t size) {
* \snippet piincludes.cpp round */
template<typename T> inline constexpr int piRound(const T & v) {return int(v >= T(0.) ? v + T(0.5) : v - T(0.5));}
/*! \brief Templated function return floor of float falue
/*! @brief Templated function return floor of float falue
* \details Floor is the largest integer that is not greater than value \n
* There are some macros:
* - \c piFloorf for "float"
@@ -370,7 +375,7 @@ template<typename T> inline constexpr int piRound(const T & v) {return int(v >=
* \snippet piincludes.cpp floor */
template<typename T> inline constexpr int piFloor(const T & v) {return v < T(0) ? int(v) - 1 : int(v);}
/*! \brief Templated function return ceil of float falue
/*! @brief Templated function return ceil of float falue
* \details Ceil is the smallest integer that is not less than value \n
* There are some macros:
* - \c piCeilf for "float"
@@ -380,7 +385,7 @@ template<typename T> inline constexpr int piFloor(const T & v) {return v < T(0)
* \snippet piincludes.cpp ceil */
template<typename T> inline constexpr int piCeil(const T & v) {return v < T(0) ? int(v) : int(v) + 1;}
/*! \brief Templated function return absolute of numeric falue
/*! @brief Templated function return absolute of numeric falue
* \details Absolute is the positive or equal 0 value \n
* There are some macros:
* - \c piAbss for "short"
@@ -394,7 +399,7 @@ template<typename T> inline constexpr int piCeil(const T & v) {return v < T(0) ?
* \snippet piincludes.cpp abs */
template<typename T> inline constexpr T piAbs(const T & v) {return (v >= T(0) ? v : -v);}
/*! \brief Templated function return minimum of two values
/*! @brief Templated function return minimum of two values
* \details There are some macros:
* - \c piMins for "short"
* - \c piMini for "int"
@@ -407,7 +412,7 @@ template<typename T> inline constexpr T piAbs(const T & v) {return (v >= T(0) ?
* \snippet piincludes.cpp min2 */
template<typename T> inline constexpr T piMin(const T & f, const T & s) {return ((f > s) ? s : f);}
/*! \brief Templated function return minimum of tree values
/*! @brief Templated function return minimum of tree values
* \details There are some macros:
* - \c piMins for "short"
* - \c piMini for "int"
@@ -420,7 +425,7 @@ template<typename T> inline constexpr T piMin(const T & f, const T & s) {return
* \snippet piincludes.cpp min3 */
template<typename T> inline constexpr T piMin(const T & f, const T & s, const T & t) {return ((f < s && f < t) ? f : ((s < t) ? s : t));}
/*! \brief Templated function return maximum of two values
/*! @brief Templated function return maximum of two values
* \details There are some macros:
* - \c piMaxs for "short"
* - \c piMaxi for "int"
@@ -433,7 +438,7 @@ template<typename T> inline constexpr T piMin(const T & f, const T & s, const T
* \snippet piincludes.cpp max2 */
template<typename T> inline constexpr T piMax(const T & f, const T & s) {return ((f < s) ? s : f);}
/*! \brief Templated function return maximum of tree values
/*! @brief Templated function return maximum of tree values
* \details There are some macros:
* - \c piMaxs for "short"
* - \c piMaxi for "int"
@@ -446,7 +451,7 @@ template<typename T> inline constexpr T piMax(const T & f, const T & s) {return
* \snippet piincludes.cpp max3 */
template<typename T> inline constexpr T piMax(const T & f, const T & s, const T & t) {return ((f > s && f > t) ? f : ((s > t) ? s : t));}
/*! \brief Templated function return clamped value
/*! @brief Templated function return clamped value
* \details Clamped is the not greater than "max" and not lesser than "min" value \n
* There are some macros:
* - \c piClamps for "short"
@@ -466,10 +471,10 @@ inline void piLetobe(void * data, int size) {
piSwap<uchar>(((uchar*)data)[size - i - 1], ((uchar*)data)[i]);
}
/// \brief Templated function that inverse byte order of value "v"
/// @brief Templated function that inverse byte order of value "v"
template<typename T> inline void piLetobe(T * v) {piLetobe(v, sizeof(T));}
/*! \brief Templated function that returns "v" with inversed byte order
/*! @brief Templated function that returns "v" with inversed byte order
* \details This function used to convert values between little and big endian \n
* There are some macros:
* - \c piLetobes for "ushort"
@@ -495,7 +500,7 @@ template<> inline float piLetobe(const float & v) {
return a.f;
}
/// \brief Generic hash function, implements murmur3/32 algorithm
/// @brief Generic hash function, implements murmur3/32 algorithm
inline uint piHashData(const uchar * data, uint len, uint seed = 0) {
if (!data || len <= 0) return 0u;
uint h = seed;

View File

@@ -1,5 +1,5 @@
/*! \file pibitarray.h
* \brief Bit array
/*! @file pibitarray.h
* @brief Bit array
*/
/*
PIP - Platform Independent Primitives

View File

@@ -21,42 +21,6 @@
#include "pistringlist.h"
#include <iostream>
/*! \class PIByteArray
* \brief Byte array
* \details This class based on PIDeque<uchar> and provide some handle function
* to manipulate it.
*
* \section PIByteArray_sec0 Usage
* %PIByteArray can be used to store custom data and manipulate it. There are many
* stream operators to store/restore common types to byte array. Store operators
* places data at the end of array, restore operators takes data from the beginning
* of array.
* In addition there are Base 64 convertions and checksums:
* * plain 8-bit
* * plain 32-bit
*
* One of the major usage of %PIByteArray is stream functions. You can form binary
* packet from many types (also dynamic types, e.g. PIVector) with one line:
* \snippet pibytearray.cpp 0
*
* Or you can descibe stream operator of your own type and store/restore vectors of
* your type:
* \snippet pibytearray.cpp 1
*
* For store/restore custom data blocks there is PIByteArray::RawData class. Stream
* operators of this class simply store/restore data block to/from byte array.
* \snippet pibytearray.cpp 2
*
* \section PIByteArray_sec1 Attention
* Stream operator of %PIByteArray store byte array as vector, not simply append
* content of byte array. This operators useful to transmit custom data as %PIByteArray
* packed into parent byte array, e.g. to form packet from %PIByteArray.
* To append one byte array to another use funtion \a append().
* \snippet pibytearray.cpp 3
*
*
*/
static const uchar base64Table[64] = {
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,

View File

@@ -1,5 +1,5 @@
/*! \file pibytearray.h
* \brief Byte array
/*! @file pibytearray.h
* @brief Byte array
*/
/*
PIP - Platform Independent Primitives
@@ -37,12 +37,45 @@
class PIString;
class PIByteArray;
/*! \brief The PIByteArray class provides an array of bytes
* \details PIByteArray used to store raw bytes.
/*! @class PIByteArray
* @brief The PIByteArray class provides an array of bytes
* @details PIByteArray used to store raw bytes.
* It can be constructed from any data and size.
* You can use PIByteArray as binary stream
* to serialize/deserialize any objects and data.
* This class based on PIDeque<uchar> and provide some handle function
* to manipulate it.
*
* @section PIByteArray_sec0 Usage
* %PIByteArray can be used to store custom data and manipulate it. There are many
* stream operators to store/restore common types to byte array. Store operators
* places data at the end of array, restore operators takes data from the beginning
* of array.
* In addition there are Hex and Base64 convertions
*
* One of the major usage of %PIByteArray is stream functions. You can form binary
* packet from many types (also dynamic types, e.g. PIVector) with one line:
* @snippet pibytearray.cpp 0
*
* Or you can descibe stream operator of your own type and store/restore vectors of
* your type:
* @snippet pibytearray.cpp 1
*
* For store/restore custom data blocks there is PIByteArray::RawData class. Stream
* operators of this class simply store/restore data block to/from byte array.
* @snippet pibytearray.cpp 2
*
* @section PIByteArray_sec1 Attention
* Stream operator of %PIByteArray store byte array as vector, not simply append
* content of byte array. This operators useful to transmit custom data as %PIByteArray
* packed into parent byte array, e.g. to form packet from %PIByteArray.
* To append one byte array to another use funtion \a append().
* @snippet pibytearray.cpp 3
*
*
*/
class PIP_EXPORT PIByteArray: public PIDeque<uchar>
{
public:
@@ -154,7 +187,7 @@ public:
};
//! \relatesalso PIByteArray \brief Byte arrays compare operator
//! \relatesalso PIByteArray @brief Byte arrays compare operator
inline bool operator <(const PIByteArray & v0, const PIByteArray & v1) {
if (v0.size() == v1.size()) {
for (uint i = 0; i < v0.size(); ++i)
@@ -165,7 +198,7 @@ inline bool operator <(const PIByteArray & v0, const PIByteArray & v1) {
return v0.size() < v1.size();
}
//! \relatesalso PIByteArray \brief Byte arrays compare operator
//! \relatesalso PIByteArray @brief Byte arrays compare operator
inline bool operator ==(PIByteArray & f, PIByteArray & s) {
if (f.size_s() != s.size_s())
return false;
@@ -175,7 +208,7 @@ inline bool operator ==(PIByteArray & f, PIByteArray & s) {
return true;
}
//! \relatesalso PIByteArray \brief Byte arrays compare operator
//! \relatesalso PIByteArray @brief Byte arrays compare operator
inline bool operator !=(PIByteArray & f, PIByteArray & s) {
if (f.size_s() != s.size_s())
return true;
@@ -186,11 +219,11 @@ inline bool operator !=(PIByteArray & f, PIByteArray & s) {
}
#ifdef PIP_STD_IOSTREAM
//! \relatesalso PIByteArray \brief Output to std::ostream operator
//! \relatesalso PIByteArray @brief Output to std::ostream operator
inline std::ostream & operator <<(std::ostream & s, const PIByteArray & ba);
#endif
//! \relatesalso PIByteArray \brief Output to PICout operator
//! \relatesalso PIByteArray @brief Output to PICout operator
PIP_EXPORT PICout operator <<(PICout s, const PIByteArray & ba);
@@ -199,16 +232,16 @@ PIP_EXPORT PICout operator <<(PICout s, const PIByteArray & ba);
// store operators for basic types
//! \relatesalso PIByteArray \brief Store operator
//! \relatesalso PIByteArray @brief Store operator
inline PIByteArray & operator <<(PIByteArray & s, const bool v) {s.push_back(v); return s;}
//! \relatesalso PIByteArray \brief Store operator
//! \relatesalso PIByteArray @brief Store operator
inline PIByteArray & operator <<(PIByteArray & s, const char v) {s.push_back(v); return s;}
//! \relatesalso PIByteArray \brief Store operator
//! \relatesalso PIByteArray @brief Store operator
inline PIByteArray & operator <<(PIByteArray & s, const uchar v) {s.push_back(v); return s;}
//! \relatesalso PIByteArray \brief Store operator for any trivial copyable type
//! \relatesalso PIByteArray @brief Store operator for any trivial copyable type
template<typename T, typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray::StreamRef operator <<(PIByteArray & s, const T & v) {
int os = s.size_s();
@@ -217,10 +250,10 @@ inline PIByteArray::StreamRef operator <<(PIByteArray & s, const T & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator, see \ref PIByteArray_sec1 for details
//! \relatesalso PIByteArray @brief Store operator, see \ref PIByteArray_sec1 for details
PIP_EXPORT PIByteArray & operator <<(PIByteArray & s, const PIByteArray & v);
//! \relatesalso PIByteArray \brief Store operator, see \ref PIByteArray_sec1 for details
//! \relatesalso PIByteArray @brief Store operator, see \ref PIByteArray_sec1 for details
inline PIByteArray & operator <<(PIByteArray & s, const PIByteArray::RawData & v) {
int os = s.size_s();
if (v.s > 0) {
@@ -230,7 +263,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIByteArray::RawData & v
return s;
}
//! \relatesalso PIByteArray \brief Store operator for PIVector of any trivial copyable type
//! \relatesalso PIByteArray @brief Store operator for PIVector of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -252,7 +285,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIVector<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator for PIDeque of any trivial copyable type
//! \relatesalso PIByteArray @brief Store operator for PIDeque of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -274,7 +307,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIDeque<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator for PIVector2D of any trivial copyable type
//! \relatesalso PIByteArray @brief Store operator for PIVector2D of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -295,10 +328,10 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIVector2D<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator
//! \relatesalso PIByteArray @brief Store operator
inline PIByteArray & operator <<(PIByteArray & s, const PIBitArray & v) {s << v.size_ << v.data_; return s;}
//! \relatesalso PIPair \brief Store operator
//! \relatesalso PIPair @brief Store operator
template<typename Type0, typename Type1>
inline PIByteArray & operator <<(PIByteArray & s, const PIPair<Type0, Type1> & v) {s << v.first << v.second; return s;}
@@ -308,16 +341,16 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIPair<Type0, Type1> & v
// restore operators for basic types
//! \relatesalso PIByteArray \brief Restore operator
//! \relatesalso PIByteArray @brief Restore operator
inline PIByteArray & operator >>(PIByteArray & s, bool & v) {assert(s.size() >= 1u); v = s.take_front(); return s;}
//! \relatesalso PIByteArray \brief Restore operator
//! \relatesalso PIByteArray @brief Restore operator
inline PIByteArray & operator >>(PIByteArray & s, char & v) {assert(s.size() >= 1u); v = s.take_front(); return s;}
//! \relatesalso PIByteArray \brief Restore operator
//! \relatesalso PIByteArray @brief Restore operator
inline PIByteArray & operator >>(PIByteArray & s, uchar & v) {assert(s.size() >= 1u); v = s.take_front(); return s;}
//! \relatesalso PIByteArray \brief Restore operator for any trivial copyable type
//! \relatesalso PIByteArray @brief Restore operator for any trivial copyable type
template<typename T, typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray::StreamRef operator >>(PIByteArray & s, T & v) {
if (s.size() < sizeof(v)) {
@@ -329,10 +362,10 @@ inline PIByteArray::StreamRef operator >>(PIByteArray & s, T & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator, see \ref PIByteArray_sec1 for details
//! \relatesalso PIByteArray @brief Restore operator, see \ref PIByteArray_sec1 for details
PIP_EXPORT PIByteArray & operator >>(PIByteArray & s, PIByteArray & v);
//! \relatesalso PIByteArray \brief Restore operator, see \ref PIByteArray_sec1 for details
//! \relatesalso PIByteArray @brief Restore operator, see \ref PIByteArray_sec1 for details
inline PIByteArray & operator >>(PIByteArray & s, PIByteArray::RawData v) {
if (s.size_s() < v.s) {
printf("error with RawData %d < %d\n", (int)s.size_s(), v.s);
@@ -345,7 +378,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIByteArray::RawData v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator for PIVector of any trivial copyable type
//! \relatesalso PIByteArray @brief Restore operator for PIVector of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -376,7 +409,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIVector<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator for PIDeque of any trivial copyable type
//! \relatesalso PIByteArray @brief Restore operator for PIDeque of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -407,7 +440,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIDeque<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator for PIVector2D of any trivial copyable type
//! \relatesalso PIByteArray @brief Restore operator for PIVector2D of any trivial copyable type
template<typename T,
typename std::enable_if< std::is_trivially_copyable<T>::value, int>::type = 0,
typename std::enable_if< std::is_same<decltype(std::declval<PIByteArray&>() << std::declval<const T &>()), PIByteArray::StreamRef>::value, int>::type = 0>
@@ -440,10 +473,10 @@ inline PIByteArray & operator >>(PIByteArray & s, PIVector2D<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator
//! \relatesalso PIByteArray @brief Restore operator
inline PIByteArray & operator >>(PIByteArray & s, PIBitArray & v) {assert(s.size_s() >= 8); s >> v.size_ >> v.data_; return s;}
//! \relatesalso PIPair \brief Restore operator
//! \relatesalso PIPair @brief Restore operator
template<typename Type0, typename Type1>
inline PIByteArray & operator >>(PIByteArray & s, PIPair<Type0, Type1> & v) {s >> v.first >> v.second; return s;}
@@ -453,7 +486,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIPair<Type0, Type1> & v) {s >
// store operators for complex types
//! \relatesalso PIByteArray \brief Store operator for PIVector of any compound type
//! \relatesalso PIByteArray @brief Store operator for PIVector of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator <<(PIByteArray & s, const PIVector<T> & v) {
s << int(v.size_s());
@@ -461,7 +494,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIVector<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator for PIDeque of any compound type
//! \relatesalso PIByteArray @brief Store operator for PIDeque of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator <<(PIByteArray & s, const PIDeque<T> & v) {
s << int(v.size_s());
@@ -469,7 +502,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIDeque<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Store operator for PIVector2D of any compound type
//! \relatesalso PIByteArray @brief Store operator for PIVector2D of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator <<(PIByteArray & s, const PIVector2D<T> & v) {
s << int(v.rows()) << int(v.cols()) << v.toPlainVector();
@@ -482,7 +515,7 @@ inline PIByteArray & operator <<(PIByteArray & s, const PIVector2D<T> & v) {
// restore operators for complex types
//! \relatesalso PIByteArray \brief Restore operator for PIVector of any compound type
//! \relatesalso PIByteArray @brief Restore operator for PIVector of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator >>(PIByteArray & s, PIVector<T> & v) {
if (s.size_s() < 4) {
@@ -495,7 +528,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIVector<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator for PIDeque of any compound type
//! \relatesalso PIByteArray @brief Restore operator for PIDeque of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator >>(PIByteArray & s, PIDeque<T> & v) {
if (s.size_s() < 4) {
@@ -508,7 +541,7 @@ inline PIByteArray & operator >>(PIByteArray & s, PIDeque<T> & v) {
return s;
}
//! \relatesalso PIByteArray \brief Restore operator for PIVector2D of any compound type
//! \relatesalso PIByteArray @brief Restore operator for PIVector2D of any compound type
template<typename T, typename std::enable_if<!std::is_trivially_copyable<T>::value, int>::type = 0>
inline PIByteArray & operator >>(PIByteArray & s, PIVector2D<T> & v) {
if (s.size_s() < 8) {

View File

@@ -1,5 +1,5 @@
/*! \file pichar.h
* \brief Unicode char
/*! @file pichar.h
* @brief Unicode char
*/
/*
PIP - Platform Independent Primitives
@@ -46,7 +46,7 @@ char * __utf8name__ = 0;
#endif
/*! \class PIChar
* \brief Unicode char
* @brief Unicode char
* \details This class is wrapper around \c "uint".
* There are many contructors and information functions
*/

View File

@@ -1,5 +1,5 @@
/*! \file pichar.h
* \brief Unicode char
/*! @file pichar.h
* @brief Unicode char
*/
/*
PIP - Platform Independent Primitives

View File

@@ -20,7 +20,7 @@
#include "pichunkstream.h"
/*! \class PIChunkStream
* \brief Class for binary serialization
* @brief Class for binary serialization
*
* \section PIChunkStream_sec0 Synopsis
* This class provides very handly mechanism to store and restore values to and from

View File

@@ -1,5 +1,5 @@
/*! \file pichunkstream.h
* \brief Binary markup serializator
/*! @file pichunkstream.h
* @brief Binary markup serializator
*/
/*
PIP - Platform Independent Primitives

View File

@@ -22,7 +22,7 @@
/*! \class PICLI
* \brief Command-line arguments parser
* @brief Command-line arguments parser
*
* \section PICLI_sec0 Synopsis
* This class provide handy parsing of command-line arguments. First you should add

View File

@@ -1,5 +1,5 @@
/*! \file picli.h
* \brief Command-Line parser
/*! @file picli.h
* @brief Command-Line parser
*/
/*
PIP - Platform Independent Primitives

View File

@@ -21,7 +21,7 @@
/** \class PICollection
* \brief Interface to discover element groups
* @brief Interface to discover element groups
* \details
* \section PICollection_sec0 Synopsis
* This class has only static functions so no need to create instance of the

View File

@@ -1,5 +1,5 @@
/*! \file picollection.h
* \brief Custom elements collection
/*! @file picollection.h
* @brief Custom elements collection
*/
/*
PIP - Platform Independent Primitives
@@ -27,7 +27,7 @@
#ifdef DOXYGEN
/** \brief Add existing element "object" in group with name "group"
/** @brief Add existing element "object" in group with name "group"
* \relatesalso PICollection
* \details If there is no group with name "group" it will be created.
* Only one element of the class "object" can be in group "group". If
@@ -35,7 +35,7 @@
* be pointer to object based on PIObject. */
# define ADD_TO_COLLECTION(group, object)
/** \brief Add new element of class "class" in group with name "group"
/** @brief Add new element of class "class" in group with name "group"
* \relatesalso PICollection
* \details If there is no group with name "group" it will be created.
* Only one element of the class "class" can be in group "group". If
@@ -65,10 +65,10 @@ class PIP_EXPORT PICollection
public:
PICollection() {;}
//! \brief Returns all existing groups by their names
//! @brief Returns all existing groups by their names
static PIStringList groups();
//! \brief Returns all elements of group "group"
//! @brief Returns all elements of group "group"
static PIVector<const PIObject * > groupElements(const PIString & group);
static bool addToGroup(const PIString & group, const PIObject * element);

View File

@@ -28,42 +28,6 @@
# define COMMON_LVB_UNDERSCORE 0x8000
#endif
/*! \class PICout
* \brief Class for formatted output similar std::cout
*
* \section PICout_sec0 Synopsis
* This class provide many stream operators for output with some features.
* Output to PICout is thread-sequential, i.e. doesn`t mixed from parallel
* threads.
*
* \section PICout_sec1 Features
* - insertion spaces between entries
* - insertion new line at the end of output
* - strings are quoted
* - custom output operator can be easily written
*
* \section PICout_ex0 Usage
* \snippet picout.cpp 0
*
* \section PICout_ex1 Writing your own output operator
* \snippet picout.cpp own
*/
/*! \class PICout::Notifier
* \brief Class for emit notifications of PICout
*
* \section PICout_sec0 Synopsis
* This class used as PICout events emitter. When
* PICout constructs with external PIString* buffer
* and some id, last copy of this PICout on delete
* emit event "finished()" on object Notifier::object().
* Sample:
* \snippet picout.cpp notifier
*/
class NotifierObject: public PIObject {
PIOBJECT(NotifierObject)

View File

@@ -1,5 +1,5 @@
/*! \file picout.h
* \brief Universal output to console class
/*! @file picout.h
* @brief Universal output to console class
*/
/*
PIP - Platform Independent Primitives
@@ -27,10 +27,10 @@
#ifdef DOXYGEN
//! \brief Macro used for conditional (piDebug) output to PICout
//! @brief Macro used for conditional (piDebug) output to PICout
# define piCout
//! \relatesalso PIObject \brief Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject
//! \relatesalso PIObject @brief Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject
# define piCoutObj
#else
@@ -42,10 +42,10 @@
class PIObject;
//! \brief Namespace contains enums controlled PICout
//! @brief Namespace contains enums controlled PICout
namespace PICoutManipulators {
//! \brief Enum contains special characters
//! @brief Enum contains special characters
enum PICoutSpecialChar {
Null /*! Null-character, '\\0' */,
NewLine /*! New line character, '\\n' */,
@@ -54,7 +54,7 @@ namespace PICoutManipulators {
Quote /*! Quote character, '"' */
};
//! \brief Enum contains immediate action
//! @brief Enum contains immediate action
enum PICoutAction {
Flush /*! Flush the output */,
Backspace /*! Remove last symbol */,
@@ -66,7 +66,7 @@ namespace PICoutManipulators {
RestoreControl /*! Restore control flags, equivalent to \a restoreControl() */
};
//! \brief Enum contains control of PICout
//! @brief Enum contains control of PICout
enum PICoutControl {
AddNone /*! No controls */ = 0x0,
AddSpaces /*! Spaces will be appear after each output */ = 0x1,
@@ -77,7 +77,7 @@ namespace PICoutManipulators {
NoLock /*! Don`t use mutex for output */ = 0x100,
};
//! \brief Enum contains output format
//! @brief Enum contains output format
enum PICoutFormat {
Bin /*! Binary representation of integers */ = 0x01,
Oct /*! Octal representation of integers */ = 0x02,
@@ -111,6 +111,26 @@ namespace PICoutManipulators {
}
/*! \class PICout
* @brief Class for formatted output similar std::cout
*
* \section PICout_sec0 Synopsis
* This class provide many stream operators for output with some features.
* Output to PICout is thread-sequential, i.e. doesn`t mixed from parallel
* threads.
*
* \section PICout_sec1 Features
* - insertion spaces between entries
* - insertion new line at the end of output
* - strings are quoted
* - custom output operator can be easily written
*
* \section PICout_ex0 Usage
* \snippet picout.cpp 0
*
* \section PICout_ex1 Writing your own output operator
* \snippet picout.cpp own
*/
class PIP_EXPORT PICout {
public:
@@ -128,6 +148,19 @@ public:
~PICout();
/*! \class PICout::Notifier
* @brief Class for emit notifications of PICout
*
* \section PICout_sec0 Synopsis
* This class used as PICout events emitter. When
* PICout constructs with external PIString* buffer
* and some id, last copy of this PICout on delete
* emit event "finished()" on object Notifier::object().
* Sample:
* \snippet picout.cpp notifier
*/
class PIP_EXPORT Notifier {
public:
static Notifier * instance();
@@ -137,7 +170,7 @@ public:
PIObject * o;
};
//! \brief Enum contains output devices of PICout
//! @brief Enum contains output devices of PICout
enum OutputDevice {
NoDevices /** PICout is disabled */ = 0x0,
StdOut /** Standard console output */ = 0x1,
@@ -259,17 +292,17 @@ public:
//! Restore control flags from internal stack \sa \a saveControl()
PICout & restoreControl();
/*! \brief Conditional put space character to output
/*! @brief Conditional put space character to output
* \details If it is not a first output and control \a AddSpaces is set
* space character is put \sa \a quote(), \a newLine() */
PICout & space();
/*! \brief Conditional put quote character to output
/*! @brief Conditional put quote character to output
* \details If control \a AddQuotes is set
* quote character is put \sa \a space(), \a newLine() */
PICout & quote();
/*! \brief Conditional put new line character to output
/*! @brief Conditional put new line character to output
* \details If control \a AddNewLine is set
* new line character is put \sa \a space(), \a quote() */
PICout & newLine();

View File

@@ -1,5 +1,5 @@
/*! \file piflags.h
* \brief General flags class
/*! @file piflags.h
* @brief General flags class
*/
/*
PIP - Platform Independent Primitives
@@ -25,7 +25,7 @@
#include "pip_export.h"
/*! \brief This class used as container for bit flags
/*! @brief This class used as container for bit flags
* \details PIFlags is wrapper around \c "int". There are many
* bit-wise operators, native conversion to int and function
* to test flag. \n Example:

View File

@@ -95,28 +95,6 @@ int randomi() {
}
/*! \class PICout
* \brief Class for formatted output similar std::cout
*
* \section PICout_sec0 Synopsis
* This class provide many stream operators for output with some features.
* Output to PICout is thread-sequential, i.e. doesn`t mixed from parallel
* threads.
*
* \section PICout_sec1 Features
* - insertion spaces between entries
* - insertion new line at the end of output
* - strings are quoted
* - custom output operator can be easily written
*
* \section PICout_ex0 Usage
* \snippet picout.cpp 0
*
* \section PICout_ex1 Writing your own output operator
* \snippet picout.cpp own
*/
/*! \mainpage What is PIP
* PIP - Platform-Independent Primitives - is crossplatform library for C++ developers.
* It is wrap around STL and pure C++. This library can help developers write non-GUI

View File

@@ -43,7 +43,7 @@ struct lconv;
extern PIP_EXPORT lconv * currentLocale;
/*! \fn errorString()
* \brief Return readable error description in format "code <number> - <description>" */
* @brief Return readable error description in format "code <number> - <description>" */
PIP_EXPORT PIString errorString();
PIP_EXPORT void errorClear();

View File

@@ -1,5 +1,5 @@
/*! \file piinit.h
* \brief Initialization
/*! @file piinit.h
* @brief Initialization
*/
/*
PIP - Platform Independent Primitives
@@ -47,7 +47,7 @@ class PIP_EXPORT PIInit {
public:
~PIInit();
//! \brief Build options which PIP library was built
//! @brief Build options which PIP library was built
enum BuildOption {
ICU /*! Unicode support */ = 0x01,
USB /*! USB support */ = 0x02,

View File

@@ -26,7 +26,7 @@
#endif
/** \class PIObject
* \brief This is base class for any classes which use events -> handlers mechanism.
* @brief This is base class for any classes which use events -> handlers mechanism.
* \details
* \section PIObject_sec0 Events and Event handlers
* %PIObject provide notification mechanism similar Qt but implemented

View File

@@ -1,5 +1,5 @@
/*! \file piobject.h
* \brief Base object
/*! @file piobject.h
* @brief Base object
*
* This file declare PIObject class
*/
@@ -390,15 +390,15 @@ public:
};
typedef PIPair<const void * , __MetaFunc> __EHPair;
//! \brief Execute all posted events from CONNECTU_QUEUED connections
//! @brief Execute all posted events from CONNECTU_QUEUED connections
void callQueuedEvents();
//! \brief Check if any CONNECTU_QUEUED connections to this object and execute them
//! @brief Check if any CONNECTU_QUEUED connections to this object and execute them
//! \details This function is more optimized than \a callQueuedEvents() for objects that doesn`t
//! appears as \"performer\" target at CONNECTU_QUEUED
bool maybeCallQueuedEvents() {if (proc_event_queue) callQueuedEvents(); return proc_event_queue;}
//! \brief Mark object to delete
//! @brief Mark object to delete
//! \details On first call background thread started to delete objects.
//! Each object deletes when it`s outside from any events and hadlers.
void deleteLater();
@@ -420,7 +420,7 @@ protected:
//! \{
/** \fn void deleted(PIObject * o)
* \brief Raise before object delete
* @brief Raise before object delete
* \note This event raised from destructor, so use only "o" value,
* don`t try to cast deleted object to some subclass! */

View File

@@ -1,5 +1,5 @@
/*! \file piobject_macros.h
* \brief Base object
/*! @file piobject_macros.h
* @brief Base object
*
* This file declare macros for PIObject
*/
@@ -29,67 +29,67 @@
#ifdef DOXYGEN
/// \relatesalso PIObject \brief you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output
/// \relatesalso PIObject @brief you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output
#define PIOBJECT(name)
/// \relatesalso PIObject \brief you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class, and \a scopeList()
/// \relatesalso PIObject @brief you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class, and \a scopeList()
#define PIOBJECT_SUBCLASS(name, parent)
/// \relatesalso PIObject \brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name()
/// \relatesalso PIObject @brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name()
#define EVENT_HANDLER0(ret, name) ret name()
/// \relatesalso PIObject \brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0)
/// \relatesalso PIObject @brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0)
#define EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0)
/// \relatesalso PIObject \brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1)
/// \relatesalso PIObject @brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1)
#define EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1)
/// \relatesalso PIObject \brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1, type2 var2)
/// \relatesalso PIObject @brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1, type2 var2)
#define EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2)
/// \relatesalso PIObject \brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1, type2 var2, type3 var3)
/// \relatesalso PIObject @brief declare event handler \"event\" with name \"name\" and return type \"ret\", ret name(type0 var0, type1 var1, type2 var2, type3 var3)
#define EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3)
/// \relatesalso PIObject \brief EVENT_HANDLER is synonym of EVENT_HANDLER0
/// \relatesalso PIObject @brief EVENT_HANDLER is synonym of EVENT_HANDLER0
#define EVENT_HANDLER EVENT_HANDLER0
/// \relatesalso PIObject \brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name()
/// \relatesalso PIObject @brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name()
#define EVENT_VHANDLER0(ret, name) virtual ret name()
/// \relatesalso PIObject \brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0)
/// \relatesalso PIObject @brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0)
#define EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0)
/// \relatesalso PIObject \brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1)
/// \relatesalso PIObject @brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1)
#define EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1)
/// \relatesalso PIObject \brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1, type2 var2)
/// \relatesalso PIObject @brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1, type2 var2)
#define EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2)
/// \relatesalso PIObject \brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3)
/// \relatesalso PIObject @brief declare virtual event handler \"event\" with name \"name\" and return type \"ret\", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3)
#define EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3)
/// \relatesalso PIObject \brief EVENT_VHANDLER is synonym of EVENT_VHANDLER0
/// \relatesalso PIObject @brief EVENT_VHANDLER is synonym of EVENT_VHANDLER0
#define EVENT_VHANDLER EVENT_VHANDLER0
/// \relatesalso PIObject \brief declare event \"event\" with name \"name\", void name();
/// \relatesalso PIObject @brief declare event \"event\" with name \"name\", void name();
#define EVENT0(name) void name();
/// \relatesalso PIObject \brief declare event \"event\" with name \"name\", void name(type0 var0);
/// \relatesalso PIObject @brief declare event \"event\" with name \"name\", void name(type0 var0);
#define EVENT1(name, type0, var0) void name(type0 var0);
/// \relatesalso PIObject \brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1);
/// \relatesalso PIObject @brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1);
#define EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1);
/// \relatesalso PIObject \brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1, type2 var2);
/// \relatesalso PIObject @brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1, type2 var2);
#define EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2);
/// \relatesalso PIObject \brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1, type2 var2, type3 var3);
/// \relatesalso PIObject @brief declare event \"event\" with name \"name\", void name(type0 var0, type1 var1, type2 var2, type3 var3);
#define EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3);
/// \relatesalso PIObject \brief EVENT is synonym of EVENT0
/// \relatesalso PIObject @brief EVENT is synonym of EVENT0
#define EVENT EVENT0
@@ -101,74 +101,74 @@
#define RAISE_EVENT RAISE_EVENT0
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\". \"Event\" and \"handler\" must has equal argument lists.
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\". \"Event\" and \"handler\" must has equal argument lists.
#define CONNECTU(src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\".
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\".
/// Event handler will be executed by \"performer\". \"Event\" and \"handler\" must has equal argument lists.
#define CONNECTU_QUEUED(src, event, dest, handler, performer)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to lambda-expression \"functor\". \"Event\" and \"functor\" must has equal argument lists.
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to lambda-expression \"functor\". \"Event\" and \"functor\" must has equal argument lists.
#define CONNECTL(src, event, functor)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
#define CONNECT0(ret, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
#define CONNECT1(ret, type0, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
#define CONNECT2(ret, type0, type1, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
#define CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" with check of event and handler exists
#define CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
/// \relatesalso PIObject \brief CONNECT is synonym of CONNECT0
/// \relatesalso PIObject @brief CONNECT is synonym of CONNECT0
#define CONNECT CONNECT0
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
#define WEAK_CONNECT0(ret, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
#define WEAK_CONNECT1(ret, type0, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
#define WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
#define WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
/// \relatesalso PIObject \brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
/// \relatesalso PIObject @brief connect event \"event\" from object \"src\" to event handler \"handler\" with return type \"ret\" from object \"dest\" without check of event exists
#define WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
/// \relatesalso PIObject \brief WEAK_CONNECT is synonym of WEAK_CONNECT0
/// \relatesalso PIObject @brief WEAK_CONNECT is synonym of WEAK_CONNECT0
#define WEAK_CONNECT WEAK_CONNECT0
/// \relatesalso PIObject \brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
/// \relatesalso PIObject @brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
#define DISCONNECT0(ret, src, event, dest, handler)
/// \relatesalso PIObject \brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
/// \relatesalso PIObject @brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
#define DISCONNECT1(ret, type0, src, event, dest, handler)
/// \relatesalso PIObject \brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
/// \relatesalso PIObject @brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
#define DISCONNECT2(ret, type0, type1, src, event, dest, handler)
/// \relatesalso PIObject \brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
/// \relatesalso PIObject @brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
#define DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler)
/// \relatesalso PIObject \brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
/// \relatesalso PIObject @brief piDisconnect event \"event\" from object \"src\" from event handler \"handler\" with return type \"ret\" from object \"dest\"
#define DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
/// \relatesalso PIObject \brief DISCONNECT is synonym of DISCONNECT0
/// \relatesalso PIObject @brief DISCONNECT is synonym of DISCONNECT0
#define DISCONNECT DISCONNECT0
/// \relatesalso PIObject \brief Returns pointer to events handler \"handler\"
/// \relatesalso PIObject @brief Returns pointer to events handler \"handler\"
#define HANDLER(handler)

View File

@@ -1,5 +1,5 @@
/*! \file pipropertystorage.h
* \brief Storage of properties for GUI usage
/*! @file pipropertystorage.h
* @brief Storage of properties for GUI usage
*
* This file declare PIPropertyStorage
*/

View File

@@ -36,7 +36,7 @@
#endif
/*! \class PIString
* \brief String class
* @brief String class
* \details PIP use this class for use string information.
*
* \section PIString_sec0 Synopsis
@@ -72,7 +72,7 @@
/*! \fn int versionCompare(const PIString & v0, const PIString & v1, int components = 6)
* \relatesalso PIString
* \brief Compare two version strings in free notation and returns 0, -1 or 1
* @brief Compare two version strings in free notation and returns 0, -1 or 1
* \details This function parse version to number codes and labels. Then it
* compare no more than "components" codes. If there is no difference, compare
* labels. Each label has corresponding integer value, so
@@ -95,7 +95,7 @@
*
* \fn PIString versionNormalize(const PIString & v)
* \relatesalso PIString
* \brief Converts version string in free notation to classic view
* @brief Converts version string in free notation to classic view
* \details Parse version as described in \a versionCompare() and
* returns classic view of codes and labels: major.minor.revision[-build][_label].
* Example:

View File

@@ -1,5 +1,5 @@
/*! \file pistring.h
* \brief String
/*! @file pistring.h
* @brief String
*
* This file declare string and string list classes
*/
@@ -59,12 +59,12 @@ public:
PIString(const PIChar c): PIDeque<PIChar>() {*this += c;}
PIString(const char c): PIDeque<PIChar>() {*this += PIChar(c);}
/*! \brief Contructs string from c-string "str"
/*! @brief Contructs string from c-string "str"
* \details "str" should be null-terminated\n
* Example: \snippet pistring.cpp PIString(char * ) */
PIString(const char * str): PIDeque<PIChar>() {*this += str;}
/*! \brief Contructs string from \c wchar_t c-string "str"
/*! @brief Contructs string from \c wchar_t c-string "str"
* \details "str" should be null-terminated\n
* Example: \snippet pistring.cpp PIString(wchar_t * ) */
PIString(const wchar_t * str): PIDeque<PIChar>() {*this += str;}
@@ -72,18 +72,18 @@ public:
//! Contructs string from byte array "ba"
PIString(const PIByteArray & ba): PIDeque<PIChar>() {*this += ba;}
//! \brief Contructs string from "len" characters of buffer "str"
//! @brief Contructs string from "len" characters of buffer "str"
PIString(const PIChar * str, const int len): PIDeque<PIChar>(str, size_t(len)) {}
/*! \brief Contructs string from "len" characters of buffer "str"
/*! @brief Contructs string from "len" characters of buffer "str"
* \details Example: \snippet pistring.cpp PIString(char * , int) */
PIString(const char * str, const int len): PIDeque<PIChar>() {appendFromChars(str, len);}
/*! \brief Contructs string as sequence of characters "c" of buffer with length "len"
/*! @brief Contructs string as sequence of characters "c" of buffer with length "len"
* \details Example: \snippet pistring.cpp PIString(int, char) */
PIString(const int len, const char c): PIDeque<PIChar>() {for (int i = 0; i < len; ++i) push_back(c);}
/*! \brief Contructs string as sequence of symbols "c" of buffer with length "len"
/*! @brief Contructs string as sequence of symbols "c" of buffer with length "len"
* \details Example: \snippet pistring.cpp PIString(int, PIChar) */
PIString(const int len, const PIChar c): PIDeque<PIChar>() {for (int i = 0; i < len; ++i) push_back(c);}
@@ -148,32 +148,32 @@ public:
//! Compare operator
bool operator >=(const char * str) const {return *this >= PIString(str);}
/*! \brief Append string "str" at the end of string
/*! @brief Append string "str" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(PIString) */
PIString & operator <<(const PIString & str) {*this += str; return *this;}
/*! \brief Append symbol "c" at the end of string
/*! @brief Append symbol "c" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(PIChar) */
PIString & operator <<(const PIChar c) {*this += c; return *this;}
/*! \brief Append symbol "c" at the end of string
/*! @brief Append symbol "c" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(PIChar) */
PIString & operator <<(const char c) {*this += PIChar(c); return *this;}
/*! \brief Append c-string "str" at the end of string
/*! @brief Append c-string "str" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(char * ) */
PIString & operator <<(const char * str) {*this += str; return *this;}
/*! \brief Append \c wchar_t c-string "str" at the end of string
/*! @brief Append \c wchar_t c-string "str" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(wchar_t * ) */
PIString & operator <<(const wchar_t * str) {*this += str; return *this;}
/*! \brief Append string representation of "num" at the end of string
/*! @brief Append string representation of "num" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(int) */
PIString & operator <<(const int & num) {*this += PIString::fromNumber(num); return *this;}
PIString & operator <<(const uint & num) {*this += PIString::fromNumber(num); return *this;}
/*! \brief Append string representation of "num" at the end of string
/*! @brief Append string representation of "num" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(int) */
PIString & operator <<(const long & num) {*this += PIString::fromNumber(num); return *this;}
PIString & operator <<(const ulong & num) {*this += PIString::fromNumber(num); return *this;}
@@ -181,101 +181,101 @@ public:
PIString & operator <<(const llong & num) {*this += PIString::fromNumber(num); return *this;}
PIString & operator <<(const ullong & num) {*this += PIString::fromNumber(num); return *this;}
/*! \brief Append string representation of "num" at the end of string
/*! @brief Append string representation of "num" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(int) */
PIString & operator <<(const float & num) {*this += PIString::fromNumber(num); return *this;}
/*! \brief Append string representation of "num" at the end of string
/*! @brief Append string representation of "num" at the end of string
* \details Example: \snippet pistring.cpp PIString::<<(int) */
PIString & operator <<(const double & num) {*this += PIString::fromNumber(num); return *this;}
//! \brief Insert string "str" at the begin of string
//! @brief Insert string "str" at the begin of string
PIString & prepend(const PIString & str) {insert(0, str); return *this;}
//! \brief Insert string "str" at the end of string
//! @brief Insert string "str" at the end of string
PIString & append(const PIString & str) {*this += str; return *this;}
/*! \brief Return part of string from symbol at index "start" and maximum length "len"
/*! @brief Return part of string from symbol at index "start" and maximum length "len"
* \details All variants demonstrated in example: \snippet pistring.cpp PIString::mid
* \sa \a left(), \a right() */
PIString mid(const int start, const int len = -1) const;
/*! \brief Return sub-string of string from symbol at index "start" and maximum length "len" */
/*! @brief Return sub-string of string from symbol at index "start" and maximum length "len" */
PIString subString(const int start, const int len = -1) const {return mid(start, len);}
/*! \brief Return part of string from left and maximum length "len"
/*! @brief Return part of string from left and maximum length "len"
* \details Example: \snippet pistring.cpp PIString::left
* \sa \a mid(), \a right() */
PIString left(const int len) const {return len <= 0 ? PIString() : mid(0, len);}
/*! \brief Return part of string from right and maximum length "len"
/*! @brief Return part of string from right and maximum length "len"
* \details Example: \snippet pistring.cpp PIString::right
* \sa \a mid(), \a left() */
PIString right(const int len) const {return len <= 0 ? PIString() : mid(size() - len, len);}
/*! \brief Remove part of string from symbol as index "start" and maximum length "len"
/*! @brief Remove part of string from symbol as index "start" and maximum length "len"
* and return this string
* \details All variants demonstrated in example: \snippet pistring.cpp PIString::cutMid
* \sa \a cutLeft(), \a cutRight() */
PIString & cutMid(const int start, const int len);
/*! \brief Remove part of string from left and maximum length "len" and return this string
/*! @brief Remove part of string from left and maximum length "len" and return this string
* \details Example: \snippet pistring.cpp PIString::cutLeft
* \sa \a cutMid(), \a cutRight() */
PIString & cutLeft(const int len) {return len <= 0 ? *this : cutMid(0, len);}
/*! \brief Remove part of string from right and maximum length "len" and return this string
/*! @brief Remove part of string from right and maximum length "len" and return this string
* \details Example: \snippet pistring.cpp PIString::cutRight
* \sa \a cutMid(), \a cutLeft() */
PIString & cutRight(const int len) {return len <= 0 ? *this : cutMid(size() - len, len);}
/*! \brief Remove spaces at the start and at the end of string and return this string
/*! @brief Remove spaces at the start and at the end of string and return this string
* \details Example: \snippet pistring.cpp PIString::trim
* \sa \a trimmed() */
PIString & trim();
/*! \brief Return copy of this string without spaces at the start and at the end
/*! @brief Return copy of this string without spaces at the start and at the end
* \details Example: \snippet pistring.cpp PIString::trimmed
* \sa \a trim() */
PIString trimmed() const;
/*! \brief Replace part of string from index "from" and maximum length "len"
/*! @brief Replace part of string from index "from" and maximum length "len"
* with string "with" and return this string
* \details Example: \snippet pistring.cpp PIString::replace_0
* \sa \a replaced(), \a replaceAll() */
PIString & replace(const int from, const int count, const PIString & with);
/*! \brief Replace part copy of this string from index "from" and maximum length "len"
/*! @brief Replace part copy of this string from index "from" and maximum length "len"
* with string "with" and return copied string
* \details Example: \snippet pistring.cpp PIString::replaced_0
* \sa \a replace(), \a replaceAll() */
PIString replaced(const int from, const int count, const PIString & with) const {PIString str(*this); str.replace(from, count, with); return str;}
/*! \brief Replace first founded substring "what" with string "with" and return this string
/*! @brief Replace first founded substring "what" with string "with" and return this string
* \details If "ok" is not null, it set to "true" if something was replaced\n
* Example: \snippet pistring.cpp PIString::replace_1
* \sa \a replaced(), \a replaceAll() */
PIString & replace(const PIString & what, const PIString & with, bool * ok = 0);
/*! \brief Replace first founded substring "what" with string "with" and return copied string
/*! @brief Replace first founded substring "what" with string "with" and return copied string
* \details If "ok" is not null, it set to "true" if something was replaced\n
* Example: \snippet pistring.cpp PIString::replaced_1
* \sa \a replaced(), \a replaceAll() */
PIString replaced(const PIString & what, const PIString & with, bool * ok = 0) const {PIString str(*this); str.replace(what, with, ok); return str;}
/*! \brief Replace all founded substrings "what" with strings "with" and return this string
/*! @brief Replace all founded substrings "what" with strings "with" and return this string
* \details Example: \snippet pistring.cpp PIString::replaceAll
* \sa \a replace(), \a replaced() */
PIString & replaceAll(const PIString & what, const PIString & with);
/*! \brief Replace all founded substrings "what" with symbol "with" and return this string
/*! @brief Replace all founded substrings "what" with symbol "with" and return this string
* \details Example: \snippet pistring.cpp PIString::replaceAll
* \sa \a replace(), \a replaced() */
PIString & replaceAll(const PIString & what, const char with);
/*! \brief Replace all founded symbols "what" with symbol "with" and return this string
/*! @brief Replace all founded symbols "what" with symbol "with" and return this string
* \details Example: \snippet pistring.cpp PIString::replaceAll
* \sa \a replace(), \a replaced() */
PIString & replaceAll(const char what, const char with);
@@ -288,122 +288,119 @@ public:
PIString & removeAll(char c) {PIDeque<PIChar>::removeAll(PIChar(c)); return *this;}
/*! \brief Repeat content of string "times" times and return this string
/*! @brief Repeat content of string "times" times and return this string
* \details Example: \snippet pistring.cpp PIString::repeat */
PIString & repeat(int times) {PIString ss(*this); times--; piForTimes (times) *this += ss; return *this;}
/*! \brief Returns repeated "times" times string
/*! @brief Returns repeated "times" times string
* \details Example: \snippet pistring.cpp PIString::repeated */
PIString repeated(int times) const {PIString ss(*this); return ss.repeat(times);}
/*! \brief Insert symbol "c" after index "index" and return this string
/*! @brief Insert symbol "c" after index "index" and return this string
* \details Example: \snippet pistring.cpp PIString::insert_0 */
PIString & insert(const int index, const PIChar c) {PIDeque<PIChar>::insert(index, c); return *this;}
/*! \brief Insert symbol "c" after index "index" and return this string
/*! @brief Insert symbol "c" after index "index" and return this string
* \details Example: \snippet pistring.cpp PIString::insert_1 */
PIString & insert(const int index, const char c) {return insert(index, PIChar(c));}
/*! \brief Insert string "str" after index "index" and return this string
/*! @brief Insert string "str" after index "index" and return this string
* \details Example: \snippet pistring.cpp PIString::insert_2 */
PIString & insert(const int index, const PIString & str);
/*! \brief Insert string "str" after index "index" and return this string
/*! @brief Insert string "str" after index "index" and return this string
* \details Example: \snippet pistring.cpp PIString::insert_2 */
PIString & insert(const int index, const char * c) {return insert(index, PIString(c));}
/*! \brief Enlarge string to length "len" by addition sequence of symbols
/*! @brief Enlarge string to length "len" by addition sequence of symbols
* "c" at the end of string, and return this string
* \details Example: \snippet pistring.cpp PIString::expandRightTo
* \sa \a expandLeftTo() */
PIString & expandRightTo(const int len, const PIChar c) {if (len > length()) resize(len, c); return *this;}
/*! \brief Enlarge string to length "len" by addition sequence of symbols
/*! @brief Enlarge string to length "len" by addition sequence of symbols
* "c" at the beginning of string, and return this string
* \details Example: \snippet pistring.cpp PIString::expandLeftTo
* \sa \a expandRightTo() */
PIString & expandLeftTo(const int len, const PIChar c) {if (len > length()) insert(0, PIString(len - length(), c)); return *this;}
/*! \brief Enlarge and returns copy of this string to length "len"
/*! @brief Enlarge and returns copy of this string to length "len"
* by addition sequence of symbols "c" at the end of string
* \sa \a expandRightTo() */
PIString expandedRightTo(const int len, const PIChar c) const {return PIString(*this).expandRightTo(len, c);}
/*! \brief Enlarge and returns copy of this string to length "len"
/*! @brief Enlarge and returns copy of this string to length "len"
* by addition sequence of symbols "c" at the beginning of string
* \sa \a expandLeftTo() */
PIString expandedLeftTo(const int len, const PIChar c) const {return PIString(*this).expandLeftTo(len, c);}
/*! \brief Add "c" symbols at the beginning and end of the string, and return this string
/*! @brief Add "c" symbols at the beginning and end of the string, and return this string
* \sa \a quoted() */
PIString & quote(PIChar c = PIChar('"')) {insert(0, c); *this += c; return *this;}
/*! \brief Return quoted copy of this string
/*! @brief Return quoted copy of this string
* \sa \a quote() */
PIString quoted(PIChar c = PIChar('"')) {return PIString(*this).quote(c);}
/*! \brief Reverse string and return this string
/*! @brief Reverse string and return this string
* \details Example: \snippet pistring.cpp PIString::reverse
* \sa \a reversed() */
PIString & reverse() {PIString str(*this); clear(); piForeachCR (PIChar c, str) push_back(c); return *this;}
/*! \brief Reverse copy of this string and return it
/*! @brief Reverse copy of this string and return it
* \details Example: \snippet pistring.cpp PIString::reversed
* \sa \a reverse() */
PIString reversed() const {PIString str(*this); str.reverse(); return str;}
/*! \brief Elide string to maximum size \"size\" and return this string
/*! @brief Elide string to maximum size \"size\" and return this string
* \sa \a elided() */
PIString & elide(int size, float pos = ElideCenter);
/*! \brief Elide copy of this string to maximum size \"size\" and return it
/*! @brief Elide copy of this string to maximum size \"size\" and return it
* \details Example: \snippet pistring.cpp PIString::elided
* \sa \a elide() */
PIString elided(int size, float pos = ElideCenter) const {PIString str(*this); str.elide(size, pos); return str;}
/*! \brief Take a part of string from symbol at index "start" and maximum length "len" and return it
* \details Example: \snippet pistring.cpp PIString::takeMid
/*! @brief Take a part of string from symbol at index "start" and maximum length "len" and return it
* \sa \a takeLeft, \a takeRight() */
PIString takeMid(const int start, const int len = -1) {PIString ret(mid(start, len)); cutMid(start, len); return ret;}
/*! \brief Take a part from the begin of string with maximum length "len" and return it
* \details Example: \snippet pistring.cpp PIString::takeLeft
/*! @brief Take a part from the begin of string with maximum length "len" and return it
* \sa \a takeMid(), \a takeRight() */
PIString takeLeft(const int len) {PIString ret(left(len)); cutLeft(len); return ret;}
/*! \brief Take a part from the end of string with maximum length "len" and return it
* \details Example: \snippet pistring.cpp PIString::takeRight
/*! @brief Take a part from the end of string with maximum length "len" and return it
* \sa \a takeMid(), \a takeLeft() */
PIString takeRight(const int len) {PIString ret(right(len)); cutRight(len); return ret;}
/*! \brief Take a symbol from the begin of this string and return it
/*! @brief Take a symbol from the begin of this string and return it
* \details Example: \snippet pistring.cpp PIString::takeSymbol
* \sa \a takeWord(), \a takeCWord(), \a takeLine(), \a takeNumber(), \a takeRange() */
PIString takeSymbol();
/*! \brief Take a word from the begin of this string and return it
/*! @brief Take a word from the begin of this string and return it
* \details Example: \snippet pistring.cpp PIString::takeWord
* \sa \a takeSymbol(), \a takeCWord(), \a takeLine(), \a takeNumber(), \a takeRange() */
PIString takeWord();
/*! \brief Take a word with letters, numbers and '_' symbols from the
/*! @brief Take a word with letters, numbers and '_' symbols from the
* begin of this string and return it
* \details Example: \snippet pistring.cpp PIString::takeCWord
* \sa \a takeSymbol(), \a takeWord(), \a takeLine(), \a takeNumber(), \a takeRange() */
PIString takeCWord();
/*! \brief Take a line from the begin of this string and return it
/*! @brief Take a line from the begin of this string and return it
* \details Example: \snippet pistring.cpp PIString::takeLine
* \sa \a takeSymbol(), \a takeWord(), \a takeCWord(), \a takeNumber(), \a takeRange() */
PIString takeLine();
/*! \brief Take a number with C-format from the begin of this string and return it
/*! @brief Take a number with C-format from the begin of this string and return it
* \details Example: \snippet pistring.cpp PIString::takeNumber
* \sa \a takeSymbol(), \a takeWord(), \a takeCWord(), \a takeLine(), \a takeRange() */
PIString takeNumber();
/*! \brief Take a range between "start" and "end" symbols from the begin of this
/*! @brief Take a range between "start" and "end" symbols from the begin of this
* string and return it.
* \details "Shield" symbol prevent analysis of the next symbol.
* Example: \snippet pistring.cpp PIString::takeRange
@@ -411,19 +408,19 @@ public:
PIString takeRange(const PIChar start, const PIChar end, const PIChar shield = '\\');
/*! \brief Return a string in brackets "start" and "end" symbols from the begin of this
/*! @brief Return a string in brackets "start" and "end" symbols from the begin of this
* string and return it.
* \details Example: string = "a(b(c)d)e"; inBrackets('(', ')') = "b(c)d"; */
PIString inBrackets(const PIChar start, const PIChar end) const;
/*! \brief Return real bytes count of this string
/*! @brief Return real bytes count of this string
* \details It`s equivalent length of char sequence
* returned by function \a data() - 1, without terminating null-char \n
* Example: \snippet pistring.cpp PIString::lengthAscii
* \sa \a data() */
int lengthAscii() const {buildData(__syslocname__); return data_.size_s() - 1;}
/*! \brief Return \c char * representation of this string in system codepage
/*! @brief Return \c char * representation of this string in system codepage
* \details This function fill buffer by sequence
* of chars. Minimum length of this buffer is count
* of symbols. Returned \c char * is valid until next
@@ -432,7 +429,7 @@ public:
* \sa \a dataConsole(), \a dataUTF8() */
const char * data() const {buildData(__syslocname__); return (const char *)(data_.data());}
/*! \brief Return \c char * representation of this string in terminal codepage
/*! @brief Return \c char * representation of this string in terminal codepage
* \details This function fill buffer by sequence
* of chars. Minimum length of this buffer is count
* of symbols. Returned \c char * is valid until next
@@ -440,7 +437,7 @@ public:
* \sa \a data(), \a dataUTF8() */
const char * dataConsole() const;
/*! \brief Return \c char * representation of this string in UTF-8
/*! @brief Return \c char * representation of this string in UTF-8
* \details This function fill buffer by sequence
* of chars. Minimum length of this buffer is count
* of symbols. Returned \c char * is valid until next
@@ -448,7 +445,7 @@ public:
* \sa \a data(), \a dataConsole() */
const char * dataUTF8() const;
/*! \brief Return \c char * representation of this string in ASCII
/*! @brief Return \c char * representation of this string in ASCII
* \details This function fill buffer by sequence
* of chars. Minimum length of this buffer is count
* of symbols. Returned \c char * is valid until next
@@ -458,277 +455,277 @@ public:
//! Returns hash
uint hash() const;
//! \brief Return \a PIByteArray contains \a data() of this string without terminating null-char
//! @brief Return \a PIByteArray contains \a data() of this string without terminating null-char
PIByteArray toByteArray() const {buildData(__utf8name__); return data_.resized(data_.size_s() - 1);}
//! \brief Return \a PIByteArray contains UTF-8 \a data() of this string without terminating null-char
//! @brief Return \a PIByteArray contains UTF-8 \a data() of this string without terminating null-char
PIByteArray toUTF8() const;
//! \brief Return \a PIByteArray contains custom charset representation of this string without terminating null-char
//! @brief Return \a PIByteArray contains custom charset representation of this string without terminating null-char
PIByteArray toCharset(const char * c) const;
/*! \brief Split string with delimiter "delim" to \a PIStringList and return it
/*! @brief Split string with delimiter "delim" to \a PIStringList and return it
* \details Example: \snippet pistring.cpp PIString::split */
PIStringList split(const PIString & delim) const;
//! \brief Convert each symbol in copyed string to upper case and return it
//! @brief Convert each symbol in copyed string to upper case and return it
PIString toUpperCase() const;
//! \brief Convert each symbol in copyed string to lower case and return it
//! @brief Convert each symbol in copyed string to lower case and return it
PIString toLowerCase() const;
PIString toNativeDecimalPoints() const;
//! \brief Returns if string contains "c"
//! @brief Returns if string contains "c"
bool contains(const char c) const {return PIDeque<PIChar>::contains(PIChar(c));}
//! \brief Returns if string contains "str"
//! @brief Returns if string contains "str"
bool contains(const char * str) const {return contains(PIString(str));}
//! \brief Returns if string contains "str"
//! @brief Returns if string contains "str"
bool contains(const PIString & str) const {return find(str) >= 0;}
//! \brief Search symbol "c" from symbol at index "start" and return first occur position
//! @brief Search symbol "c" from symbol at index "start" and return first occur position
//! \details Example: \snippet pistring.cpp PIString::find
int find(const char c, const int start = 0) const;
//! \brief Search substring "str" from symbol at index "start" and return first occur position
//! @brief Search substring "str" from symbol at index "start" and return first occur position
//! \details Example: \snippet pistring.cpp PIString::find
int find(const PIString & str, const int start = 0) const;
//! \brief Search substring "str" from symbol at index "start" and return first occur position
//! @brief Search substring "str" from symbol at index "start" and return first occur position
//! \details Example: \snippet pistring.cpp PIString::find
int find(const char * str, const int start = 0) const {return find(PIString(str), start);}
//! \brief Search symbol "c" from symbol at index "start" and return last occur position
//! @brief Search symbol "c" from symbol at index "start" and return last occur position
//! \details Example: \snippet pistring.cpp PIString::findLast
int findLast(const char c, const int start = 0) const;
//! \brief Search substring "str" from symbol at index "start" and return last occur position
//! @brief Search substring "str" from symbol at index "start" and return last occur position
//! \details Example: \snippet pistring.cpp PIString::findLast
int findLast(const PIString & str, const int start = 0) const;
//! \brief Search substring "str" from symbol at index "start" and return last occur position
//! @brief Search substring "str" from symbol at index "start" and return last occur position
//! \details Example: \snippet pistring.cpp PIString::findLast
int findLast(const char * str, const int start = 0) const {return findLast(PIString(str), start);}
//! \brief Search word "word" from symbol at index "start" and return first occur position.
//! @brief Search word "word" from symbol at index "start" and return first occur position.
//! \details Example: \snippet pistring.cpp PIString::findWord
int findWord(const PIString & word, const int start = 0) const;
//! \brief Search C-style word "word" from symbol at index "start" and return first occur position.
//! @brief Search C-style word "word" from symbol at index "start" and return first occur position.
//! \details Example: \snippet pistring.cpp PIString::findCWord
int findCWord(const PIString & word, const int start = 0) const;
//! \brief Search range between "start" and "end" symbols at index "start_index" and return first occur position.
//! @brief Search range between "start" and "end" symbols at index "start_index" and return first occur position.
//! \details Example: \snippet pistring.cpp PIString::findRange
int findRange(const PIChar start, const PIChar end, const PIChar shield = '\\', const int start_index = 0, int * len = 0) const;
//! \brief Search any symbol of "str" from symbol at index "start" and return first occur position
//! @brief Search any symbol of "str" from symbol at index "start" and return first occur position
//! \details Example: \snippet pistring.cpp PIString::findAny
int findAny(const PIString & str, const int start = 0) const;
//! \brief Search any symbol of "str" from symbol at index "start" and return first occur position
//! @brief Search any symbol of "str" from symbol at index "start" and return first occur position
//! \details Example: \snippet pistring.cpp PIString::findAny
int findAny(const char * str, const int start = 0) const {return findAny(PIString(str), start);}
//! \brief Search any symbol of "str" from symbol at index "start" and return last occur position
//! @brief Search any symbol of "str" from symbol at index "start" and return last occur position
//! \details Example: \snippet pistring.cpp PIString::findAnyLast
int findAnyLast(const PIString & str, const int start = 0) const;
//! \brief Search any symbol of "str" from symbol at index "start" and return last occur position
//! @brief Search any symbol of "str" from symbol at index "start" and return last occur position
//! \details Example: \snippet pistring.cpp PIString::findAnyLast
int findAnyLast(const char * str, const int start = 0) const {return findAnyLast(PIString(str), start);}
//! \brief Returns number of occurrences of symbol "c"
//! @brief Returns number of occurrences of symbol "c"
int entries(const PIChar c) const;
//! \brief Returns number of occurrences of symbol "c"
//! @brief Returns number of occurrences of symbol "c"
int entries(char c) const {return entries(PIChar(c));}
//! \brief Return if string starts with "str"
//! @brief Return if string starts with "str"
bool startsWith(const PIString & str) const;
//! \brief Return if string ends with "str"
//! @brief Return if string ends with "str"
bool endsWith(const PIString & str) const;
//! \brief Return symbols length of string
//! @brief Return symbols length of string
int length() const {return size();}
//! \brief Return \c true if string is empty, i.e. length = 0
//! @brief Return \c true if string is empty, i.e. length = 0
bool isEmpty() const {return (size() == 0 || *this == "");}
//! \brief Return \c true if string equal "true", "yes", "on" or positive not null numeric value
//! @brief Return \c true if string equal "true", "yes", "on" or positive not null numeric value
bool toBool() const;
//! \brief Return \c char numeric value of string
//! @brief Return \c char numeric value of string
char toChar() const;
//! \brief Return \c short numeric value of string in base "base"
//! @brief Return \c short numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
short toShort(int base = -1, bool * ok = 0) const {return short(toNumberBase(*this, base, ok));}
//! \brief Return \c ushort numeric value of string in base "base"
//! @brief Return \c ushort numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
ushort toUShort(int base = -1, bool * ok = 0) const {return ushort(toNumberBase(*this, base, ok));}
//! \brief Return \c int numeric value of string in base "base"
//! @brief Return \c int numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
int toInt(int base = -1, bool * ok = 0) const {return int(toNumberBase(*this, base, ok));}
//! \brief Return \c uint numeric value of string in base "base"
//! @brief Return \c uint numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
uint toUInt(int base = -1, bool * ok = 0) const {return uint(toNumberBase(*this, base, ok));}
//! \brief Return \c long numeric value of string in base "base"
//! @brief Return \c long numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
long toLong(int base = -1, bool * ok = 0) const {return long(toNumberBase(*this, base, ok));}
//! \brief Return \c ulong numeric value of string in base "base"
//! @brief Return \c ulong numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
ulong toULong(int base = -1, bool * ok = 0) const {return ulong(toNumberBase(*this, base, ok));}
//! \brief Return \c llong numeric value of string in base "base"
//! @brief Return \c llong numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
llong toLLong(int base = -1, bool * ok = 0) const {return toNumberBase(*this, base, ok);}
//! \brief Return \c ullong numeric value of string in base "base"
//! @brief Return \c ullong numeric value of string in base "base"
//! \details Example: \snippet pistring.cpp PIString::toNumber
ullong toULLong(int base = -1, bool * ok = 0) const {return ullong(toNumberBase(*this, base, ok));}
//! \brief Return \c float numeric value of string
//! @brief Return \c float numeric value of string
//! \details Example: \snippet pistring.cpp PIString::toFloat
float toFloat() const;
//! \brief Return \c double numeric value of string
//! @brief Return \c double numeric value of string
//! \details Example: \snippet pistring.cpp PIString::toFloat
double toDouble() const;
//! \brief Return \c ldouble numeric value of string
//! @brief Return \c ldouble numeric value of string
//! \details Example: \snippet pistring.cpp PIString::toFloat
ldouble toLDouble() const;
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const short value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const ushort value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const int value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const uint value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const long value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const ulong value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const llong & value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value" in base "base"
//! @brief Set string content to numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::setNumber
PIString & setNumber(const ullong & value, int base = 10, bool * ok = 0) {clear(); *this += PIString::fromNumber(value, base, ok); return *this;}
//! \brief Set string content to numeric representation of "value"
//! @brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const float value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to numeric representation of "value"
//! @brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const double & value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to numeric representation of "value"
//! @brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const ldouble & value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to human readable size in B/kB/MB/GB/TB
//! @brief Set string content to human readable size in B/kB/MB/GB/TB
//! \details Example: \snippet pistring.cpp PIString::setReadableSize
PIString & setReadableSize(llong bytes);
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const short value, int base = 10, bool * ok = 0) {return fromNumberBaseS(llong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const ushort value, int base = 10, bool * ok = 0) {return fromNumberBaseU(ullong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const int value, int base = 10, bool * ok = 0) {return fromNumberBaseS(llong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const uint value, int base = 10, bool * ok = 0) {return fromNumberBaseU(ullong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const long value, int base = 10, bool * ok = 0) {return fromNumberBaseS(llong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const ulong value, int base = 10, bool * ok = 0) {return fromNumberBaseU(ullong(value), base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const llong & value, int base = 10, bool * ok = 0) {return fromNumberBaseS(value, base, ok);}
//! \brief Return string contains numeric representation of "value" in base "base"
//! @brief Return string contains numeric representation of "value" in base "base"
//! \details Example: \snippet pistring.cpp PIString::fromNumber
static PIString fromNumber(const ullong & value, int base = 10, bool * ok = 0) {return fromNumberBaseU(value, base, ok);}
//! \brief Return string contains numeric representation of "value"
//! @brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const float value, char format = 'f', int precision = 8) {return ftos(value, format, precision);}
//! \brief Return string contains numeric representation of "value"
//! @brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const double & value, char format = 'f', int precision = 8) {return dtos(value, format, precision);}
//! \brief Return string contains numeric representation of "value"
//! @brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const ldouble & value, char format = 'f', int precision = 8) {return dtos(value, format, precision);}
//! \brief Return "true" or "false"
//! @brief Return "true" or "false"
static PIString fromBool(const bool value) {return PIString(value ? "true" : "false");}
//! \brief Return string constructed from terminal codepage
//! @brief Return string constructed from terminal codepage
static PIString fromConsole(const char * s);
//! \brief Return string constructed from system codepage
//! @brief Return string constructed from system codepage
static PIString fromSystem(const char * s);
//! \brief Return string constructed from UTF-8
//! @brief Return string constructed from UTF-8
static PIString fromUTF8(const char * s);
//! \brief Return string constructed from UTF-8
//! @brief Return string constructed from UTF-8
static PIString fromUTF8(const PIByteArray &ba);
//! \brief Return string constructed from ASCII
//! @brief Return string constructed from ASCII
static PIString fromAscii(const char * s);
//! \brief Return string constructed from "len" chars ASCII
//! @brief Return string constructed from "len" chars ASCII
static PIString fromAscii(const char * s, int len);
//! \brief Return string constructed from "c" codepage
//! @brief Return string constructed from "c" codepage
static PIString fromCodepage(const char * s, const char * c);
//! \brief Return string contains human readable size in B/kB/MB/GB/TB
//! @brief Return string contains human readable size in B/kB/MB/GB/TB
//! \details Example: \snippet pistring.cpp PIString::readableSize
static PIString readableSize(llong bytes);
@@ -754,30 +751,30 @@ private:
};
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
PIP_EXPORT PICout operator <<(PICout s, const PIString & v);
//! \relatesalso PIByteArray \brief Output operator to PIByteArray
//! \relatesalso PIByteArray @brief Output operator to PIByteArray
inline PIByteArray & operator <<(PIByteArray & s, const PIString & v) {s << *(PIDeque<PIChar>*)&v; return s;}
//! \relatesalso PIByteArray \brief Input operator from PIByteArray
//! \relatesalso PIByteArray @brief Input operator from PIByteArray
inline PIByteArray & operator >>(PIByteArray & s, PIString & v) {v.clear(); s >> *(PIDeque<PIChar>*)&v; return s;}
//! \brief Return concatenated string
//! @brief Return concatenated string
inline PIString operator +(const PIString & str, const PIString & f) {PIString s(str); s += f; return s;}
//! \brief Return concatenated string
//! @brief Return concatenated string
inline PIString operator +(const PIString & f, const char * str) {PIString s(f); s += str; return s;}
//! \brief Return concatenated string
//! @brief Return concatenated string
inline PIString operator +(const char * str, const PIString & f) {return PIString(str) + f;}
//! \relatesalso PIString \brief Return concatenated string
//! \relatesalso PIString @brief Return concatenated string
inline PIString operator +(const char c, const PIString & f) {return PIChar(c) + f;}
//! \brief Return concatenated string
//! @brief Return concatenated string
inline PIString operator +(const PIString & f, const char c) {return f + PIChar(c);}

View File

@@ -1,5 +1,5 @@
/*! \file pistring_std.h
* \brief STD for PIString
/*! @file pistring_std.h
* @brief STD for PIString
*
* This file declare std operators and string conversions
*/
@@ -70,24 +70,24 @@ inline PIString StdWString2PIString(const std::wstring & v) {
//! \relatesalso PIChar \brief Output operator to \c std::ostream
//! \relatesalso PIChar @brief Output operator to \c std::ostream
inline std::ostream & operator <<(std::ostream & s, const PIChar & v) {s << v.toCharPtr(); return s;}
//! \relatesalso PIString \brief Return concatenated string
//! \relatesalso PIString @brief Return concatenated string
inline PIString operator +(const PIString & f, const std::string & str) {PIString s(f); s += StdString2PIString(str); return s;}
//! \relatesalso PIString \brief Return concatenated string
//! \relatesalso PIString @brief Return concatenated string
inline PIString operator +(const std::string & str, const PIString & f) {return StdString2PIString(str) + f;}
//! \relatesalso PIString \brief Output operator to std::ostream (cout)
//! \relatesalso PIString @brief Output operator to std::ostream (cout)
inline std::ostream & operator <<(std::ostream & s, const PIString & v) {for (int i = 0; i < v.length(); ++i) s << v[i]; return s;}
//! \relatesalso PIString \brief Input operator from std::istream (cin)
//! \relatesalso PIString @brief Input operator from std::istream (cin)
inline std::istream & operator >>(std::istream & s, PIString & v) {std::string ss; s >> ss; v = StdString2PIString(ss); return s;}
//! \relatesalso PIStringList \brief Output operator to std::ostream (cout)
//! \relatesalso PIStringList @brief Output operator to std::ostream (cout)
inline std::ostream & operator <<(std::ostream & s, const PIStringList & v) {
s << PIChar("{");
for (uint i = 0; i < v.size(); ++i) {

View File

@@ -1,4 +1,4 @@
/*! \brief Strings array class
/*! @brief Strings array class
* \details This class is based on \a PIDeque<PIString> and
* expand it functionality. */
/*
@@ -60,22 +60,22 @@ public:
PIStringList(std::initializer_list<PIString> init_list): PIDeque<PIString>(init_list) {}
//! \brief Join all strings in one with delimiter "delim" and return it
//! @brief Join all strings in one with delimiter "delim" and return it
//! \details Example: \snippet pistring.cpp PIStringList::join
PIString join(const PIString & delim) const {PIString s; for (uint i = 0; i < size(); ++i) {s += at(i); if (i < size() - 1) s += delim;} return s;}
//! \brief Remove all strings equal "value" and return this
//! @brief Remove all strings equal "value" and return this
//! \details Example: \snippet pistring.cpp PIStringList::removeStrings
PIStringList & removeStrings(const PIString & value) {for (uint i = 0; i < size(); ++i) {if (at(i) == value) {remove(i); --i;}} return *this;}
PIStringList & remove(uint num) {PIDeque<PIString>::remove(num); return *this;}
PIStringList & remove(uint num, uint count) {PIDeque<PIString>::remove(num, count); return *this;}
//! \brief Remove duplicated strings and return this
//! @brief Remove duplicated strings and return this
//! \details Example: \snippet pistring.cpp PIStringList::removeDuplicates
PIStringList & removeDuplicates();
//! \brief Trim all strings
//! @brief Trim all strings
//! \details Example: \snippet pistring.cpp PIString::trim
PIStringList & trim() {for (uint i = 0; i < size(); ++i) (*this)[i].trim(); return *this;}
@@ -97,13 +97,13 @@ public:
};
//! \relatesalso PIByteArray \brief Output operator to PIByteArray
//! \relatesalso PIByteArray @brief Output operator to PIByteArray
inline PIByteArray & operator <<(PIByteArray & s, const PIStringList & v) {s << int(v.size_s()); for (int i = 0; i < v.size_s(); ++i) s << v[i]; return s;}
//! relatesalso PIByteArray \brief Input operator from PIByteArray
//! relatesalso PIByteArray @brief Input operator from PIByteArray
inline PIByteArray & operator >>(PIByteArray & s, PIStringList & v) {int sz; s >> sz; v.resize(sz); for (int i = 0; i < sz; ++i) s >> v[i]; return s;}
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
inline PICout operator <<(PICout s, const PIStringList & v) {s.space(); s.setControl(0, true); s << "{"; for (uint i = 0; i < v.size(); ++i) {s << "\"" << v[i] << "\""; if (i < v.size() - 1) s << ", ";} s << "}"; s.restoreControl(); return s;}
#endif // PISTRINGLIST_H

View File

@@ -37,7 +37,7 @@
#endif
/*! \class PISystemTime
* \brief System time
* @brief System time
*
* \section PISystemTime_sec0 Synopsis
* This class provide arithmetic functions for POSIX system time.
@@ -51,7 +51,7 @@
/*! \class PITimeMeasurer
* \brief Time measurements
* @brief Time measurements
*
* \section PITimeMeasurer_sec0 Synopsis
* Function \a reset() set time mark to current

View File

@@ -1,5 +1,5 @@
/*! \file pitime.h
* \brief Time structs
/*! @file pitime.h
* @brief Time structs
*/
/*
PIP - Platform Independent Primitives
@@ -29,10 +29,10 @@
#ifdef QNX
# include <time.h>
#endif
//! \brief Sleep for "msecs" milliseconds
//! @brief Sleep for "msecs" milliseconds
PIP_EXPORT void msleep(int msecs);
/*! \brief Precise sleep for "usecs" microseconds
/*! @brief Precise sleep for "usecs" microseconds
* \details This function consider \c "usleep" offset
* on QNX/Linux/Mac, which is calculated with
* \a pip_sys_test program. If there is correct
@@ -40,11 +40,11 @@ PIP_EXPORT void msleep(int msecs);
* wait \b exactly "usecs" microseconds. */
PIP_EXPORT void piUSleep(int usecs); // on !Windows consider constant "usleep" offset
/*! \brief Precise sleep for "msecs" milliseconds
/*! @brief Precise sleep for "msecs" milliseconds
* \details This function exec \a piUSleep (msecs * 1000). */
inline void piMSleep(double msecs) {piUSleep(int(msecs * 1000.));} // on !Windows consider constant "usleep" offset
/*! \brief Precise sleep for "secs" seconds
/*! @brief Precise sleep for "secs" seconds
* \details This function exec \a piUSleep (msecs * 1000000). */
inline void piSleep(double secs) {piUSleep(int(secs * 1000000.));} // on !Windows consider constant "usleep" offset
@@ -167,7 +167,7 @@ private:
};
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
inline PICout operator <<(PICout s, const PISystemTime & v) {s.space(); s.setControl(0, true); s << "(" << v.seconds << " s, " << v.nanoseconds << " ns)"; s.restoreControl(); return s;}
@@ -191,7 +191,7 @@ inline bool operator !=(const PITime & t0, const PITime & t1) {return !(t0 == t1
inline bool operator <=(const PITime & t0, const PITime & t1) {return !(t0 > t1);}
inline bool operator >=(const PITime & t0, const PITime & t1) {return !(t0 < t1);}
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
PIP_EXPORT PICout operator <<(PICout s, const PITime & v);
@@ -213,7 +213,7 @@ inline bool operator !=(const PIDate & t0, const PIDate & t1) {return !(t0 == t1
inline bool operator <=(const PIDate & t0, const PIDate & t1) {return !(t0 > t1);}
inline bool operator >=(const PIDate & t0, const PIDate & t1) {return !(t0 < t1);}
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
PIP_EXPORT PICout operator <<(PICout s, const PIDate & v);
@@ -258,7 +258,7 @@ inline bool operator >=(const PIDateTime & t0, const PIDateTime & t1) {return !(
inline PIByteArray & operator <<(PIByteArray & s, const PIDateTime & v) {s << v.year << v.month << v.day << v.hours << v.minutes << v.seconds << v.milliseconds; return s;}
inline PIByteArray & operator >>(PIByteArray & s, PIDateTime & v) {s >> v.year >> v.month >> v.day >> v.hours >> v.minutes >> v.seconds >> v.milliseconds; return s;}
//! \relatesalso PICout \brief Output operator to PICout
//! \relatesalso PICout @brief Output operator to PICout
PIP_EXPORT PICout operator <<(PICout s, const PIDateTime & v);
@@ -268,7 +268,7 @@ class PIP_EXPORT PITimeMeasurer {
public:
PITimeMeasurer();
/** \brief Set internal time mark to current system time
/** @brief Set internal time mark to current system time
* \details This function used for set start time mark. Later
* you can find out elapsed time from this time mark to any
* moment of time with \a elapsed_s(), \a elapsed_m(),
@@ -276,19 +276,19 @@ public:
* \sa \a elapsed_s(), \a elapsed_m(), \a elapsed_u(), \a elapsed_n() */
void reset() {t_st = PISystemTime::current(true);}
//! \brief Returns nanoseconds elapsed from last \a reset() execution or from timer measurer creation.
//! @brief Returns nanoseconds elapsed from last \a reset() execution or from timer measurer creation.
double elapsed_n() const;
//! \brief Returns microseconds elapsed from last \a reset() execution or from timer measurer creation.
//! @brief Returns microseconds elapsed from last \a reset() execution or from timer measurer creation.
double elapsed_u() const;
//! \brief Returns milliseconds elapsed from last \a reset() execution or from timer measurer creation.
//! @brief Returns milliseconds elapsed from last \a reset() execution or from timer measurer creation.
double elapsed_m() const;
//! \brief Returns seconds elapsed from last \a reset() execution or from timer measurer creation.
//! @brief Returns seconds elapsed from last \a reset() execution or from timer measurer creation.
double elapsed_s() const;
//! \brief Returns PISystemTime elapsed from last \a reset() execution or from timer measurer creation.
//! @brief Returns PISystemTime elapsed from last \a reset() execution or from timer measurer creation.
PISystemTime elapsed() const;
double reset_time_n() const {return t_st.toNanoseconds();}
@@ -296,22 +296,22 @@ public:
double reset_time_m() const {return t_st.toMilliseconds();}
double reset_time_s() const {return t_st.toSeconds();}
//! \brief Returns time mark of last \a reset() execution or timer measurer creation.
//! @brief Returns time mark of last \a reset() execution or timer measurer creation.
PISystemTime reset_time() {return t_st;}
//! \brief Returns nanoseconds representation of current system time.
//! @brief Returns nanoseconds representation of current system time.
static double elapsed_system_n() {return PISystemTime::current(true).toNanoseconds();}
//! \brief Returns microseconds representation of current system time.
//! @brief Returns microseconds representation of current system time.
static double elapsed_system_u() {return PISystemTime::current(true).toMicroseconds();}
//! \brief Returns milliseconds representation of current system time.
//! @brief Returns milliseconds representation of current system time.
static double elapsed_system_m() {return PISystemTime::current(true).toMilliseconds();}
//! \brief Returns seconds representation of current system time.
//! @brief Returns seconds representation of current system time.
static double elapsed_system_s() {return PISystemTime::current(true).toSeconds();}
//! \brief Returns time mark of current system time.
//! @brief Returns time mark of current system time.
static PISystemTime elapsed_system() {return PISystemTime::current(true);}
private:

View File

@@ -1,5 +1,5 @@
/*! \file pitime_win.h
* \brief PITime conversions for Windows
/*! @file pitime_win.h
* @brief PITime conversions for Windows
*
* This file declare time conversions for Windows
*/

View File

@@ -21,7 +21,7 @@
/** \class PIVariant
* \brief Variant type
* @brief Variant type
* \details
* \section PIVariant_sec0 Synopsis
* This class provides general type that can contains all standard types, some
@@ -220,7 +220,7 @@ PIString PIVariant::typeName(PIVariant::Type type) {
}
/** \brief Returns variant content as boolean
/** @brief Returns variant content as boolean
* \details In case of numeric types returns \b true if value != 0. \n
* In case of String type returns \a PIString::toBool(). \n
* In case of StringList type returns \b false if string list is empty,
@@ -251,7 +251,7 @@ bool PIVariant::toBool() const {
/** \brief Returns variant content as int
/** @brief Returns variant content as int
* \details In case of numeric types returns integer value. \n
* In case of String type returns \a PIString::toInt(). \n
* In case of StringList type returns \b 0 if string list is empty,
@@ -283,7 +283,7 @@ int PIVariant::toInt() const {
}
/** \brief Returns variant content as long long
/** @brief Returns variant content as long long
* \details In case of numeric types returns integer value. \n
* In case of String type returns \a PIString::toLLong(). \n
* In case of StringList type returns \b 0L if string list is empty,
@@ -314,7 +314,7 @@ llong PIVariant::toLLong() const {
}
/** \brief Returns variant content as float
/** @brief Returns variant content as float
* \details In case of numeric types returns float value. \n
* In case of String type returns \a PIString::toFloat(). \n
* In case of StringList type returns \b 0.f if string list is empty,
@@ -345,7 +345,7 @@ float PIVariant::toFloat() const {
}
/** \brief Returns variant content as double
/** @brief Returns variant content as double
* \details In case of numeric types returns double value. \n
* In case of String type returns \a PIString::toDouble(). \n
* In case of StringList type returns \b 0. if string list is empty,
@@ -376,7 +376,7 @@ double PIVariant::toDouble() const {
}
/** \brief Returns variant content as long double
/** @brief Returns variant content as long double
* \details In case of numeric types returns long double value. \n
* In case of String type returns \a PIString::toLDouble(). \n
* In case of StringList type returns \b 0. if string list is empty,
@@ -407,7 +407,7 @@ ldouble PIVariant::toLDouble() const {
}
/** \brief Returns variant content as time
/** @brief Returns variant content as time
* \details In case of Time type returns time value. \n
* In case of DateTime type returns time part of value. \n
* In case of other types returns \a PITime(). */
@@ -420,7 +420,7 @@ PITime PIVariant::toTime() const {
}
/** \brief Returns variant content as date
/** @brief Returns variant content as date
* \details In case of Date type returns date value. \n
* In case of DateTime type returns date part of value. \n
* In case of other types returns \a PIDate(). */
@@ -433,7 +433,7 @@ PIDate PIVariant::toDate() const {
}
/** \brief Returns variant content as date and time
/** @brief Returns variant content as date and time
* \details In case of Time type returns time value with null date. \n
* In case of Date type returns date value with null time. \n
* In case of DateTime type returns date and time. \n
@@ -448,7 +448,7 @@ PIDateTime PIVariant::toDateTime() const {
}
/** \brief Returns variant content as system time
/** @brief Returns variant content as system time
* \details In case of SystemTime type returns system time. \n
* In case of other types returns \a PISystemTime::fromSeconds() from
* double value of variant content. */
@@ -460,7 +460,7 @@ PISystemTime PIVariant::toSystemTime() const {
}
/** \brief Returns variant content as string
/** @brief Returns variant content as string
* \details In case of numeric types returns \a PIString::fromNumber(). \n
* In case of String type returns string value. \n
* In case of StringList type returns joined string ("(" + PIStringList::join("; ") + ")"). \n
@@ -501,7 +501,7 @@ PIString PIVariant::toString() const {
}
/** \brief Returns variant content as strings list
/** @brief Returns variant content as strings list
* \details In case of StringList type returns strings list value. \n
* In case of other types returns \a PIStringList with one string value of variant content. */
PIStringList PIVariant::toStringList() const {
@@ -513,7 +513,7 @@ PIStringList PIVariant::toStringList() const {
}
/** \brief Returns variant content as bit array
/** @brief Returns variant content as bit array
* \details In case of BitArray type returns bit array value. \n
* In case of other types returns \a PIBitArray from \a toLLong() value. */
PIBitArray PIVariant::toBitArray() const {
@@ -524,7 +524,7 @@ PIBitArray PIVariant::toBitArray() const {
}
/** \brief Returns variant content as byte array
/** @brief Returns variant content as byte array
* \details In case of ByteArray type returns byte array value. \n
* In case of other types returns empty \a PIByteArray. */
PIByteArray PIVariant::toByteArray() const {
@@ -535,7 +535,7 @@ PIByteArray PIVariant::toByteArray() const {
}
/** \brief Returns variant content as enum
/** @brief Returns variant content as enum
* \details In case of Enum type returns enum value. \n
* In case of String returns Enum with one member. \n
* In case of StringList returns Enum with corresponding members. \n
@@ -550,7 +550,7 @@ PIVariantTypes::Enum PIVariant::toEnum() const {
}
/** \brief Returns variant content as file
/** @brief Returns variant content as file
* \details In case of File type returns file value. \n
* In case of String returns File with string value path. \n
* In case of other types returns empty File. */
@@ -563,7 +563,7 @@ PIVariantTypes::File PIVariant::toFile() const {
}
/** \brief Returns variant content as dir
/** @brief Returns variant content as dir
* \details In case of Dir type returns dir value. \n
* In case of String returns Dir with string value path. \n
* In case of other types returns empty Dir. */
@@ -576,7 +576,7 @@ PIVariantTypes::Dir PIVariant::toDir() const {
}
/** \brief Returns variant content as color
/** @brief Returns variant content as color
* \details In case of Color type returns color value. \n
* In case of int returns color with int value. \n
* In case of other types returns empty Color. */
@@ -589,7 +589,7 @@ PIVariantTypes::Color PIVariant::toColor() const {
}
/** \brief Returns variant content as IODevice
/** @brief Returns variant content as IODevice
* \details In case of IODevice type returns IODevice value. \n
* In case of other types returns empty IODevice. */
PIVariantTypes::IODevice PIVariant::toIODevice() const {
@@ -599,7 +599,7 @@ PIVariantTypes::IODevice PIVariant::toIODevice() const {
}
/** \brief Returns variant content as point
/** @brief Returns variant content as point
* \details In case of PIPointd type returns point value. \n
* In case of other types returns empty PIPointd. */
PIPointd PIVariant::toPoint() const {
@@ -609,7 +609,7 @@ PIPointd PIVariant::toPoint() const {
}
/** \brief Returns variant content as rect
/** @brief Returns variant content as rect
* \details In case of PIRectd type returns rect value. \n
* In case of other types returns empty PIRectd. */
PIRectd PIVariant::toRect() const {
@@ -619,7 +619,7 @@ PIRectd PIVariant::toRect() const {
}
/** \brief Returns variant content as math vector
/** @brief Returns variant content as math vector
* \details In case of PIMathVectord type returns rect value. \n
* In case of other types returns empty PIMathVectord. */
PIMathVectord PIVariant::toMathVector() const {
@@ -629,7 +629,7 @@ PIMathVectord PIVariant::toMathVector() const {
}
/** \brief Returns variant content as math matrix
/** @brief Returns variant content as math matrix
* \details In case of PIMathMatrixd type returns rect value. \n
* In case of other types returns empty PIMathMatrixd. */
PIMathMatrixd PIVariant::toMathMatrix() const {

View File

@@ -1,5 +1,5 @@
/*! \file pivariant.h
* \brief Variant type
/*! @file pivariant.h
* @brief Variant type
*
* This file declares PIVariant
*/
@@ -460,7 +460,7 @@ public:
PIMathMatrixd toMathMatrix() const;
/** \brief Returns variant content as custom type
/** @brief Returns variant content as custom type
* \details In case of known types this function equivalent \a to<Type> function. \n
* Otherwise returns content as type T. */
template<typename T>
@@ -551,7 +551,7 @@ public:
void swap(PIVariant & v);
/** \brief Returns new variant from custom type
/** @brief Returns new variant from custom type
* \details In case of known types this function equivalent \a PIVariant(T) constructors. \n
* Otherwise returns variant with content \a v and type Custom. */
template <typename T>

View File

@@ -1,5 +1,5 @@
/*! \file pivariantsimple.h
* \brief Variant simple type
/*! @file pivariantsimple.h
* @brief Variant simple type
*
* This file declares PIVariantSimple
*/

View File

@@ -1,5 +1,5 @@
/*! \file pivarianttypes.h
* \brief Variant type
/*! @file pivarianttypes.h
* @brief Variant type
*
* This file declares PIVariant
*/

View File

@@ -1,5 +1,5 @@
/*! \file piauth.h
* \brief PIP Authentication API
/*! @file piauth.h
* @brief PIP Authentication API
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file picrypt.h
* \brief Cryptographic class using lib Sodium
/*! @file picrypt.h
* @brief Cryptographic class using lib Sodium
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piellipsoidmodel.h
* \brief Contains geo ellipsoid models
/*! @file piellipsoidmodel.h
* @brief Contains geo ellipsoid models
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file pigeoposition.h
* \brief Class for geo position storage and conversions
/*! @file pigeoposition.h
* @brief Class for geo position storage and conversions
*/
/*
PIP - Platform Independent Primitives

View File

@@ -24,7 +24,7 @@
#define PIBINARYLOG_VERSION_OLD 0x31
/*! \class PIBinaryLog
* \brief Class for read and write binary data to logfile, and playback this data in realtime, or custom speed
* @brief Class for read and write binary data to logfile, and playback this data in realtime, or custom speed
*
* \section PIBinaryLog_sec0 Synopsis
* Binary Log is a file with simple header, where you can read and write some binary data.

View File

@@ -1,5 +1,5 @@
/*! \file pibinarylog.h
* \brief Binary log
/*! @file pibinarylog.h
* @brief Binary log
*/
/*
PIP - Platform Independent Primitives
@@ -33,14 +33,14 @@ public:
explicit PIBinaryLog();
virtual ~PIBinaryLog();
//! \brief Play modes for \a PIBinaryLog
//! @brief Play modes for \a PIBinaryLog
enum PlayMode {
PlayRealTime /*! Play in system realtime, default mode */ ,
PlayVariableSpeed /*! Play in software realtime with speed, set by \a setSpeed */ ,
PlayStaticDelay /*! Play with custom static delay, ignoring timestamp */
};
//! \brief Different split modes for writing \a PIBinaryLog, which can separate files by size, by time or by records count
//! @brief Different split modes for writing \a PIBinaryLog, which can separate files by size, by time or by records count
enum SplitMode {
SplitNone /*! Without separate, default mode */ ,
SplitTime /*! Separate files by record time */ ,
@@ -48,7 +48,7 @@ public:
SplitCount /*! Separate files by records count */
};
//! \brief Struct contains information about all records with same ID
//! @brief Struct contains information about all records with same ID
struct PIP_EXPORT BinLogRecordInfo {
BinLogRecordInfo() {
id = count = 0;
@@ -62,7 +62,7 @@ public:
PISystemTime end_time;
};
//! \brief Struct contains full information about Binary Log file and about all Records using map of \a BinLogRecordInfo
//! @brief Struct contains full information about Binary Log file and about all Records using map of \a BinLogRecordInfo
struct PIP_EXPORT BinLogInfo {
PIString path;
int records_count;
@@ -73,7 +73,7 @@ public:
PIByteArray user_header;
};
//! \brief Struct contains position, ID and timestamp of record in file
//! @brief Struct contains position, ID and timestamp of record in file
struct PIP_EXPORT BinLogIndex {
int id;
llong pos;
@@ -249,7 +249,7 @@ public:
//! \{
//! \fn PIString createNewFile()
//! \brief Create new binlog file in \a logDir, if successful returns filename, else returns empty string.
//! @brief Create new binlog file in \a logDir, if successful returns filename, else returns empty string.
//! Filename is like \a filePrefix + "yyyy_MM_dd__hh_mm_ss.binlog"
//! \}
@@ -257,13 +257,13 @@ public:
//! \{
//! \fn void fileEnd()
//! \brief Raise on file end while reading
//! @brief Raise on file end while reading
//! \fn void fileError()
//! \brief Raise on file creation error
//! @brief Raise on file creation error
//! \fn void newFile(const PIString & filename)
//! \brief Raise on new file created
//! @brief Raise on new file created
//! \}
@@ -324,7 +324,7 @@ private:
PIByteArray user_header;
};
//! \relatesalso PICout \brief Output operator PIBinaryLog::BinLogInfo to PICout
//! \relatesalso PICout @brief Output operator PIBinaryLog::BinLogInfo to PICout
inline PICout operator <<(PICout s, const PIBinaryLog::BinLogInfo & bi) {
s.space();
s.setControl(0, true);

View File

@@ -1,5 +1,5 @@
/*! \file pican.h
* \brief CAN device
/*! @file pican.h
* @brief CAN device
*/
/*
PIP - Platform Independent Primitives

View File

@@ -26,7 +26,7 @@
# include <iostream>
#endif
/*! \class PIConfig
* \brief Configuration file
* @brief Configuration file
* \details This class provide handle access to configuration file.
*
* \section PIConfig_sec0 Synopsis
@@ -67,7 +67,7 @@
*/
/*! \class PIConfig::Entry
* \brief %Entry of configuration file
* @brief %Entry of configuration file
* \details This class is node of internal PIConfig tree.
* %Entry provide access to elements of PIConfig. Each entry has
* children or next properties:
@@ -91,7 +91,7 @@
*/
/*! \class PIConfig::Branch
* \brief %Branch is a list of entries of configuration file
* @brief %Branch is a list of entries of configuration file
* \details %Branch provides some features to get entries lists.
* \snippet piconfig.cpp PIConfig::Branch
*

View File

@@ -1,5 +1,5 @@
/*! \file piconfig.h
* \brief Configuration parser and writer
/*! @file piconfig.h
* @brief Configuration parser and writer
*/
/*
PIP - Platform Independent Primitives
@@ -148,7 +148,7 @@ public:
//! Returns comment
const PIString & comment() const {return _comment;}
/** \brief Returns full name, i.e. name as it looks in file
/** @brief Returns full name, i.e. name as it looks in file
* \details In case of default entry full name always is empty
* \snippet piconfig.cpp fullName */
const PIString & fullName() const {return _full_name;}
@@ -205,7 +205,7 @@ public:
Entry & setValue(const double value) {setValue(PIString::fromNumber(value)); setType("f"); return *this;}
/** \brief Returns entry with name "vname" and default value "def"
/** @brief Returns entry with name "vname" and default value "def"
* \details If there is no suitable entry found, reference to default internal entry with
* value = "def" will be returned, and if "exists" not null it will be set to \b false */
Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exists = 0);
@@ -213,43 +213,43 @@ public:
PICONFIG_GET_VALUE
//! \fn Entry & getValue(const PIString & vname, const char * def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const char * def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const PIStringList & def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const bool def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const short def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const int def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const long def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const uchar def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const ushort def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const uint def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const ulong def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const float def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const double def, bool * exists = 0)
//! \brief Returns entry with name "vname" and default value "def"
//! @brief Returns entry with name "vname" and default value "def"
//! Find all entries with names with substrings "vname" and returns them as \a PIConfig::Branch
@@ -341,43 +341,43 @@ public:
PICONFIG_GET_VALUE
//! \fn Entry & getValue(const PIString & vname, const char * def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const char * def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const PIStringList & def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const bool def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const short def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const int def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const long def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const uchar def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const ushort def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const uint def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const ulong def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const float def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! \fn Entry & getValue(const PIString & vname, const double def, bool * exists = 0)
//! \brief Returns top-level entry with name "vname" and default value "def"
//! @brief Returns top-level entry with name "vname" and default value "def"
//! Returns top-level entries with names with substrings "vname"
@@ -517,7 +517,7 @@ inline PICout operator <<(PICout s, const PIConfig::Entry & v) {
/** \relatesalso PIConfig \relatesalso PIIODevice
* \brief Service function. useful for configuring devices
* @brief Service function. useful for configuring devices
* \details Function takes entry name "name", default value "def" and two
* \a PIConfig::Entry sections: "em" and their parent "ep". If there is no
* parent ep = 0. If "ep" is not null and entry "name" exists in "ep" function

View File

@@ -46,7 +46,7 @@ extern "C" {
#endif
/*! \class PIDir
* \brief Local directory
* @brief Local directory
*
* \section PIDir_sec0 Synopsis
* This class provide access to local file. You can manipulate

View File

@@ -1,5 +1,5 @@
/*! \file pidir.h
* \brief Local directory
/*! @file pidir.h
* @brief Local directory
*/
/*
PIP - Platform Independent Primitives
@@ -57,7 +57,7 @@ public:
//! Returns absolute path of this directory
PIString absolutePath() const;
/** \brief Simplify path of this directory
/** @brief Simplify path of this directory
* \details This function remove repeatedly separators and
* resolve ".." in path. E.g. "/home/.//peri4/src/../.." will
* become "/home" \n This function returns reference to this %PIDir */
@@ -76,7 +76,7 @@ public:
bool setCurrent() {return PIDir::setCurrent(path());}
/** \brief Returns this directory content
/** @brief Returns this directory content
* \details Scan this directory and returns all directories
* and files in one list, sorted alphabetically. This list
* contains also "." and ".." members. There are absolute
@@ -85,7 +85,7 @@ public:
* directories! */
PIVector<PIFile::FileInfo> entries();
/** \brief Returns all this directory content
/** @brief Returns all this directory content
* \details Scan this directory recursively and returns all
* directories and files in one list, sorted alphabetically.
* This list doesn`t contains "." and ".." members. There

View File

@@ -70,7 +70,7 @@
/** \class PIEthernet
* \brief Ethernet device
* @brief Ethernet device
* \details
* \section PIEthernet_sec0 Synopsis
* %PIEthernet designed to work with IPv4 network via two protocols:

View File

@@ -1,5 +1,5 @@
/*! \file piethernet.h
* \brief Ethernet device
/*! @file piethernet.h
* @brief Ethernet device
*/
/*
PIP - Platform Independent Primitives
@@ -42,7 +42,7 @@ public:
//! Contructs UDP %PIEthernet with empty read address
explicit PIEthernet();
//! \brief Type of %PIEthernet
//! @brief Type of %PIEthernet
enum Type {
UDP /** UDP - User Datagram Protocol */ ,
TCP_Client /** TCP client - allow connection to TCP server */ ,
@@ -50,7 +50,7 @@ public:
TCP_SingleTCP /** TCP client single mode - connect & send & disconnect, on each packet */
};
//! \brief Parameters of %PIEthernet
//! @brief Parameters of %PIEthernet
enum Parameters {
ReuseAddress /** Rebind address if there is already binded. Enabled by default */ = 0x1,
Broadcast /** Broadcast send. Disabled by default */ = 0x2,
@@ -62,7 +62,7 @@ public:
};
//! \brief IPv4 network address, IP and port
//! @brief IPv4 network address, IP and port
class PIP_EXPORT Address {
friend class PIEthernet;
public:
@@ -421,37 +421,37 @@ public:
//! \{
//! \fn void newConnection(PIEthernet * client)
//! \brief Raise on new TCP connection received
//! @brief Raise on new TCP connection received
//! \fn void connected()
//! \brief Raise if succesfull TCP connection
//! @brief Raise if succesfull TCP connection
//! \fn void disconnected(bool withError)
//! \brief Raise if TCP connection was closed
//! @brief Raise if TCP connection was closed
//! \}
//! \ioparams
//! \{
#ifdef DOXYGEN
//! \brief read ip, default ""
//! @brief read ip, default ""
string ip;
//! \brief read port, default 0
//! @brief read port, default 0
int port;
//! \brief ethernet parameters
//! @brief ethernet parameters
int parameters;
//! \brief read timeout, default 1000 ms
//! @brief read timeout, default 1000 ms
double readTimeout;
//! \brief write timeout, default 1000 ms
//! @brief write timeout, default 1000 ms
double writeTimeout;
//! \brief time-to-live, default 64
//! @brief time-to-live, default 64
int TTL;
//! \brief time-to-live for multicast, default 1
//! @brief time-to-live for multicast, default 1
int multicastTTL;
#endif
//! \}

View File

@@ -70,7 +70,7 @@
#endif
/*! \class PIFile
* \brief Local file
* @brief Local file
*
* \section PIFile_sec0 Synopsis
* This class provide access to local file. You can manipulate

View File

@@ -1,5 +1,5 @@
/*! \file pifile.h
* \brief Local file
/*! @file pifile.h
* @brief Local file
*/
/*
PIP - Platform Independent Primitives
@@ -266,16 +266,16 @@ public:
//! \{
//! \fn void clear()
//! \brief Clear content of file
//! @brief Clear content of file
//! \fn void resize(llong new_size)
//! \brief Resize file to "new_size" with "fill" filling
//! @brief Resize file to "new_size" with "fill" filling
//! \fn void resize(llong new_size, uchar fill)
//! \brief Resize file to "new_size" with "fill" filling
//! @brief Resize file to "new_size" with "fill" filling
//! \fn void remove()
//! \brief Remove file
//! @brief Remove file
//! \}
//! \ioparams

View File

@@ -29,7 +29,7 @@
/*! \class PIGPIO
* \brief GPIO support
* @brief GPIO support
*
* \section PIGPIO_sec0 Synopsis
* This class provide initialize, get/set and watch functions for GPIO.

View File

@@ -1,5 +1,5 @@
/*! \file pigpio.h
* \brief GPIO
/*! @file pigpio.h
* @brief GPIO
*/
/*
PIP - Platform Independent Primitives
@@ -33,41 +33,41 @@ public:
PIGPIO();
virtual ~PIGPIO();
//! \brief Work mode for pin
//! @brief Work mode for pin
enum Direction {
In /** Input direction (read) */,
Out /** Output direction (write) */
};
//! \brief Returns singleton object of %PIGPIO
//! @brief Returns singleton object of %PIGPIO
static PIGPIO * instance();
//! \brief Initialize pin \"gpio_num\" for \"dir\" mode
//! @brief Initialize pin \"gpio_num\" for \"dir\" mode
void initPin(int gpio_num, Direction dir = PIGPIO::In);
//! \brief Set pin \"gpio_num\" value to \"value\"
//! @brief Set pin \"gpio_num\" value to \"value\"
void pinSet (int gpio_num, bool value);
//! \brief Set pin \"gpio_num\" value to \b true
//! @brief Set pin \"gpio_num\" value to \b true
void pinHigh (int gpio_num) {pinSet(gpio_num, true );}
//! \brief Set pin \"gpio_num\" value to \b false
//! @brief Set pin \"gpio_num\" value to \b false
void pinLow (int gpio_num) {pinSet(gpio_num, false);}
//! \brief Returns pin \"gpio_num\" state
//! @brief Returns pin \"gpio_num\" state
bool pinState(int gpio_num);
//! \brief Starts watch for pin \"gpio_num\".
//! @brief Starts watch for pin \"gpio_num\".
//! \details Pins watching starts only with \a PIThread::start() function!
//! This function doesn`t affect thread state
void pinBeginWatch(int gpio_num);
//! \brief End watch for pin \"gpio_num\".
//! @brief End watch for pin \"gpio_num\".
//! \details Pins watching starts only with \a PIThread::start() function!
//! This function doesn`t affect thread state
void pinEndWatch (int gpio_num);
//! \brief End watch for all pins.
//! @brief End watch for all pins.
//! \details Pins watching starts only with \a PIThread::start() function!
//! This function doesn`t affect thread state
void clearWatch();
@@ -78,7 +78,7 @@ public:
//! \{
//! \fn void pinChanged(int gpio_num, bool new_value)
//! \brief Raise on pin \"gpio_num\" state changes to \"new_value\"
//! @brief Raise on pin \"gpio_num\" state changes to \"new_value\"
//! \details Important! This event will be raised only with started
//! thread.

View File

@@ -21,7 +21,7 @@
/*! \class PIIOByteArray
* \brief PIIODevice wrapper around PIByteArray
* @brief PIIODevice wrapper around PIByteArray
*
* \section PIIOByteArray_sec0 Synopsis
* This class sllow you to use PIByteArray as PIIODevice and pass it to, e.g. PIConfig

View File

@@ -1,5 +1,5 @@
/*! \file piiobytearray.h
* \brief PIIODevice wrapper around PIByteArray
/*! @file piiobytearray.h
* @brief PIIODevice wrapper around PIByteArray
*/
/*
PIP - Platform Independent Primitives

View File

@@ -24,7 +24,7 @@
/*! \class PIIODevice
* \brief Base class for input/output classes
* @brief Base class for input/output classes
*
* \section PIIODevice_sec0 Synopsis
* This class provide open/close logic, threaded read/write and virtual input/output
@@ -125,7 +125,7 @@ PIIODevice::PIIODevice(): PIThread() {
}
/*! \brief Constructs a PIIODevice with path and mode
/*! @brief Constructs a PIIODevice with path and mode
* \param path path to device
* \param type mode for open */
PIIODevice::PIIODevice(const PIString & path, PIIODevice::DeviceMode mode): PIThread() {

View File

@@ -1,5 +1,5 @@
/*! \file piiodevice.h
* \brief Abstract input/output device
/*! @file piiodevice.h
* @brief Abstract input/output device
*/
/*
PIP - Platform Independent Primitives
@@ -35,10 +35,10 @@ typedef bool (*ReadRetFunc)(void * , uchar * , int );
#ifdef DOXYGEN
//! \relatesalso PIIODevice \brief Use this macro to enable automatic creation instances of your class with \a createFromFullPath() function
//! \relatesalso PIIODevice @brief Use this macro to enable automatic creation instances of your class with \a createFromFullPath() function
# define REGISTER_DEVICE(class)
//! \relatesalso PIIODevice \brief Use this macro instead of PIOBJECT when describe your own PIIODevice
//! \relatesalso PIIODevice @brief Use this macro instead of PIOBJECT when describe your own PIIODevice
# define PIIODEVICE(class)
#else
@@ -59,20 +59,20 @@ public:
//! Constructs a empty PIIODevice
explicit PIIODevice();
//! \brief Open modes for PIIODevice
//! @brief Open modes for PIIODevice
enum DeviceMode {
ReadOnly /*! Device can only read */ = 0x01,
WriteOnly /*! Device can only write */ = 0x02,
ReadWrite /*! Device can both read and write */ = 0x03
};
//! \brief Options for PIIODevice, works with some devices
//! @brief Options for PIIODevice, works with some devices
enum DeviceOption {
BlockingRead /*! \a read block until data is received, default off */ = 0x01,
BlockingWrite /*! \a write block until data is sent, default off */ = 0x02
};
//! \brief Characteristics of PIIODevice subclass
//! @brief Characteristics of PIIODevice subclass
enum DeviceInfoFlag {
Sequential /*! Continuous bytestream without datagrams */ = 0x01,
Reliable /*! Channel without data errors / corruptions */ = 0x02
@@ -144,7 +144,7 @@ public:
int reopenTimeout() {return property(PIStringAscii("reopenTimeout")).toInt();}
/** \brief Set "threaded read slot"
/** @brief Set "threaded read slot"
* \details Set external static function of threaded read that will be executed
* at every successful threaded read. Function should have format
* "bool func(void * data, uchar * readed, int size)" */
@@ -153,7 +153,7 @@ public:
//! Set custom data that will be passed to "threaded read slot"
void setThreadedReadData(void * d) {ret_data_ = d;}
/** \brief Set size of threaded read buffer
/** @brief Set size of threaded read buffer
* \details Default size is 4096 bytes. If your device can read at single read
* more than 4096 bytes you should use this function to adjust buffer size */
void setThreadedReadBufferSize(int new_size) {threaded_read_buffer_size = new_size; threadedReadBufferSizeChanged();}
@@ -240,12 +240,12 @@ public:
//! Configure device from PIVariantTypes::IODevice
void configureFromVariant(const PIVariantTypes::IODevice & d);
//! \brief Try to determine suitable device, create new one, configure it with \a configureFromFullPath() and returns it.
//! @brief Try to determine suitable device, create new one, configure it with \a configureFromFullPath() and returns it.
//! \details To function \a configureFromFullPath() "full_path" passed without \a fullPathPrefix() + "://".
//! See \ref PIIODevice_sec7
static PIIODevice * createFromFullPath(const PIString & full_path);
//! \brief Try to determine suitable device, create new one, configure it with \a configureFromVariant() and returns it.
//! @brief Try to determine suitable device, create new one, configure it with \a configureFromVariant() and returns it.
//! \details To function \a configureFromFullPath() "full_path" passed without \a fullPathPrefix() + "://".
//! See \ref PIIODevice_sec7
static PIIODevice * createFromVariant(const PIVariantTypes::IODevice & d);
@@ -276,57 +276,57 @@ public:
//! \{
//! \fn bool open()
//! \brief Open device
//! @brief Open device
//! \fn bool open(const PIString & path)
//! \brief Open device with path "path"
//! @brief Open device with path "path"
//! \fn bool open(const DeviceMode & mode)
//! \brief Open device with mode "mode"
//! @brief Open device with mode "mode"
//! \fn bool open(const PIString & path, const DeviceMode & mode)
//! \brief Open device with path "path" and mode "mode"
//! @brief Open device with path "path" and mode "mode"
//! \fn bool close()
//! \brief Close device
//! @brief Close device
//! \fn int write(PIByteArray data)
//! \brief Write "data" to device
//! @brief Write "data" to device
//! \}
//! \vhandlers
//! \{
//! \fn void flush()
//! \brief Immediate write all buffers
//! @brief Immediate write all buffers
//! \}
//! \events
//! \{
//! \fn void opened()
//! \brief Raise if succesfull open
//! @brief Raise if succesfull open
//! \fn void closed()
//! \brief Raise if succesfull close
//! @brief Raise if succesfull close
//! \fn void threadedReadEvent(uchar * readed, int size)
//! \brief Raise if read thread succesfull read some data
//! @brief Raise if read thread succesfull read some data
//! \fn void threadedWriteEvent(ullong id, int written_size)
//! \brief Raise if write thread successfull write some data of task with ID "id"
//! @brief Raise if write thread successfull write some data of task with ID "id"
//! \}
//! \ioparams
//! \{
#ifdef DOXYGEN
//! \brief setReopenEnabled, default "true"
//! @brief setReopenEnabled, default "true"
bool reopenEnabled;
//! \brief setReopenTimeout in ms, default 1000
//! @brief setReopenTimeout in ms, default 1000
int reopenTimeout;
//! \brief setThreadedReadBufferSize in bytes, default 4096
//! @brief setThreadedReadBufferSize in bytes, default 4096
int threadedReadBufferSize;
#endif
//! \}

View File

@@ -21,7 +21,7 @@
/*! \class PIIOString
* \brief PIIODevice wrapper around PIString
* @brief PIIODevice wrapper around PIString
*
* \section PIIOString_sec0 Synopsis
* This class allow you to use PIString as PIIODevice and pass it to, e.g. PIConfig

View File

@@ -1,5 +1,5 @@
/*! \file piiostring.h
* \brief PIIODevice wrapper around PIString
/*! @file piiostring.h
* @brief PIIODevice wrapper around PIString
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file pipeer.h
* \brief Peering net node
/*! @file pipeer.h
* @brief Peering net node
*/
/*
PIP - Platform Independent Primitives

View File

@@ -138,7 +138,7 @@
/*! \class PISerial
* \brief Serial device
* @brief Serial device
*
* \section PISerial_sec0 Synopsis
* This class provide access to serial device, e.g. COM port. It can read,
@@ -380,7 +380,7 @@ int PISerial::convertSpeed(PISerial::Speed speed) {
}
/** \brief Advanced read function
/** @brief Advanced read function
* \details Read to pointer "read_to" no more than "max_size" and no longer
* than "timeout_ms" milliseconds. If "timeout_ms" < 0 function will be
* wait forever until "max_size" will be readed. If size <= 0 function
@@ -418,7 +418,7 @@ bool PISerial::read(void * data, int size, double timeout_ms) {
}
/** \brief Advanced read function
/** @brief Advanced read function
* \details Read all or no more than "size" and no longer than
* "timeout_ms" milliseconds. If "timeout_ms" < 0 function will be
* wait forever until "size" will be readed. If "size" <= 0
@@ -470,7 +470,7 @@ PIString PISerial::read(int size, double timeout_ms) {
}
/** \brief Advanced read function
/** @brief Advanced read function
* \details Read all or no more than "size" and no longer than
* "timeout_ms" milliseconds. If "timeout_ms" < 0 function will be
* wait forever until "size" will be readed. If "size" <= 0
@@ -686,7 +686,7 @@ void PISerial::setTimeouts() {
}
/** \brief Basic read function
/** @brief Basic read function
* \details Read to pointer "read_to" no more than "max_size". If read is
* set to blocking this function will be wait at least one byte.
* \returns Readed bytes count

View File

@@ -1,5 +1,5 @@
/*! \file piserial.h
* \brief Serial device
/*! @file piserial.h
* @brief Serial device
*/
/*
PIP - Platform Independent Primitives
@@ -34,14 +34,14 @@ public:
//! Contructs an empty %PISerial
explicit PISerial();
//! \brief Parameters of PISerial
//! @brief Parameters of PISerial
enum Parameters {
ParityControl /*! Enable parity check and generate */ = 0x1,
ParityOdd /*! Parity is odd instead of even */ = 0x2,
TwoStopBits /*! Two stop bits instead of one */ = 0x4
};
//! \brief Speed of PISerial
//! @brief Speed of PISerial
enum Speed {
S50 /*! 50 baud */ = 50,
S75 /*! 75 baud */ = 75,
@@ -71,26 +71,26 @@ public:
S4000000 /*! 4000000 baud */ = 4000000
};
//! \brief Information about serial device
//! @brief Information about serial device
struct PIP_EXPORT DeviceInfo {
DeviceInfo();
//! \brief String representation of USB ID in format \"xxxx:xxxx\"
//! @brief String representation of USB ID in format \"xxxx:xxxx\"
PIString id() const;
//! \brief USB Vendor ID
//! @brief USB Vendor ID
uint vID;
//! \brief USB Product ID
//! @brief USB Product ID
uint pID;
//! \brief Path to device, e.g. "COM2" or "/dev/ttyUSB0"
//! @brief Path to device, e.g. "COM2" or "/dev/ttyUSB0"
PIString path;
//! \brief Device description
//! @brief Device description
PIString description;
//! \brief Device manufacturer
//! @brief Device manufacturer
PIString manufacturer;
};
@@ -180,42 +180,42 @@ public:
PIString read(int size = -1, double timeout_ms = 1000.);
PIByteArray readData(int size = -1, double timeout_ms = 1000.);
//! \brief Write to device data "data" with maximum size "size" and wait for data written if "wait" is \b true.
//! @brief Write to device data "data" with maximum size "size" and wait for data written if "wait" is \b true.
//! \returns \b true if sended bytes count = "size"
bool send(const void * data, int size);
//! \brief Write to device byte array "data"
//! @brief Write to device byte array "data"
//! \returns \b true if sended bytes count = size of string
bool send(const PIByteArray & data) {return send(data.data(), data.size_s());}
//! \brief Returns all available speeds for serial devices
//! @brief Returns all available speeds for serial devices
static PIVector<int> availableSpeeds();
//! \brief Returns all available system devices path. If "test" each device will be tried to open
//! @brief Returns all available system devices path. If "test" each device will be tried to open
static PIStringList availableDevices(bool test = false);
//! \brief Returns all available system devices. If "test" each device will be tried to open
//! @brief Returns all available system devices. If "test" each device will be tried to open
static PIVector<DeviceInfo> availableDevicesInfo(bool test = false);
//! \ioparams
//! \{
#ifdef DOXYGEN
//! \brief device, default ""
//! @brief device, default ""
string device;
//! \brief input/output speed, default 115200
//! @brief input/output speed, default 115200
int speed;
//! \brief dataBitsCount, default 8
//! @brief dataBitsCount, default 8
int dataBitsCount;
//! \brief parityControl, default false
//! @brief parityControl, default false
bool parityControl;
//! \brief parityOdd, default false
//! @brief parityOdd, default false
bool parityOdd;
//! \brief twoStopBits, default false
//! @brief twoStopBits, default false
bool twoStopBits;
#endif
//! \}

View File

@@ -41,7 +41,7 @@
/*! \class PISharedMemory
* \brief Shared memory
* @brief Shared memory
*
* \section PISharedMemory_sec0 Synopsis
* This class provide access to local file. You can manipulate

View File

@@ -1,5 +1,5 @@
/*! \file pisharedmemory.h
* \brief Shared memory
/*! @file pisharedmemory.h
* @brief Shared memory
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file pispi.h
* \brief SPI device
/*! @file pispi.h
* @brief SPI device
*/
/*
PIP - Platform Independent Primitives
@@ -33,7 +33,7 @@ public:
explicit PISPI(const PIString & path = PIString(), uint speed_hz = 1000000, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);
virtual ~PISPI();
//! \brief Parameters of PISPI
//! @brief Parameters of PISPI
enum Parameters {
ClockInverse /*! SPI clk polarity control*/ = 0x1,
ClockPhaseShift /*! SPI clk phase control */ = 0x2,

View File

@@ -21,7 +21,7 @@
/*! \class PITransparentDevice
* \brief PIIODevice that pass write to read
* @brief PIIODevice that pass write to read
*
* \section PITransparentDevice_sec0 Synopsis
* This class pass all data from \a write() function to \a read().

View File

@@ -1,5 +1,5 @@
/*! \file pitransparentdevice.h
* \brief PIIODevice that pass write to read
/*! @file pitransparentdevice.h
* @brief PIIODevice that pass write to read
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file piusb.h
* \brief USB device
/*! @file piusb.h
* @brief USB device
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file pibasetransfer.h
* \brief Base class for reliable send and receive data in fixed packets with error correction, pause and resume
/*! @file pibasetransfer.h
* @brief Base class for reliable send and receive data in fixed packets with error correction, pause and resume
*/
/*
PIP - Platform Independent Primitives

View File

@@ -1,5 +1,5 @@
/*! \file pibroadcast.h
* \brief Broadcast for all interfaces, including loopback
/*! @file pibroadcast.h
* @brief Broadcast for all interfaces, including loopback
*/
/*
PIP - Platform Independent Primitives
@@ -117,7 +117,7 @@ public:
//! \{
//! \fn void receiveEvent(PIByteArray data)
//! \brief Raise on packet received
//! @brief Raise on packet received
//! \}

View File

@@ -21,7 +21,7 @@
#include "piconfig.h"
/** \class PIConnection
* \brief Complex Input/Output point
* @brief Complex Input/Output point
*
* \section PIConnection_synopsis Synopsis
* %PIConnection provides abstract layer over physical devices,

Some files were not shown because too many files have changed in this diff Show More