File Coverage

blib/lib/BACnet/DataTypes/OctetString.pm
Criterion Covered Total %
statement 27 29 93.1
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod 0 2 0.0
total 35 40 87.5


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2              
3             package BACnet::DataTypes::OctetString;
4              
5 27     27   149 use warnings;
  27         63  
  27         1614  
6 27     27   132 use strict;
  27         67  
  27         594  
7              
8 27     27   97 use bytes;
  27         54  
  27         184  
9              
10 27     27   681 use BACnet::DataTypes::Utils;
  27         56  
  27         848  
11              
12 27     27   109 use parent 'BACnet::DataTypes::DataType';
  27         87  
  27         150  
13              
14             sub construct {
15 7     7 0 344416 my ( $class, $input_octet_string, $modified_tag ) = @_;
16              
17 7         36 my $self = {
18             data => '',
19             val => $input_octet_string,
20             };
21              
22             # Context Tag doc. page 378
23              
24 7         43 $self->{data} .= BACnet::DataTypes::Utils::_construct_head(
25             BACnet::DataTypes::Utils::OCTET_STRING_TAG,
26             $modified_tag, length($input_octet_string) );
27              
28 7         22 $self->{data} .= $input_octet_string;
29              
30 7         27 return bless $self, $class;
31             }
32              
33             sub parse {
34 7     7 0 21 my ( $class, $data_in ) = @_;
35              
36 7         23 my $self = bless { data => $data_in, }, $class;
37              
38 7         29 my $head = unpack( 'C', $data_in );
39              
40 7         26 my $headache = BACnet::DataTypes::Utils::_correct_head(
41             data_in => $data_in,
42             expected_tag => BACnet::DataTypes::Utils::OCTET_STRING_TAG,
43             );
44              
45 7 50       21 if ( $headache ne "" ) {
46 0         0 $self->{error} = "OctetString: $headache";
47 0         0 return $self;
48             }
49              
50 7         25 $self->{val} = substr( $data_in, BACnet::DataTypes::Utils::_get_head_length($data_in) );
51              
52 7         26 return $self;
53             }
54              
55             1;