// This may look like C code, but it is really -*- C++ -*-
// 
// <copyright> 
//  
//  Copyright (c) 1993 
//  Institute for Information Processing and Computer Supported New Media (IICM), 
//  Graz University of Technology, Austria. 
//  
// </copyright> 
// 
// 
// <file> 
// 
// Name:        data.h
// 
// Purpose:     piece of data that is passed from the input to the various 
//              outputs of a spooler
// 
// Created:     27 Sep 93   Joerg Faschingbauer
// 
// Modified:    
// 
// Description: 
// 
// 
// </file> 
#ifndef hg_utils_data_h
#define hg_utils_data_h

#include "smartptr.h"



// <class> 
//  
// Name:             Data
// 
// Purpose:          
// 
// Public Interface: 
// 
// Description:      
// 
// </class> 
class Data : public RefCounted {
public:
   Data (char*, int size) ;
   ~Data() ;

   const char* raw() const { return raw_; }
   int size() const { return size_; }

   static int instances() { return instances_; }

   /* MemoryPoolDeclare (Data, DataPool) */

private:
   char* raw_ ;
   int size_ ;

   static int instances_ ;
} ;

// <class> 
//  
// Name:             DataPtr
// 
// Purpose:          
// 
// Public Interface: 
// 
// Description:      
// 
// </class> 
SmartPtrdeclare (DataPtr, Data) ;



#endif
