00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00033
00034 #ifndef GROOVX_TCL_OBJ_CC_UTC20050628162420_DEFINED
00035 #define GROOVX_TCL_OBJ_CC_UTC20050628162420_DEFINED
00036
00037 #include "tcl/obj.h"
00038
00039 #include <tcl.h>
00040
00041 tcl::obj::obj() : m_obj(Tcl_NewObj()) { incr_ref(m_obj); }
00042
00043 void tcl::obj::append(const tcl::obj& other)
00044 {
00045 make_unique();
00046 Tcl_AppendObjToObj(m_obj, other.m_obj);
00047 }
00048
00049 bool tcl::obj::is_shared() const
00050 {
00051 return Tcl_IsShared(m_obj);
00052 }
00053
00054 void tcl::obj::make_unique() const
00055 {
00056 if (is_shared())
00057 {
00058 Tcl_Obj* new_obj = Tcl_DuplicateObj(m_obj);
00059 assign(new_obj);
00060 }
00061 }
00062
00063 const char* tcl::obj::tcltype_name() const
00064 {
00065 Tcl_ObjType* type = m_obj->typePtr;
00066
00067 return type ? type->name : "(none)";
00068 }
00069
00070 void tcl::obj::incr_ref(Tcl_Obj* obj)
00071 {
00072 Tcl_IncrRefCount(obj);
00073 }
00074
00075 void tcl::obj::decr_ref(Tcl_Obj* obj)
00076 {
00077 Tcl_DecrRefCount(obj);
00078 }
00079
00080 static const char __attribute__((used)) vcid_groovx_tcl_obj_cc_utc20050628162420[] = "$Id: obj.cc 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00081 #endif // !GROOVX_TCL_OBJ_CC_UTC20050628162420_DEFINED