---
name: "TM::Materialized::Stream"
section: "3pm"
platform: "linux"
package: "libtm-perl"
version: "1.56-7"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/TM::Materialized::Stream"
---

# TM::Materialized::Stream(3pm)

Topic Maps, abstract class for maps with stream based input/output drivers

## NAME

TM::Materialized::Stream - Topic Maps, abstract class for maps with stream based input/output drivers

## SYNOPSIS

```
  # this class will never be directly used for instantiation
  # see the description in TM and individual low-level drivers (AsTMa, ...)
```

## DESCRIPTION

This class is a subclass of TM, so it implements map objects. It is abstract, though, as it only defined how a stream-based driver package should behave. It may thus be inherited by classes which implement external formats (TM::Materialized::AsTMa, TM::Materialized::XML, ....).

## INTERFACE

### Constructor

The constructor of implementations should expect a hash as parameter containing the field(s) from TM and one or more of the following:

- *url*:

  If given, then the instance will be read from this url whenever synced in.

- *file*:

  If given, then the data will be read/written from/to this file. This is just a convenience as it will be mapped to *url*.

- *inline*:

  If given, then the instance will be read directly from this text provided inline when synced.

If several fields (`"file"`, `"url"`, `"inline"`) are specified, it is undefined which one will be taken.

Examples (using AsTMa):

```
   # opening from an AsTMa= file
   $atm = new TM::Materialized::AsTMa (file   => 'here.atm');
   # why need a file? files are evil, anyway
   $atm = new TM::Materialized::AsTMa (inline => '# this is AsTMa');
```

## SEE ALSO

TM

## AUTHOR INFORMATION

Copyright 200\[2-6\], Robert Barta \<drrho@cpan.org\>, All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. http://www.perl.com/perl/misc/Artistic.html
