| qbutil.h | qbutil.h | |||
|---|---|---|---|---|
| skipping to change at line 23 | skipping to change at line 23 | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU Lesser General Public License for more details. | * GNU Lesser General Public License for more details. | |||
| * | * | |||
| * You should have received a copy of the GNU Lesser General Public License | * You should have received a copy of the GNU Lesser General Public License | |||
| * along with libqb. If not, see <http://www.gnu.org/licenses/>. | * along with libqb. If not, see <http://www.gnu.org/licenses/>. | |||
| */ | */ | |||
| #ifndef QB_UTIL_H_DEFINED | #ifndef QB_UTIL_H_DEFINED | |||
| #define QB_UTIL_H_DEFINED | #define QB_UTIL_H_DEFINED | |||
| /* *INDENT-OFF* */ | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| /* *INDENT-ON* */ | ||||
| #include <pthread.h> | ||||
| #include <stdint.h> | #include <stdint.h> | |||
| #ifndef S_SPLINT_S | #ifndef S_SPLINT_S | |||
| #include <unistd.h> | #include <unistd.h> | |||
| #endif /* S_SPLINT_S */ | #endif /* S_SPLINT_S */ | |||
| /** | /** | |||
| * @file qbutil.h | * @file qbutil.h | |||
| * @author Angus Salkeld <asalkeld@redhat.com> | * @author Angus Salkeld <asalkeld@redhat.com> | |||
| * | * | |||
| * These are some convience functions used throughout libqb. | * These are some convience functions used throughout libqb. | |||
| */ | */ | |||
| /* *INDENT-OFF* */ | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| /* *INDENT-ON* */ | ||||
| /** | /** | |||
| * @typedef qb_thread_lock_type_t | * @typedef qb_thread_lock_type_t | |||
| * QB_THREAD_LOCK_SHORT is a short term lock (spinlock if available on your system) | * QB_THREAD_LOCK_SHORT is a short term lock (spinlock if available on your system) | |||
| * QB_THREAD_LOCK_LONG is a mutex | * QB_THREAD_LOCK_LONG is a mutex | |||
| */ | */ | |||
| typedef enum { | typedef enum { | |||
| QB_THREAD_LOCK_SHORT, | QB_THREAD_LOCK_SHORT, | |||
| QB_THREAD_LOCK_LONG, | QB_THREAD_LOCK_LONG, | |||
| } qb_thread_lock_type_t; | } qb_thread_lock_type_t; | |||
| skipping to change at line 123 | skipping to change at line 125 | |||
| */ | */ | |||
| uint64_t qb_util_nano_from_epoch_get(void); | uint64_t qb_util_nano_from_epoch_get(void); | |||
| /** | /** | |||
| * Get the time in timespec since epoch. | * Get the time in timespec since epoch. | |||
| * @param ts (out) the timespec | * @param ts (out) the timespec | |||
| * @return status (0 == ok, -errno on error) | * @return status (0 == ok, -errno on error) | |||
| */ | */ | |||
| void qb_util_timespec_from_epoch_get(struct timespec *ts); | void qb_util_timespec_from_epoch_get(struct timespec *ts); | |||
| /** | ||||
| * strerror_r replacement. | ||||
| */ | ||||
| char *qb_strerror_r(int errnum, char *buf, size_t buflen); | ||||
| typedef struct qb_util_stopwatch qb_util_stopwatch_t; | ||||
| /** | ||||
| * Create a Stopwatch (to time operations) | ||||
| */ | ||||
| qb_util_stopwatch_t * qb_util_stopwatch_create(void); | ||||
| /** | ||||
| * Free the stopwatch | ||||
| */ | ||||
| void qb_util_stopwatch_free(qb_util_stopwatch_t *sw); | ||||
| /** | ||||
| * Start the stopwatch | ||||
| * | ||||
| * This also acts as a reset. Essentially it sets the | ||||
| * starting time. | ||||
| */ | ||||
| void qb_util_stopwatch_start(qb_util_stopwatch_t *sw); | ||||
| /** | ||||
| * Stop the stopwatch | ||||
| * | ||||
| * This just allows you to get the elapsed time. So | ||||
| * you can call this multiple times. Do not call qb_util_stopwatch_start() | ||||
| * unless you want to reset the stopwatch. | ||||
| */ | ||||
| void qb_util_stopwatch_stop(qb_util_stopwatch_t *sw); | ||||
| /** | ||||
| * Get the elapsed time in micro seconds. | ||||
| * | ||||
| * (it must have been started and stopped). | ||||
| */ | ||||
| uint64_t qb_util_stopwatch_us_elapsed_get(qb_util_stopwatch_t *sw); | ||||
| /** | ||||
| * Get the elapsed time in seconds. | ||||
| * | ||||
| * (it must have been started and stopped). | ||||
| */ | ||||
| float qb_util_stopwatch_sec_elapsed_get(qb_util_stopwatch_t *sw); | ||||
| /* *INDENT-OFF* */ | /* *INDENT-OFF* */ | |||
| #ifdef __cplusplus | #ifdef __cplusplus | |||
| } | } | |||
| #endif /* __cplusplus */ | #endif /* __cplusplus */ | |||
| /* *INDENT-ON* */ | /* *INDENT-ON* */ | |||
| #endif /* QB_UTIL_H_DEFINED */ | #endif /* QB_UTIL_H_DEFINED */ | |||
| End of changes. 3 change blocks. | ||||
| 6 lines changed or deleted | 56 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||