| 1 | <!----------------------------------------------------------------------- |
|---|
| 2 | ******************************************************************************** |
|---|
| 3 | Copyright 2005-2008 ColdBox Framework by Luis Majano and Ortus Solutions, Corp |
|---|
| 4 | www.coldboxframework.com | www.luismajano.com | www.ortussolutions.com |
|---|
| 5 | ******************************************************************************** |
|---|
| 6 | Author : Luis Majano |
|---|
| 7 | Date : June 30, 2006 |
|---|
| 8 | Description : |
|---|
| 9 | I am a cache config bean. I configure a Cache Manager. |
|---|
| 10 | |
|---|
| 11 | Modification History: |
|---|
| 12 | |
|---|
| 13 | -----------------------------------------------------------------------> |
|---|
| 14 | <cfcomponent name="cacheConfigBean" |
|---|
| 15 | hint="I configure a cache manager." |
|---|
| 16 | output="false"> |
|---|
| 17 | |
|---|
| 18 | <!------------------------------------------- CONSTRUCTOR -------------------------------------------> |
|---|
| 19 | |
|---|
| 20 | <cffunction name="init" access="public" output="false" hint="constructor" returntype="cacheConfigBean"> |
|---|
| 21 | <!--- ************************************************************* ---> |
|---|
| 22 | <cfargument name="CacheObjectDefaultTimeout" type="numeric" required="true"> |
|---|
| 23 | <cfargument name="CacheObjectDefaultLastAccessTimeout" type="numeric" required="true"> |
|---|
| 24 | <cfargument name="CacheReapFrequency" type="numeric" required="true"> |
|---|
| 25 | <cfargument name="CacheMaxObjects" type="numeric" required="true"> |
|---|
| 26 | <cfargument name="CacheFreeMemoryPercentageThreshold" type="numeric" required="true"> |
|---|
| 27 | <cfargument name="CacheUseLastAccessTimeouts" type="boolean" required="true"> |
|---|
| 28 | <cfargument name="CacheEvictionPolicy" type="string" required="true"> |
|---|
| 29 | <!--- ************************************************************* ---> |
|---|
| 30 | <cfscript> |
|---|
| 31 | variables.instance = structnew(); |
|---|
| 32 | instance.CacheObjectDefaultTimeout = arguments.CacheObjectDefaultTimeout; |
|---|
| 33 | instance.CacheObjectDefaultLastAccessTimeout = arguments.CacheObjectDefaultLastAccessTimeout; |
|---|
| 34 | instance.CacheReapFrequency = arguments.CacheReapFrequency; |
|---|
| 35 | instance.CacheMaxObjects = arguments.CacheMaxObjects; |
|---|
| 36 | instance.CacheFreeMemoryPercentageThreshold = arguments.CacheFreeMemoryPercentageThreshold; |
|---|
| 37 | instance.CacheUseLastAccessTimeouts = arguments.CacheUseLastAccessTimeouts; |
|---|
| 38 | instance.CacheEvictionPolicy = arguments.CacheEvictionPolicy; |
|---|
| 39 | return this; |
|---|
| 40 | </cfscript> |
|---|
| 41 | </cffunction> |
|---|
| 42 | |
|---|
| 43 | <!------------------------------------------- PUBLIC -------------------------------------------> |
|---|
| 44 | |
|---|
| 45 | <!--- Getter/Setter For CacheObjectDefaultTimeout ---> |
|---|
| 46 | <cffunction name="getCacheObjectDefaultTimeout" access="public" returntype="numeric" output="false"> |
|---|
| 47 | <cfreturn instance.CacheObjectDefaultTimeout > |
|---|
| 48 | </cffunction> |
|---|
| 49 | <cffunction name="setCacheObjectDefaultTimeout" access="public" returntype="void" output="false"> |
|---|
| 50 | <cfargument name="CacheObjectDefaultTimeout" type="numeric" required="true"> |
|---|
| 51 | <cfset instance.CacheObjectDefaultTimeout = arguments.CacheObjectDefaultTimeout> |
|---|
| 52 | </cffunction> |
|---|
| 53 | |
|---|
| 54 | <!--- Getter/Setter For CacheObjectDefaultLastAccessTimeout ---> |
|---|
| 55 | <cffunction name="getCacheObjectDefaultLastAccessTimeout" access="public" returntype="numeric" output="false"> |
|---|
| 56 | <cfreturn instance.CacheObjectDefaultLastAccessTimeout > |
|---|
| 57 | </cffunction> |
|---|
| 58 | <cffunction name="setCacheObjectDefaultLastAccessTimeout" access="public" returntype="void" output="false"> |
|---|
| 59 | <cfargument name="CacheObjectDefaultLastAccessTimeout" type="numeric" required="true"> |
|---|
| 60 | <cfset instance.CacheObjectDefaultLastAccessTimeout = arguments.CacheObjectDefaultLastAccessTimeout> |
|---|
| 61 | </cffunction> |
|---|
| 62 | |
|---|
| 63 | <!--- Getter/Setter For CacheReapFrequency ---> |
|---|
| 64 | <cffunction name="getCacheReapFrequency" access="public" returntype="numeric" output="false"> |
|---|
| 65 | <cfreturn instance.CacheReapFrequency > |
|---|
| 66 | </cffunction> |
|---|
| 67 | <cffunction name="setCacheReapFrequency" access="public" returntype="void" output="false"> |
|---|
| 68 | <cfargument name="CacheReapFrequency" type="numeric" required="true"> |
|---|
| 69 | <cfset instance.CacheReapFrequency = arguments.CacheReapFrequency> |
|---|
| 70 | </cffunction> |
|---|
| 71 | |
|---|
| 72 | <!--- Getter/Setter For CacheMaxObjects ---> |
|---|
| 73 | <cffunction name="getCacheMaxObjects" access="public" returntype="numeric" output="false"> |
|---|
| 74 | <cfreturn instance.CacheMaxObjects > |
|---|
| 75 | </cffunction> |
|---|
| 76 | <cffunction name="setCacheMaxObjects" access="public" returntype="void" output="false"> |
|---|
| 77 | <cfargument name="CacheMaxObjects" type="numeric" required="true"> |
|---|
| 78 | <cfset instance.CacheMaxObjects = arguments.CacheMaxObjects> |
|---|
| 79 | </cffunction> |
|---|
| 80 | |
|---|
| 81 | <!--- Getter/Setter For CacheFreeMemoryPercentageThreshold ---> |
|---|
| 82 | <cffunction name="getCacheFreeMemoryPercentageThreshold" access="public" returntype="numeric" output="false"> |
|---|
| 83 | <cfreturn instance.CacheFreeMemoryPercentageThreshold > |
|---|
| 84 | </cffunction> |
|---|
| 85 | <cffunction name="setCacheFreeMemoryPercentageThreshold" access="public" returntype="void" output="false"> |
|---|
| 86 | <cfargument name="CacheFreeMemoryPercentageThreshold" type="numeric" required="true"> |
|---|
| 87 | <cfset instance.CacheFreeMemoryPercentageThreshold = arguments.CacheFreeMemoryPercentageThreshold> |
|---|
| 88 | </cffunction> |
|---|
| 89 | |
|---|
| 90 | <!--- Getter/Setter For CacheUseLastAccessTimeouts ---> |
|---|
| 91 | <cffunction name="getCacheUseLastAccessTimeouts" access="public" output="false" returntype="boolean" hint="Get CacheUseLastAccessTimeouts"> |
|---|
| 92 | <cfreturn instance.CacheUseLastAccessTimeouts/> |
|---|
| 93 | </cffunction> |
|---|
| 94 | <cffunction name="setCacheUseLastAccessTimeouts" access="public" output="false" returntype="void" hint="Set CacheUseLastAccessTimeouts"> |
|---|
| 95 | <cfargument name="CacheUseLastAccessTimeouts" type="boolean" required="true"/> |
|---|
| 96 | <cfset instance.CacheUseLastAccessTimeouts = arguments.CacheUseLastAccessTimeouts/> |
|---|
| 97 | </cffunction> |
|---|
| 98 | |
|---|
| 99 | <!--- Getter/Setter For CacheEvictionPolicy ---> |
|---|
| 100 | <cffunction name="getCacheEvictionPolicy" access="public" output="false" returntype="string" hint="Get CacheEvictionPolicy"> |
|---|
| 101 | <cfreturn instance.CacheEvictionPolicy/> |
|---|
| 102 | </cffunction> |
|---|
| 103 | <cffunction name="setCacheEvictionPolicy" access="public" output="false" returntype="void" hint="Set CacheEvictionPolicy"> |
|---|
| 104 | <cfargument name="CacheEvictionPolicy" type="string" required="true"/> |
|---|
| 105 | <cfset instance.CacheEvictionPolicy = arguments.CacheEvictionPolicy/> |
|---|
| 106 | </cffunction> |
|---|
| 107 | |
|---|
| 108 | <!--- Getter/Setter memento ---> |
|---|
| 109 | <cffunction name="getmemento" access="public" returntype="struct" output="false" hint="Get the memento"> |
|---|
| 110 | <cfreturn variables.instance> |
|---|
| 111 | </cffunction> |
|---|
| 112 | <cffunction name="setmemento" access="public" returntype="void" output="false" hint="Set the memento"> |
|---|
| 113 | <cfargument name="memento" type="struct" required="true"> |
|---|
| 114 | <cfset variables.instance = arguments.memento> |
|---|
| 115 | </cffunction> |
|---|
| 116 | |
|---|
| 117 | <!--- Populate from struct ---> |
|---|
| 118 | <cffunction name="populate" access="public" returntype="void" hint="Populate with a memento"> |
|---|
| 119 | <!--- ************************************************************* ---> |
|---|
| 120 | <cfargument name="memento" required="true" type="struct" hint="The structure to populate the object with."> |
|---|
| 121 | <!--- ************************************************************* ---> |
|---|
| 122 | <cfscript> |
|---|
| 123 | var key = ""; |
|---|
| 124 | |
|---|
| 125 | /* Populate Bean */ |
|---|
| 126 | for(key in arguments.memento){ |
|---|
| 127 | /* Check if setter exists */ |
|---|
| 128 | if( structKeyExists(this,"set" & key) ){ |
|---|
| 129 | evaluate("set#key#(arguments.memento[key])"); |
|---|
| 130 | } |
|---|
| 131 | } |
|---|
| 132 | </cfscript> |
|---|
| 133 | </cffunction> |
|---|
| 134 | |
|---|
| 135 | <!------------------------------------------- PRIVATE -------------------------------------------> |
|---|
| 136 | |
|---|
| 137 | |
|---|
| 138 | </cfcomponent> |
|---|