AnyEvent-OWNet

 view release on metacpan or  search on metacpan

lib/AnyEvent/OWNet.pm  view on Meta::CPAN

use strict;
use warnings;
package AnyEvent::OWNet;
$AnyEvent::OWNet::VERSION = '1.163170';
# ABSTRACT: Client for 1-wire File System server


use 5.008;
use constant DEBUG => $ENV{ANYEVENT_OWNET_DEBUG};
use AnyEvent;
use AnyEvent::Handle;
use AnyEvent::Socket;
use Carp qw/croak/;
use Sub::Name;
use Try::Tiny;

use AnyEvent::OWNet::Constants;

use AnyEvent::OWNet::Response;


sub new {
  my ($pkg, %p) = @_;
  bless
    {
     connect_queue => [],
     host => '127.0.0.1',
     port => 4304,
     timeout => 5,
     %p,
    }, $pkg;
}

sub _msg {
  my ($self, $req) = @_;
  my $version = exists $req->{version} ? $req->{version} : 0;
  my $data = exists $req->{data} ? $req->{data} : '';
  my $payload = length $data;
  my $type =
    exists $req->{type} ? $req->{type} : OWNET_MSG_READ; # default to read
  my $sg = exists $req->{sg} ? $req->{sg} : OWNET_DEFAULT_FLAGS;
  my $size = exists $req->{size} ? $req->{size} : OWNET_DEFAULT_DATA_SIZE;
  my $offset = exists $req->{offset} ? $req->{offset} : 0;
  return pack 'N6a*', $version, $payload, $type, $sg, $size, $offset, $data;
}


sub read {
  my ($self, $path, $sub) = @_;
  $self->_run_cmd({ data => $path.chr(0), type => OWNET_MSG_READ }, $sub);
}


sub write {
  my ($self, $path, $value, $sub) = @_;
  $self->_run_cmd({ data => $path.chr(0).$value,
                   size => length $value,
                   type => OWNET_MSG_WRITE }, $sub);
}


sub dir {
  my ($self, $path, $sub) = @_;
  $self->_run_cmd({ data => $path."\0", type => OWNET_MSG_DIR, size => 0 },
                 $sub);
}


sub present {
  my ($self, $path, $sub) = @_;
  $self->_run_cmd({ data => $path."\0", type => OWNET_MSG_PRESENT }, $sub);
}


sub dirall {



( run in 1.023 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )