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
1.2.9.1 written by Dimitri van Heesch,
© 1997-2001