1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/as_uuid.h Fri Nov 28 11:21:08 2008 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +// 1.5 +// OSSP asgui - Accounting system graphical user interface 1.6 +// Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/) 1.7 +// Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com> 1.8 +// Copyright (c) 2002-2004 Michael Schloh von Bennewitz <michael@schloh.com> 1.9 +// Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH 1.10 +// 1.11 +// This file is part of OSSP asgui, an accounting system graphical user 1.12 +// interface which can be found at http://www.ossp.org/pkg/tool/asgui/. 1.13 +// 1.14 +// Permission to use, copy, modify, and distribute this software for 1.15 +// any purpose with or without fee is hereby granted, provided that 1.16 +// the above copyright notice and this permission notice appear in all 1.17 +// copies. 1.18 +// 1.19 +// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 1.20 +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1.21 +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1.22 +// IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR 1.23 +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.24 +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.25 +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 1.26 +// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1.27 +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1.28 +// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 1.29 +// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1.30 +// SUCH DAMAGE. 1.31 +// 1.32 +// as_uuid.h: ISO C++ interface 1.33 +// 1.34 + 1.35 +#ifndef UUIDGEN_H 1.36 +#define UUIDGEN_H 1.37 + 1.38 +#include <string> 1.39 + 1.40 +#include "as_gui.h" 1.41 + 1.42 + 1.43 +namespace AS { 1.44 + 1.45 +// 1.46 +// A DCE standard UUID, can generate (multiple) 1.47 +// IDs and format them for a printed output 1.48 +// 1.49 +class Uuid 1.50 +{ 1.51 +private: 1.52 + std::string m_Fmtstr; // Human readable format 1.53 + U32 time_low; // 1.54 + U16 time_mid; // Fields according to 1.55 + U16 time_hi_and_version; // the IETF specification 1.56 + U16 clock_seq; // draft-mealling-uuid-urn-00 1.57 + U8 node[6]; // 1.58 + 1.59 +public: 1.60 + void genId(void); // Generate an UUID 1.61 + void setString(void); // Sets the formatted representation 1.62 + std::string getString(void); // Return a formatted representation 1.63 + 1.64 +private: 1.65 + void setId(const unsigned char *); // Helper method to set data members 1.66 + int setMac(unsigned char *); // Helper method to set MAC node ID 1.67 +}; 1.68 +} // namespace AS 1.69 + 1.70 +#endif // UUIDGEN_H