-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdbrow3cache.cfc
More file actions
91 lines (63 loc) · 2.68 KB
/
dbrow3cache.cfc
File metadata and controls
91 lines (63 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<cfcomponent name="dbrow3cache">
<cfif not(isdefined('this.isInited') and this.isInited)>
<cfset this.init()>
</cfif>
<cffunction name="init" returntype="dbrow3cache" output="no">
<cfset this.stColumnMetaData = structNew()>
<cfset this.stForeignKeyMetaData = structNew()>
<cfset this.isInited = 1>
<cfset this.timeout = 5>
<cfreturn this>
</cffunction> <!--- init --->
<cffunction name="clearAll" returntype="void" output="no">
<cfset this.init()>
</cffunction>
<cffunction name="getColumnMetaData" returntype="struct" output="no" access="public">
<cfargument name="objectName" type="string" required="yes">
<cfset var theSt = this.stColumnMetaData>
<cfset var stResults = structNew()>
<cfset stResults.hit = 0>
<cfset stResults.stMetaData = structNew()>
<cfif structKeyExists(theSt, objectName)>
<cfif abs(dateDiff('n', theSt[objectName].timestamp, now())) gt this.timeout>
<cfset structDelete(theSt, objectName)>
<cfelse>
<cfset stResults.hit = 1>
<cfset stResults.stMetaData = theSt[objectName].stMetaData>
</cfif>
</cfif>
<cfreturn stResults>
</cffunction> <!--- getColumnMetaData --->
<cffunction name="getForeignKeyMetaData" returntype="struct" output="no" access="public">
<cfargument name="objectName" type="string" required="yes">
<cfset var theSt = this.stForeignKeyMetaData>
<cfset var stResults = structNew()>
<cfset stResults.hit = 0>
<cfset stResults.stMetaData = structNew()>
<cfif structKeyExists(theSt, objectName)>
<cfif abs(dateDiff('n', theSt[objectName].timestamp, now())) gt this.timeout>
<cfset structDelete(theSt, objectName)>
<cfelse>
<cfset stResults.hit = 1>
<cfset stResults.stMetaData = theSt[objectName].stMetaData>
</cfif>
</cfif>
<cfreturn stResults>
</cffunction> <!--- getForeignKeyMetaData --->
<cffunction name="setColumnMetaData" returntype="void" output="no" access="public">
<cfargument name="objectName" type="string" required="yes">
<cfargument name="stMetaData" type="struct" required="yes">
<cfset theSt = this.stColumnMetaData>
<cfset theSt[objectName] = structNew()>
<cfset theSt[objectName].timestamp = now()>
<cfset theSt[objectName].stMetaData = stMetaData>
</cffunction> <!--- setColumnMetaData --->
<cffunction name="setForeignKeyMetaData" returntype="void" output="no" access="public">
<cfargument name="objectName" type="string" required="yes">
<cfargument name="stMetaData" type="struct" required="yes">
<cfset theSt = this.stForeignKeyMetaData>
<cfset theSt[objectName] = structNew()>
<cfset theSt[objectName].timestamp = now()>
<cfset theSt[objectName].stMetaData = stMetaData>
</cffunction> <!--- setForeignKeyMetaData --->
</cfcomponent>