Apache Portable Runtime
apr_uuid.h
Go to the documentation of this file.
00001 /* Licensed to the Apache Software Foundation (ASF) under one or more
00002  * contributor license agreements.  See the NOTICE file distributed with
00003  * this work for additional information regarding copyright ownership.
00004  * The ASF licenses this file to You under the Apache License, Version 2.0
00005  * (the "License"); you may not use this file except in compliance with
00006  * the License.  You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /**
00018  * @file apr_uuid.h
00019  * @brief APR UUID library
00020  */
00021 #ifndef APR_UUID_H
00022 #define APR_UUID_H
00023 
00024 #include "apu.h"
00025 #include "apr_errno.h"
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif /* __cplusplus */
00030 
00031 /**
00032  * @defgroup APR_UUID UUID Handling
00033  * @ingroup APR
00034  * @{
00035  */
00036 
00037 /**
00038  * we represent a UUID as a block of 16 bytes.
00039  */
00040 
00041 typedef struct {
00042     unsigned char data[16]; /**< the actual UUID */
00043 } apr_uuid_t;
00044 
00045 /** UUIDs are formatted as: 00112233-4455-6677-8899-AABBCCDDEEFF */
00046 #define APR_UUID_FORMATTED_LENGTH 36
00047 
00048 
00049 /**
00050  * Generate and return a (new) UUID
00051  * @param uuid The resulting UUID
00052  */ 
00053 APR_DECLARE(void) apr_uuid_get(apr_uuid_t *uuid);
00054 
00055 /**
00056  * Format a UUID into a string, following the standard format
00057  * @param buffer The buffer to place the formatted UUID string into. It must
00058  *               be at least APR_UUID_FORMATTED_LENGTH + 1 bytes long to hold
00059  *               the formatted UUID and a null terminator
00060  * @param uuid The UUID to format
00061  */ 
00062 APR_DECLARE(void) apr_uuid_format(char *buffer, const apr_uuid_t *uuid);
00063 
00064 /**
00065  * Parse a standard-format string into a UUID
00066  * @param uuid The resulting UUID
00067  * @param uuid_str The formatted UUID
00068  */ 
00069 APR_DECLARE(apr_status_t) apr_uuid_parse(apr_uuid_t *uuid, const char *uuid_str);
00070 
00071 /** @} */
00072 #ifdef __cplusplus
00073 }
00074 #endif
00075 
00076 #endif /* APR_UUID_H */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines