Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members  

Object.cpp

00001 /*
00002  * NOTE: "zlib/libpng" style License
00003  *
00004  *                 ----=== s t d n e t ===----
00005  *
00006  * Copyright (c) 2002 Warwick Molloy   w-molloy@users.sf.net
00007  *
00008  * Copyright (c) 2002 Stdnet Community
00009  * HTTP://Sourceforge.net/projects/stdnet
00010  *
00011  * All references to "software" refer to the stdnet.
00012  *
00013  * This software is provided 'as-is', without any express or
00014  * implied warranty. In no event will the authors be held liable
00015  * for any damages arising from the use of this software.
00016  *
00017  * Permission is granted to anyone to use this software for any
00018  * purpose, including commercial applications, and to alter it
00019  * and redistribute it freely, subject to the following
00020  * restrictions:
00021  *
00022  * 1.  The origin of this software must not be misrepresented;
00023  *     you must not claim that you wrote the original software.
00024  *     If you use this software in a product, an acknowledgment
00025  *     in the product documentation would be appreciated but
00026  *     is not required.
00027  *
00028  * 2.  Altered source versions must be plainly marked as such,
00029  *     and must not be misrepresented as being the original
00030  *     software.
00031  *
00032  * 3.  This notice may not be removed or altered from any source
00033  *     distribution.
00034  */
00035 
00036 #include <stdnet/config.h>
00037 #include <stdnet/system/String>
00038 
00039 #include <stdio.h>
00040 
00041 namespace stdbase {
00042     namespace system {
00043 
00044     //  These methods are the standard, all-platform
00045     //  methods required for Object.
00046     //
00047 
00048 Object::
00049     Object( void )
00050     :   count(0),
00051         lock()
00052 {}
00053 
00054 Object::
00055     ~Object( void )
00056 { count = 0; }
00057 
00058 void Object::
00059     inc() const
00060 {
00061     lock.seize();
00062     count++;
00063     lock.release();
00064 }
00065 
00066 unsigned Object::
00067     dec() const
00068 {
00069     unsigned u;
00070 
00071     lock.seize();
00072     u = --count;
00073     lock.release();
00074     return u;
00075 }
00076 
00077 bool Object::
00078     equals( ObjectRef object )
00079 {
00080     return object.get() == this;
00081 }
00082 
00083 system::reference<String> Object::
00084 toString() const
00085 {
00086     char buffer[64];
00087     sprintf( buffer, " Object@0x08X ", this );
00088     return system::String::create( buffer );
00089 }
00090 
00091 
00092     } // -- end namespace system --
00093 } //------- end namespace stdbase --
00094 
00095 

Generated at Tue Aug 13 14:19:39 2002 for stdnet2 by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001