Class: Majoron::AntHill::SMPP::SMPPBroadcastSMResp

Inherits:
SMPPResp show all
Defined in:
lib/pdu/smpp_broadcast_sm_resp.rb

Instance Attribute Summary collapse

Attributes inherited from SMPPPDU

#header

Instance Method Summary collapse

Methods inherited from SMPPResp

#init

Methods inherited from SMPPPDU

#command_id, #command_length, #command_status, #command_status=, #sequence_number, #sequence_number=

Constructor Details

#initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil) ⇒ SMPPBroadcastSMResp

Constructor.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 24

def initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil)
	super(CommandId::CM_BROADCAST_SM_RESP, command_status, sequence_number)
  
	# Mandatory fields
	@message_id = ""
  
	# Optional fields
	@broadcast_error_status = nil
	@failed_broadcast_area_identifier = nil
  
	# Optional fields len
	@broadcast_error_status_len = SMPPTLVLen::DWORD_LEN
	@failed_broadcast_area_identifier_len = SMPPTLVLen::ZERO_LEN
end

Instance Attribute Details

#broadcast_error_statusObject

Optional fields



120
121
122
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 120

def broadcast_error_status
  @broadcast_error_status
end

#broadcast_error_status_lenObject

Optional fields length



125
126
127
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 125

def broadcast_error_status_len
  @broadcast_error_status_len
end

#failed_broadcast_area_identifierObject

Returns the value of attribute failed_broadcast_area_identifier.



121
122
123
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 121

def failed_broadcast_area_identifier
  @failed_broadcast_area_identifier
end

#failed_broadcast_area_identifier_lenObject

Returns the value of attribute failed_broadcast_area_identifier_len.



126
127
128
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 126

def failed_broadcast_area_identifier_len
  @failed_broadcast_area_identifier_len
end

#message_idObject

Mandatory fields



117
118
119
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 117

def message_id
  @message_id
end

Instance Method Details

#decode_packet(decoder) ⇒ Object

Interface to decode SMPP packet



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 53

def decode_packet(decoder)
	# Decode header and mandatory fields
	@header = decoder.decode_header()
	@message_id = decoder.decode_message_id(command_length())
	
	# Decode optional fields
	while decoder.has_tlvs() 
		case decoder.get_tlv_code()
			when OptTags::TAG_BROADCAST_ERROR_STATUS
				@broadcast_error_status, @broadcast_error_status_len = 
					decoder.decode_broadcast_error_status(command_length())
			when OptTags::TAG_BROADCAST_AREA_IDENTIFIER
				id, len = decoder.decode_failed_broadcast_area_identifier(command_length())
				if @failed_broadcast_area_identifier.nil? || @failed_broadcast_area_identifier_len.nil?
					@failed_broadcast_area_identifier = []
					@failed_broadcast_area_identifier_len = []
				end
				@failed_broadcast_area_identifier << id
				@failed_broadcast_area_identifier_len << len
			else
				# Report about error
				raise Errors::UNKNOWN_TAG_MSG + decoder.get_tlv_error()
		end
	end
end

#encode_packet(encoder) ⇒ Object

Interface to encode SMPP packet



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 40

def encode_packet(encoder)
	# Encode header and mandatory fields
	encoder.encode_header(@header)
	encoder.encode_message_id(@message_id)
  
	# Encode optional fields
	encoder.encode_broadcast_error_status(@broadcast_error_status, 
		@broadcast_error_status_len) if !@broadcast_error_status.nil?
	encoder.encode_failed_broadcast_area_identifier(@failed_broadcast_area_identifier, 
		@failed_broadcast_area_identifier_len) if !@failed_broadcast_area_identifier.nil?
end

#output_packet(outputter) ⇒ Object

Interface to output SMPP packet



93
94
95
96
97
98
99
100
101
102
103
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 93

def output_packet(outputter)
	# Output header and mandatory fields
	outputter.output_header(@header)
	outputter.output_message_id(@message_id)
  
	# Output optional fields
	outputter.output_broadcast_error_status(@broadcast_error_status, 
		@broadcast_error_status_len) if !@broadcast_error_status.nil?
	outputter.output_failed_broadcast_area_identifier(@failed_broadcast_area_identifier, 
		@failed_broadcast_area_identifier_len) if !@failed_broadcast_area_identifier.nil?
end

#validate_packet(validator) ⇒ Object

Interface to validate SMPP packet



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/pdu/smpp_broadcast_sm_resp.rb', line 80

def validate_packet(validator)
	# Validate header and mandatory fields
	validator.validate_header(@header)
	validator.validate_message_id(@message_id)
  
	# Validate optional fields
	validator.validate_broadcast_error_status(@broadcast_error_status, 
		@broadcast_error_status_len) if !@broadcast_error_status.nil?
	validator.validate_failed_broadcast_area_identifier(@failed_broadcast_area_identifier, 
		@failed_broadcast_area_identifier_len) if !@failed_broadcast_area_identifier.nil?
end