| | 215 | # Private Methods Implemented # |
|---|
| | 216 | ####################################################################### |
|---|
| | 217 | |
|---|
| | 218 | # XXX: Comment this. |
|---|
| | 219 | sub _AUTOLOAD { |
|---|
| | 220 | my $obj = shift; |
|---|
| | 221 | my $obj_yaml = YAML::freeze(Data::Structure::Util::unbless($obj)); |
|---|
| | 222 | my $name = $AUTOLOAD; |
|---|
| | 223 | $name =~ s/.*://; |
|---|
| | 224 | |
|---|
| | 225 | # Perform the RPC call. |
|---|
| | 226 | # XXX: Externalize this URL. |
|---|
| | 227 | my $xmlrpc = XML::RPC->new('http://172.16.164.103:3000/hc_database/api'); |
|---|
| | 228 | my $ret = $xmlrpc->call($name,$obj_yaml); |
|---|
| | 229 | |
|---|
| | 230 | # Error checking. |
|---|
| | 231 | if ((ref($ret) eq "HASH") && (exists($ret->{faultCode}))) { |
|---|
| | 232 | # XXX: Log this error. |
|---|
| | 233 | Carp::croak("Error: " . $ret->{faultString}); |
|---|
| | 234 | } |
|---|
| | 235 | |
|---|
| | 236 | return $ret; |
|---|
| | 237 | } |
|---|
| | 238 | |
|---|
| | 239 | |
|---|
| | 240 | ####################################################################### |
|---|
| 233 | | my $obj = shift; |
|---|
| 234 | | my $obj_yaml = YAML::freeze(Data::Structure::Util::unbless($obj)); |
|---|
| 235 | | my $name = $AUTOLOAD; |
|---|
| 236 | | $name =~ s/.*://; |
|---|
| 237 | | |
|---|
| 238 | | # Perform the RPC call. |
|---|
| 239 | | # XXX: Externalize this URL. |
|---|
| 240 | | my $xmlrpc = XML::RPC->new('http://172.16.164.103:3000/hc_database/api'); |
|---|
| 241 | | my $ret = $xmlrpc->call($name,$obj_yaml); |
|---|
| 242 | | |
|---|
| 243 | | # Error checking. |
|---|
| 244 | | if ((ref($ret) eq "HASH") && (exists($ret->{faultCode}))) { |
|---|
| 245 | | # XXX: Log this error. |
|---|
| 246 | | Carp::croak("Error: " . $ret->{faultString}); |
|---|
| 247 | | } |
|---|
| 248 | | |
|---|
| 249 | | return $ret; |
|---|
| | 260 | return _AUTOLOAD(shift); |
|---|
| | 261 | } |
|---|
| | 262 | |
|---|
| | 263 | # XXX: Need to comment this further. |
|---|
| | 264 | sub get_queue_urls { |
|---|
| | 265 | $AUTOLOAD = "Database::get_queue_urls"; |
|---|
| | 266 | # Results from this call are YAML-encoded; need to deserialize them. |
|---|
| | 267 | return YAML::thaw(_AUTOLOAD(shift)); |
|---|