Files
mfem/general/isockstream.hpp
T
2020-03-09 15:36:41 -07:00

53 lines
1.5 KiB
C++

// Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
// LICENSE and NOTICE for details. LLNL-CODE-806117.
//
// This file is part of the MFEM library. For more information and source code
// availability visit https://mfem.org.
//
// MFEM is free software; you can redistribute it and/or modify it under the
// terms of the BSD-3 license. We welcome feedback and contributions, see file
// CONTRIBUTING.md for details.
#ifndef MFEM_ISOCKSTREAM
#define MFEM_ISOCKSTREAM
#include "../config/config.hpp"
#include <sstream>
namespace mfem
{
/** Data type for input socket stream class. The class is used as server
to receive data from a client on specified port number. The user gets
data from the stream as from any other input stream.
@deprecated This class is DEPRECATED. New code should use class
@ref socketserver (see socketstream.hpp). */
class isockstream
{
private:
int portnum, portID, socketID, error;
char *Buf;
int establish();
int read_data(int socketid, char *buf, int size);
public:
/** The constructor takes as input the port number on which it
establishes a server. */
explicit isockstream(int port);
bool good() { return (!error); }
/// Start waiting for data and return it in an input stream.
void receive(std::istringstream **in);
/** Virtual destructor. If the data hasn't been sent it sends it. */
~isockstream();
};
}
#endif