#!/usr/bin/env python
#############################################################################
# Copyright (C) DSTC Pty Ltd (ACN 052 372 577) 1997, 1998, 1999
# Unpublished work.  All Rights Reserved.
#
# The software contained on this media is the property of the
# DSTC Pty Ltd.  Use of this software is strictly in accordance
# with the license agreement in the accompanying LICENSE.DOC file.
# If your distribution of this software does not contain a
# LICENSE.DOC file then you have no rights to use this software
# in any manner and should contact DSTC at the address below
# to determine an appropriate licensing arrangement.
# 
#      DSTC Pty Ltd
#      Level 7, GP South
#      Staff House Road
#      University of Queensland
#      St Lucia, 4072
#      Australia
#      Tel: +61 7 3365 4310
#      Fax: +61 7 3365 4311
#      Email: enquiries@dstc.edu.au
# 
# This software is being provided "AS IS" without warranty of
# any kind.  In no event shall DSTC Pty Ltd be liable for
# damage of any kind arising out of or in connection with
# the use or performance of this software.
#
# Project:  Hector
# File:     $Source: /projects/fnorb/Fnorb-1.1/orb/RCS/uuid.py,v $
#
#############################################################################
"""
unique ID string generator

used to provide unique ids.  will eventually be replaced by a UUID
module, but i'm too lazy to implement that at this moment.

"""
#############################################################################

from   time   import time
from   random import randint


#############################################################################

def id():
    """Generate a unique ID string."""

    t = long((time() % 1.0) * 1.0e8)
    return "%08X-%04X" % (t, randint(0, 0xffff))


def uuid():
    """Generate an IETF RFC-xxxx UUID (one day)."""

    #fixme: needs a portable way to find the ethernet address ...
    t = long((time() % 1.0) * 1.0e8)
    l = (randint(0, 0xffff) << 16) | randint(0, 0xffff)
    return "%08X-%04X-%04X-%04X-%08X" % \
	   (t, randint(0,0xffff), randint(0,0xffff), randint(0,0xffff), l)


#############################################################################

if __name__ == "__main__":
    print uuid()


#############################################################################
