/* * Copyright (c) 1995, 1996 Gunther Schadow. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "pg_config.h" IDENT("@(#) PGObject.cc (Gunther Schadow) 12/19/96"); #pragma implementation #include "PGObject.h" #include "logfile.h" #include "exception.h" #include "xios.h" #include PGObject::~PGObject() { if(_status != zombie) { // LOGDEBUG("dtor on: %p", this); _status = zombie; } else LOGWARNING("2nd dtor on: %p (%4x, %4x)", this, (int)_subclass, (int)_type); } bool PGObject::OK() const { if ( _status & ( zombie | broken ) ) { if ( _status & zombie & broken ) FATAL("broken zombie"); else if ( _status & zombie ) FATAL("zombie"); else FATAL("broken"); } return TRUE; } result PGObject::str2o(const char *str, er_manip_t er) { if(str == NULL) unset(); else if(*str == '\0') unset(); else { istrstream is(str); xios xis(is); if(er != NULL) (*er)(is); else hl7er(is); return input(is); } return SUCCESS; } char * PGObject::o2str(er_manip_t er) { ostrstream os; xios xos(os); if(er != NULL) (*er)(os); else hl7er(os); output(os); os << '\0'; return os.str(); }