---
name: "FusionInventory::Agent::Storage"
section: "3pm"
platform: "linux"
package: "fusioninventory-agent"
version: "2.2.3-8"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/FusionInventory::Agent::Storage"
---

# FusionInventory::Agent::Storage(3pm)

A data serializer/deserializer

## NAME

FusionInventory::Agent::Storage - A data serializer/deserializer

## SYNOPSIS

```
  my $storage = FusionInventory::Agent::Storage->new(
      directory => '/tmp'
  );
  my $data = $storage->restore(
      module => "FusionInventory::Agent"
  );
  $data->{foo} = 'bar';
  $storage->save(data => $data);
```

## DESCRIPTION

This is the object used by the agent to ensure data persistancy between invocations.

Each data structure is saved in a file, whose name is automatically determined according to object class name. An optional index number can be used to differentiate between consecutives usages.

## METHODS

### new(%params)

The constructor. The following parameters are allowed, as keys of the `%params` hash:

- *logger*

  the logger object to use

- *directory*

  the directory to use for storing data (mandatory)

### getDirectory

Returns the underlying directory for this storage.

### has(%params)

Returns true if a saved data structure exists. The following arguments are allowed:

- *name*

  The file name to use for saving the data structure (mandatory).

### save(%params)

Save given data structure. The following parameters are allowed, as keys of the `%params` hash:

- *name*

  The file name to use for saving the data structure (mandatory).

### restore(%params)

Restore a saved data structure. The following parameters are allowed, as keys of the `%params` hash:

- *name*

  The file name to use for saving the data structure (mandatory).

### remove(%params)

Delete the file containing a seralized data structure for a given module. The following parameters are allowed, as keys of the `%params` hash:

- *name*

  The file name to use for saving the data structure (mandatory).
