// =====================================================================
//  $Id: TOutputObjectSharedMemory.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $
//  $Name: CLDAQ-1-06-02 $
// =====================================================================
#ifndef __TOUTPUTOBJECTSHAREDMEMORY_HH
#define __TOUTPUTOBJECTSHAREDMEMORY_HH

#include "Tglobals.h"
#include "TObjectSharedMemory.hh"
#include "TOutputObjectStream.hh"

class TStreamableObject;
class TObjectFilter;

class TOutputObjectSharedMemory
  : public TObjectSharedMemory, public TOutputObjectStream
{

  public:
    TOutputObjectSharedMemory( Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent );
    TOutputObjectSharedMemory( TObjectFilter* filter, Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent );
    ~TOutputObjectSharedMemory();

  public:
    Tint Write( TStreamableObject& object );

  private:
    static Tvoid catchSignal( Tint sigid );

};

#endif
