Files
cdev-1.7.2n/extensions/cdevGenericServer/include/rsvcStreamable.h
2022-12-13 12:44:04 +01:00

44 lines
1.2 KiB
C++

//-----------------------------------------------------------------------------
// Copyright (c) 1994,1995 Southeastern Universities Research Association,
// Continuous Electron Beam Accelerator Facility
//
// This software was developed under a United States Government license
// described in the NOTICE file included as part of this distribution.
//
//-----------------------------------------------------------------------------
//
// Description:
// Abstract class for network streamable class
//
// Author: Jie Chen
//
//
//
#ifndef _RSVC_STREAMABLE_H
#define _RSVC_STREAMABLE_H
#include <stdio.h>
#include <rsvcErr.h>
class rsvcStreamable
{
public:
// virtual destrcutor
virtual ~rsvcStreamable (void);
// return stream size
virtual size_t streamSize (void) = 0;
// stream data object out into a newly allocated buffer
virtual int streamOut (char** buffer, size_t* size) = 0;
// stream data object out into a preallocated buffer
virtual int streamOut (char* buffer, size_t len) = 0;
// recreate data from incoming data buffer
virtual int streamIn (char* buffer, size_t len) = 0;
protected:
rsvcStreamable (void);
};
#endif