Class: Cul::Handles::HandleValue
- Inherits:
-
Object
- Object
- Cul::Handles::HandleValue
show all
- Includes:
- Hdl
- Defined in:
- lib/cul/handles/resolution_response.rb
Constant Summary
collapse
- PERM_ADMIN_READ =
0x8
- PERM_ADMIN_WRITE =
0x4
- PERM_PUBLIC_READ =
0x2
- PERM_PUBLIC_WRITE =
0x1
- TTL_TYPE_RELATIVE =
0
- TTL_TYPE_ABSOLUTE =
1
- MAX_RECOGNIZED_TTL =
86400*2
Constants included
from Hdl
Cul::Handles::Hdl::ENV_FLAG_COMPRESSED, Cul::Handles::Hdl::ENV_FLAG_ENCRYPTED, Cul::Handles::Hdl::ENV_FLAG_TRUNCATED, Cul::Handles::Hdl::INDEX_ADMIN_HANDLE, Cul::Handles::Hdl::INDEX_AUTH, Cul::Handles::Hdl::INDEX_MAINTAINER_HANDLE, Cul::Handles::Hdl::MSG_FLAG_AUTH, Cul::Handles::Hdl::MSG_FLAG_AUTH_INDEX, Cul::Handles::Hdl::MSG_FLAG_CACR, Cul::Handles::Hdl::MSG_FLAG_CACR_INDEX, Cul::Handles::Hdl::MSG_FLAG_CERT, Cul::Handles::Hdl::MSG_FLAG_CERT_INDEX, Cul::Handles::Hdl::MSG_FLAG_CONT, Cul::Handles::Hdl::MSG_FLAG_CONT_INDEX, Cul::Handles::Hdl::MSG_FLAG_ENCR, Cul::Handles::Hdl::MSG_FLAG_ENCR_INDEX, Cul::Handles::Hdl::MSG_FLAG_KPAL, Cul::Handles::Hdl::MSG_FLAG_KPAL_INDEX, Cul::Handles::Hdl::MSG_FLAG_PUBL, Cul::Handles::Hdl::MSG_FLAG_PUBL_INDEX, Cul::Handles::Hdl::MSG_FLAG_RECU, Cul::Handles::Hdl::MSG_FLAG_RECU_INDEX, Cul::Handles::Hdl::MSG_FLAG_RRDG, Cul::Handles::Hdl::MSG_FLAG_RRDG_INDEX, Cul::Handles::Hdl::OC_ADD_VALUE, Cul::Handles::Hdl::OC_CHALLENGE_RESPONSE, Cul::Handles::Hdl::OC_CREATE_HANDLE, Cul::Handles::Hdl::OC_DELETE_HANDLE, Cul::Handles::Hdl::OC_GET_SITEINFO, Cul::Handles::Hdl::OC_LIST_HANDLE, Cul::Handles::Hdl::OC_LIST_NA, Cul::Handles::Hdl::OC_MODIFY_VALUE, Cul::Handles::Hdl::OC_REMOVE_VALUE, Cul::Handles::Hdl::OC_RESERVED, Cul::Handles::Hdl::OC_RESOLUTION, Cul::Handles::Hdl::OC_SESSION_EXCHANGEKEY, Cul::Handles::Hdl::OC_SESSION_SETUP, Cul::Handles::Hdl::OC_SESSION_TERMINATE, Cul::Handles::Hdl::OC_VERIFY_RESPONSE, Cul::Handles::Hdl::PERM_ADD_ADMIN, Cul::Handles::Hdl::PERM_ADD_HANDLE, Cul::Handles::Hdl::PERM_ADD_NA, Cul::Handles::Hdl::PERM_ADD_VALUE, Cul::Handles::Hdl::PERM_ALL, Cul::Handles::Hdl::PERM_DELETE_HANDLE, Cul::Handles::Hdl::PERM_DELETE_NA, Cul::Handles::Hdl::PERM_LIST_HDLS, Cul::Handles::Hdl::PERM_MODIFY_ADMIN, Cul::Handles::Hdl::PERM_MODIFY_VALUE, Cul::Handles::Hdl::PERM_READ_VALUE, Cul::Handles::Hdl::PERM_REMOVE_ADMIN, Cul::Handles::Hdl::PERM_REMOVE_VALUE, Cul::Handles::Hdl::RC_ACCESS_DENIED, Cul::Handles::Hdl::RC_AUTHEN_FAILED, Cul::Handles::Hdl::RC_AUTHEN_NEEDED, Cul::Handles::Hdl::RC_AUTHEN_TIMEOUT, Cul::Handles::Hdl::RC_ERROR, Cul::Handles::Hdl::RC_EXPIRED_SITE_INFO, Cul::Handles::Hdl::RC_FORWARDED, Cul::Handles::Hdl::RC_HANDLE_ALREADY_EXIST, Cul::Handles::Hdl::RC_HANDLE_NOT_FOUND, Cul::Handles::Hdl::RC_INVALID_CREDENTIAL, Cul::Handles::Hdl::RC_INVALID_HANDLE, Cul::Handles::Hdl::RC_NA_DELEGATE, Cul::Handles::Hdl::RC_NOT_AUTHORIZED, Cul::Handles::Hdl::RC_NO_SESSION_KEY, Cul::Handles::Hdl::RC_OPERATION_DENIED, Cul::Handles::Hdl::RC_PROTOCOL_ERROR, Cul::Handles::Hdl::RC_QUEUED, Cul::Handles::Hdl::RC_RECUR_LIMIT_EXCEEDED, Cul::Handles::Hdl::RC_RESERVED, Cul::Handles::Hdl::RC_SERVER_BUSY, Cul::Handles::Hdl::RC_SERVER_NOT_RESP, Cul::Handles::Hdl::RC_SERVICE_REFERRAL, Cul::Handles::Hdl::RC_SESSION_FAILED, Cul::Handles::Hdl::RC_SESSION_KEY_INVALID, Cul::Handles::Hdl::RC_SESSION_NO_SUPPORT, Cul::Handles::Hdl::RC_SESSION_TIMEOUT, Cul::Handles::Hdl::RC_SUCCESS, Cul::Handles::Hdl::RC_TRYING, Cul::Handles::Hdl::RC_UNABLE_TO_AUTHEN, Cul::Handles::Hdl::RC_VALUE_ALREADY_EXIST, Cul::Handles::Hdl::RC_VALUE_INVALID, Cul::Handles::Hdl::RC_VALUE_NOT_FOUND
Instance Method Summary
collapse
Methods included from Hdl
#asBytes, #calculateValueLen, #convert16t8, #decodeAdminData, #encodeAdminData, #fromBytes, #readByteArray, #readIntArray, #readProtocolString, #toProtocolString
Constructor Details
#initialize(data = [], handle = "") ⇒ HandleValue
Returns a new instance of HandleValue.
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/cul/handles/resolution_response.rb', line 57
def initialize(data=[],handle="")
super()
@handle=handle
@refs = []
@data = []
@type = []
@perm = 14 @ttlType = TTL_TYPE_RELATIVE @ttl = asBytes(86400) @timestamp = asBytes(Time.new().to_i) deserialize(data) unless data.length == 0
end
|
Instance Method Details
#adminRead ⇒ Object
130
131
132
|
# File 'lib/cul/handles/resolution_response.rb', line 130
def adminRead
@perm & PERM_ADMIN_READ
end
|
#adminWrite ⇒ Object
133
134
135
|
# File 'lib/cul/handles/resolution_response.rb', line 133
def adminWrite
@perm & PERM_ADMIN_WRITE
end
|
#data ⇒ Object
151
152
153
|
# File 'lib/cul/handles/resolution_response.rb', line 151
def data
@data.pack('U*')
end
|
#data=(val) ⇒ Object
148
149
150
|
# File 'lib/cul/handles/resolution_response.rb', line 148
def data=(val)
@data=val
end
|
#deserialize(data) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/cul/handles/resolution_response.rb', line 69
def deserialize(data)
@index = data[0..3]
@timestamp = data[4..7]
@ttlType = data[8]
@ttl = data[9..12]
@perm = data[13]
typeLen = fromBytes(data[14..17])
offset = 18
@type = data[18...18+typeLen]
offset = offset + typeLen
dataLen = fromBytes(data[offset...offset+4])
offset = offset + 4
@data = data[offset...offset+dataLen]
offset = offset + dataLen
refsLen = fromBytes(data[offset...offset+4])
offset = offset + 4
@refs = []
(1..refsLen).each{
@refs.push(fromBytes(data[offset...offset+4]))
offset = offset + 4
}
end
|
#handle ⇒ Object
109
110
111
|
# File 'lib/cul/handles/resolution_response.rb', line 109
def handle
@handle
end
|
#index ⇒ Object
115
116
117
|
# File 'lib/cul/handles/resolution_response.rb', line 115
def index
fromBytes(@index)
end
|
#index=(val) ⇒ Object
112
113
114
|
# File 'lib/cul/handles/resolution_response.rb', line 112
def index=(val)
@index= val
end
|
#perm=(val) ⇒ Object
127
128
129
|
# File 'lib/cul/handles/resolution_response.rb', line 127
def perm=(val)
@perm = val
end
|
#publicRead ⇒ Object
136
137
138
|
# File 'lib/cul/handles/resolution_response.rb', line 136
def publicRead
@perm & PERM_PUBLIC_READ
end
|
#publicWrite ⇒ Object
139
140
141
|
# File 'lib/cul/handles/resolution_response.rb', line 139
def publicWrite
@perm & PERM_PUBLIC_WRITE
end
|
#refs=(val) ⇒ Object
154
155
156
|
# File 'lib/cul/handles/resolution_response.rb', line 154
def refs=(val)
@refs = val
end
|
#serialize ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/cul/handles/resolution_response.rb', line 91
def serialize()
result = [].concat(@index)
result.concat(@timestamp)
result.concat([@ttlType])
result.concat(@ttl)
result.concat([@perm])
result.concat(asBytes(@type.length))
result.concat(@type)
result.concat(asBytes(@data.length))
result.concat(@data)
result.concat(asBytes(@refs.length))
if(@refs.length > 0)
@refs.each{ | ref|
result.concat(asBytes(ref))
}
end
return result
end
|
#timestamp=(val) ⇒ Object
118
119
120
|
# File 'lib/cul/handles/resolution_response.rb', line 118
def timestamp=(val)
@timestamp=val
end
|
#to_s ⇒ Object
157
158
159
160
161
162
|
# File 'lib/cul/handles/resolution_response.rb', line 157
def to_s
if (type == "HS_ADMIN")
return "admin handle data: ttl= " + fromBytes(@ttl).to_s + " ; ttlType= " + @ttlType.to_s + "; index = " + index.to_s + "; " + decodeAdminData(@data).to_s + "; permissions = " + @perm.to_s
end
return "type: " + type + "; index=" + index.to_s + "; data.length: " + @data.length.to_s + " ; data: " + data + "; data(hex): " + @data.collect { |element| "%02x" % element }.join+ "; permissions = " + @perm.to_s
end
|
#ttl=(val) ⇒ Object
124
125
126
|
# File 'lib/cul/handles/resolution_response.rb', line 124
def ttl=(val)
@ttl = val
end
|
#ttlType=(val) ⇒ Object
121
122
123
|
# File 'lib/cul/handles/resolution_response.rb', line 121
def ttlType=(val)
@ttlType = val
end
|
#type ⇒ Object
145
146
147
|
# File 'lib/cul/handles/resolution_response.rb', line 145
def type
return @type.pack('U*')
end
|
#type=(val) ⇒ Object
142
143
144
|
# File 'lib/cul/handles/resolution_response.rb', line 142
def type=(val)
@type=val
end
|