---
name: "NetSDS::Session"
section: "3pm"
platform: "linux"
package: "libnetsds-perl"
version: "1.301-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/NetSDS::Session"
---

# NetSDS::Session(3pm)

memcached based session storage API

## NAME

NetSDS::Session - memcached based session storage API

## SYNOPSIS

```
        use NetSDS::Session;
        # Connecting to Memcached server
        my $sess = NetSDS::Session->new(
                host => '12.34.56.78',
                port => '12345',
        );
        ...
        # Retrieve session key somehow
        $session_key = $cgi->param('sess_key');
        $sess->open($session_key);
        my $filter = $sess->get('filter');
        ...
        $sess->set('filter', $new_filter);
        ...
        $sess->close();
        1;
```

## DESCRIPTION

`"NetSDS::Session"` module provides API to session data storage based on Memcached server.

Each session represented as hash reference structure identified by UUID string. Most reasonable usage of this module is a temporary data storing for web based GUI between HTTP requests. However it's possible to find some other tasks.

Internally session structure is transformed to/from JSON string when interacting with Memcached.

## CLASS API

- **new(%params)** - class constructor

  Constructor establish connection to memcached server and set default session parameters.

  Parameters:

  ```
          * host - memcached server hostname or IP address (default: 127.0.0.1)
          * port - memcached server TCP port (default: 11211)
  ```

  Example:

  ```
          my $sess_hdl = NetSDS::Session->new(
                  host => '12.34.56.78',
                  port => '99999',
          );
  ```

- **open($sess\_id)** - open session

  Retrieve session data from server by session key (UUID string)

  If no session exists then empty hashref is returned.

- **id()** - get session id

  Returns current session id.

  Example:

  ```
          my $sess_id = $sess->id();
  ```

- **set($key, $value)** - set session parameter

  Set new session parameter value identified by it's key.

  Example:

  ```
          $sess->set('order', 'id desc');
  ```

- **get($key)** - get session parameter

  Return session parameter value by it's key.

  Example:

  ```
          my $order = $sess->get('order');
  ```

- **delete($key)** - delete session parameter by key

  Delete session parameter by it's key.

  Returns updated session data as hash reference.

  Example:

  ```
          $sess->delete('order');
  ```

- **clear()** - clear session data

  This method clears all session data.

  Example:

  ```
          $sess->clear();
  ```

- **sync()** - save session

  Synchronize session data on Memcached server.

  Example:

  ```
          $sess->sync();
  ```

- **close()** - save and close session

  This method save all data to server and clear current session id and data from object.

  Example:

  ```
          $session->close();
  ```

## SEE ALSO

- •

  Cache::Memcached::Fast - XS implementation of Memcached API

- •

  JSON - JSON encoding/decoding API

## AUTHORS

Michael Bochkaryov \<misha@rattler.kiev.ua\>

## THANKS

Yana Kornienko - for initial module implementation

## LICENSE

Copyright (C) 2008-2009 Net Style Ltd.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
