summaryrefslogtreecommitdiff
path: root/services/resources.esp
diff options
context:
space:
mode:
Diffstat (limited to 'services/resources.esp')
-rw-r--r--services/resources.esp51
1 files changed, 30 insertions, 21 deletions
diff --git a/services/resources.esp b/services/resources.esp
index d4a77f7907..d491ed5701 100644
--- a/services/resources.esp
+++ b/services/resources.esp
@@ -28,15 +28,6 @@ function _resourcesCreate()
/* We'll maintain our own count of the number of open resources */
o.resourceList.count = 0;
- /*
- * Resource types
- */
- o.Type = new Object();
- o.Type.ldb = 1; /* database handle */
- o.Type.tid = 2; /* tree id */
- o.Type.fid = 3; /* file id */
- /* etc., etc., etc. */
-
/*
* Set a new saved resource.
@@ -48,7 +39,7 @@ function _resourcesCreate()
{
/* Yup. */
error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
- error.setError(JsonRpcError_ResourceError,
+ error.setError(jsonrpc.Constant.ErrorCode.ResourceError,
"Session limit on resources (" +
RESOURCE_LIMIT +
") exceeded.");
@@ -81,7 +72,7 @@ function _resourcesCreate()
/*
* Get a previously-saved resource
*/
- function _get(resourceId, type, error)
+ function _get(resourceId, error)
{
/* Does the specified resource id exist? */
if (! this.resourceList[resourceId])
@@ -96,22 +87,40 @@ function _resourcesCreate()
/* Retrieve the resource */
var r = this.resourceList[resourceId];
- /* Is the specified resource the correct type? */
- if (r.type != type)
- {
- /* Nope. */
- error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
- error.setError(jsonrpc.Constant.ErrorCode.ResourceError,
- "Incorrect type for specified resource id.");
- return error;
- }
-
/* Give 'em what they came for! */
return r.resource;
}
o.get = _get;
/*
+ * Find a previously-saved resource
+ */
+ function _find(type, error)
+ {
+ /* Does the specified resource id exist? */
+ for (var resourceId in this.resourceList)
+ {
+ /* Retrieve the resource */
+ var r = this.resourceList[resourceId];
+
+ /* Ignore "id" and "count" integer fields */
+ if (typeof(r) == "object")
+ {
+ /* Is the specified resource the correct type? */
+ if (r.type == type)
+ {
+ /* Yup, this is the one they want. */
+ return resourceId;
+ }
+ }
+ }
+
+ /* It wasn't found. */
+ return undefined;
+ }
+ o.find = _find;
+
+ /*
* Release a previously-saved resource, allowing it to be freed
*/
function _release(resourceId, error)