FileChangeMonitor

Warning! Some information on this page is older than 3 years now. I keep it for reference, but it probably doesn't reflect my current knowledge and beliefs.

21:34
Tue
24
Nov 2009

FileChangeMonitor

Today I'd like to show a piece of my code with an interesting solution. The problem is: Most of us have to restart our applications to see changes made in textures, shaders and other data files. It may not be a problem at the beginning, but as the application and the amount of resources grow, loading the whole thing takes longer and longer. Wouldn't be great if we could change or replace asset files and immediately see the results without restarting the game? This idea seems fascinating especially after watching some of the videos about CryEngine 3 editor :)

So here is my solution: FileChangeMonitor.cpp, FileChangeMonitor.hpp. It's not a ready-to-use code snippet, but rather something you can base on when writing your own code. I've created a FileChangeMonitor class and a global variable to give access to its single instance to everyone. The purpose of this class is monitoring some files for change in their "last modified" date. Here is the way to use it:

Of course I didn't want to block entire application for the time of retrieving file date, so I do it on separate thread. That thread has a loop (with some delay of course), checks modification time of registered files and posts a small structure to a queue after noticing file change. ProcessEvents method called in main thread only processes this queue and dispatches received events to registered listeners.

I'm aware this code is not perfect. The more files are registered, the less frequent each file is checked for modification. I could also use some lockless data structure as a queue instead of std::vector protected by mutex. I could even use totally different solution, like monitoring changes in a directory provided by Windows API (look for ReadDirectoryChangesW function in MSDN). But this solution works OK for me, the implementation can be changed without changing its very simple interface and my point here is just to tell you that it's very convenient when you can change a texture, shader code or any other asset and it is automatically reloaded in a second, without restarting your application.

Comments (1) | Tags: engine | Author: Adam Sawicki | Share

Comments

lyh
2015-06-05 04:10:02
burberry outlet, http://burberry.outletnow.net/
christian louboutin outlet, http://christian.louboutin-outlet.net/
tory burch sandals, http://toryburch.salesandals.net/
abercrombie and fitch, http://www.abercrombieand-fitch.com.co/
abercrombie and fitch, http://www.abercrombiefitch.us.com/
abercrombie, http://www.abercrombie-kids.us.com/
nike huarache, http://www.air-huarache.co.uk/
air jordan, http://www.airjordans.us/
air jordan shoes, http://www.airjordanshoes2015.com/
nike air max 2015, http://www.airmax-2015.org/
air max, http://www.airmax-90.org/
babyliss pro, http://www.babyliss-pro.net/
basketball shoes, http://www.basketballshoes.com.co/
beats by dre outlet, http://www.beatsbydrdre.co.com/
beats by dre, http://www.beatsbydre.com.co/
monster beats outlet, http://www.beats-by-dre.com.co/
beats headphones, http://www.beatsheadphones.in.net/
bottega, http://www.bottega.us/
burberry outlet online, http://www.burberryhandbags.net.co/
burberry, http://www.burberry-outlet.jp.net/
burberry outlet, http://www.burberryoutlet.org.uk/
burberry factory, http://www.burberryoutlet-online.co.com/
burberry, http://www.burberryoutlet-online.in.net/
cheap calvin kleins, http://www.calvinklein.co.com/
celine handbags, http://www.celinebags.org/
chanel handbags, http://www.chanelhandbags.net.co/
easton bats, http://www.cheapbaseballbats.net/
christian louboutin shoes, http://www.christianlouboutinshoes.ar.com/
nfl jerseys, http://www.cheapjerseys.in.net/
cheap jordans, http://www.cheap-jordans.net/
cheap michael kors, http://www.cheapmichaelkors.us.org/
nike shoes, http://www.cheap-nikeshoes.com/
cheap oakley sunglasses, http://www.cheapoakley.us.org/
cheap oakley , http://www.cheapoakleysunglasses.co.com/
cheap oakley sunglasses, http://www.cheap-oakleysunglasses.in.net/
cheap ray ban, http://www.cheaprayban.com.co/
boots on sale, http://www.cheapshoes.com.co/
cheap ugg boots, http://www.cheapuggboots.eu.com/
flat iron, http://www.chiflatiron.net.co/
christian louboutin, http://www.christian--louboutin.in.net/
louboutin shoes, http://www.christianlouboutin.org.uk/
christian louboutin shoes, http://www.christianlouboutinshoes.jp.net/
coach outlet online, http://www.coachfactory-outlet.co.com/
coach factory, http://www.coachfactoryoutletonline.co.com/
coach outlet usa, http://www.coach-handbags.com.co/
coach outlet, http://www.coachoutlet-online.com.co/
coach store online, http://www.coachoutletstore.net.co/
coach outlet, http://www.coachoutletstore-online.com.co/
chanel sunglasses, http://www.coco-chanelbags.com.co/
converse shoes, http://www.converse.net.co/
coach handbags, http://www.designerhandbagsoutlet.com.co/
eyeglasses online, http://www.eyeglassesonline.us.com/
eyeglass frames, http://www.eyeglassframes.us.com/
burberry clothes, http://www.fashion-clothing.us.com/
salvatore ferragamo, http://www.ferragamo.com.co/
ferragamo shoes, http://www.ferragamoshoes.net/
hair straightener, http://www.ghdhairstraightener.com.co/
gucci shoes outlet, http://www.gucci.me.uk/
gucci handbags, http://www.guccihandbags.com.co/
gucci factory, http://www.gucci-outlet.in.net/
gucci outlet, http://www.gucci--outlet.in.net/
gucci shoes, http://www.guccishoes.net.co/
gucci shoes, http://www.guccishoes.us.org/
hermes, http://www.hermesbags.com.co/
hermes birkin, http://www.hermesbirkin.com.co/
hermes outlet online, http://www.hermesoutlet.net.co/
hollister, http://www.hollister.us.org/
hollister clothing, http://www.hollisterclothing-store.in.net/
insanity workout, http://www.insanityworkout.net.co/
iphone cases, http://www.iphone-cases.us/
jimmy choo, http://www.jimmychoo.net.co/
jordan retro, http://www.jordanretro.org/
jordan shoes, http://www.jordan-shoes.com.co/
juicy couture outlet, http://www.juicycouture.com.co/
juicy couture handbags, http://www.juicycoutureoutlet.net.co/
kate spade, http://www.kate-spade.com.co/
kate spade handbags, http://www.katespade-outlet.com.co/
kate spade outlet online, http://www.kate-spades.com/
longchamp, http://www.longchamp.us.org/
longchamp handbags, http://www.longchamp.com.co/
louboutin, http://www.louboutin.jp.net/
louis vuitton canada, http://www.louis--vuitton.ca/
louis vuitton bags, http://www.louisvuitton.jp.net/
louis vuitton, http://www.louis--vuitton.org.uk/
vuitton handbags, http://www.louisvuitton.so/
louis vuitton outlet online, http://www.louisvuittonas.com/
louis vuitton, http://www.louisvuitton-outlet.com.co/
louis vuitton, http://www.louisvuitton-outlets.us/
marc jacobs handbags, http://www.marcjacobsonsale.com/
mcm bags, http://www.mcm-bags.net/
mcm backpack, http://www.mcmhandbags.com.co/
michael kors, http://www.michaelkors.so/
cheap michael kors, http://www.michael--kors.us.com/
michael kors bags sale, http://www.michaelkorsbags.us.org/
michael kors, http://www.michaelkorshandbags.org.uk/
michael kors outlet online, http://www.michael-kors-handbags.us.com/
michael kors outlet, http://www.michaelkorsoutlet.ar.com/
michael kors outlet, http://www.michael-kors-outlet.us.org/
michael kors outlet online, http://www.michaelkorsoutlet-online.ar.com/
michael kors outlet online sale, http://www.michael-kors-outlet-online.us.org/
michael kors outlet store, http://www.michaelkorsoutletonline-sale.us.com/
michael kors uk, http://www.michaelkors-uk.org.uk/
mont blanc pens, http://www.montblanc--pens.net/
new balance, http://www.newbalance-outlet.org/
nike air max, http://www.nike-air-max.us/
nike factory, http://www.nikefactory.org/
nike free, http://www.nikefree5.net/
nike free run, http://www.nikefree-run.net/
nike free, http://www.nikefree-run.org.uk/
air jordans, http://www.nike-jordanshoes.com/
nike mercurial, http://www.nikemercurial.net/
nike roshe, http://www.nikerosherun.us/
nike outlet store, http://www.nikestore.us/
north face, http://www.northface.us.org/
north face clearance, http://www.northfaceoutlet.com.co/
oakley outlet, http://www.oakleyoutlet.us.org/
oakley sunglasses, http://www.oakley-sunglasses.us.org/
oakley sunglasses cheap, http://www.oakleysunglassescheap.in.net/
oakley sunglasses, http://www.oakleysunglassesoutlet.com.co/
omega watches, http://www.omegawatches.us.com/
pandora charms, http://www.pandora-charms.org.uk/
pandora jewelry, http://www.pandorajewelry.com.co/
polo outlet, http://www.polo-outlets.com/
prada outlet, http://www.pradahandbags.net.co/
prada handbags, http://www.pradahandbags.com.co/
prada outlet, http://www.pradashoes.com.co/
ralph lauren uk, http://www.ralph-lauren.org.uk/
polo ralph lauren outlet, http://www.ralphlaurenoutlet.us.com/
ralph lauren, http://www.ralphlauren-outlet.org.uk/
ralph lauren shirts, http://www.ralphlaurenoutletonline.com.co/
ralph lauren outlet, http://www.ralphlaurenoutletonline.in.net/
polo ralph lauren, http://www.ralphlaurenpolo.in.net/
ray ban outlet, http://www.ray-ban-outlet.us.com/
ray bans, http://www.raybans.us.org/
ray ban sunglasses, http://www.rayban-sunglasses.org.uk/
ray-ban sunglasses, http://www.rayban-sunglasses.us.org/
ray ban sunglasses outlet, http://www.raybansunglassesoutlet.net.co/
ray ban wayfarer, http://www.raybanwayfarer.in.net/
replica handbags, http://www.replicahandbags.com.co/
rolex watches, http://www.replicawatches.us.com/
retro jordans, http://www.retro-jordans.com/
rolex watches, http://www.rolex-watches.me.uk/
nike roshe, http://www.rosherun.org.uk/
roshe run, http://www.rosheruns.us/
salvatore ferragamo, http://www.salvatoreferragamo.in.net/
soccer shoes, http://www.soccer-shoes.org/
baseball bats, http://www.softball-bats.us/
supra shoes, http://www.suprashoe.net/
swarovski crystal, http://www.swarovskicrystal.com.co/
swarovski jewelry, http://www.swarovskijewelry.com.co/
swarovski, http://www.swarovski-uk.org.uk/
the north face, http://www.the-northface.com.co/
the north face jackets, http://www.the-northface.in.net/
north face, http://www.thenorth-face.org.uk/
north face outlet, http://www.thenorthface.us.org/
north face outlet, http://www.thenorthfacejackets.in.net/
thomas sabo, http://www.thomassabo-uk.org.uk/
tiffany and co, http://www.tiffanyandco.net.co/
tiffany jewelry, http://www.tiffanyjewelry.us.org/
timberland outlet, http://www.timberlandboots-outlet.net/
timberland boots, http://www.timberland-shoes.com/
tommy hilfiger outlet, http://www.tommyhilfiger.net.co/
tommy hilfiger kids, http://www.tommy-hilfigeroutlet.com/
toms shoes outlet, http://www.tomshoesoutlet.com/
toms outlet, http://www.toms-outlet.in.net/
toms shoes, http://www.toms-shoes.com.co/
tory burch outlet, http://www.tory-burch-outlet.in.net/
tory burch outlet, http://www.tory-burchoutlet.us.com/
true religion, http://www.true-religion.com.co/
true religion jeans, http://www.truereligionjeans.net.co/
true religion outlet, http://www.truereligion-outlet.com.co/
ugg australia, http://www.uggaustralia.net.co/
ugg boots, http://www.uggboots.net.co/
ugg boots clearance, http://www.uggbootsclearance.com.co/
uggs on sale, http://www.uggsonsale.com.co/
uggs outlet, http://www.uggsoutlet.com.co/
coach outlet, http://www.uptocoachoutlet.com/
vans shoes, http://www.vansshoes.us/
wedding dresses, http://www.weddingdressesuk.org.uk/
yoga pants, http://www.yogapants.com.co/
ugg boot sale, http://www.ugg-boots.us.org/
polo ralph lauren outlet, http://www.poloralphlaurenoutlet.net.co/
burberry outlet online, http://www.burberryoutletonline.ar.com/
toms outlet, http://www.toms-outlet.net.co/
michaelkors.com, http://www.michaelkors.in.net/
christian louboutin, http://www.christianlouboutinoutlet.net.co/
tory burch sale, http://www.toryburchsale.com.co/
prada outlet, http://www.pradaoutlet.com.co/
longchamp handbags, http://www.longchamp-handbags.in.net/
longchamp outlet, http://www.longchampoutlet.com.co/
chanel bags, http://www.chanel-bags.com.co/
true religion outlet, http://www.truereligion-outlet.us.org/
abercrombie and fitch kids, http://www.abercrombie-and-fitch.us.com/
hollister clothing, http://www.hollisterclothing.in.net/
new balance shoes, http://www.newbalance-shoes.org/
converse shoes, http://www.converse--shoes.net/
lululemon outlet, http://www.lululemonoutlet.in.net/
nfl jerseys, http://www.nfl-jerseys.in.net/
cheap jerseys, http://www.cheapjerseys.us.org/
rolex watches, http://www.rolex-watches.us.com/
rolex watches for sale, http://www.rolexwatchesforsale.us.com/
p90x workout, http://www.p90xworkout.in.net/
giuseppe zanotti, http://www.giuseppezanotti.com.co/
mac cosmetics, http://www.maccosmetics.net.co/
instyler ionic styler, http://www.instyler.in.net/
mizuno wave, http://www.mizunorunning.net/
designer handbags, http://www.handbagsoutlet.com.co/
tommy hilfiger, http://www.hilfigeroutlet.in.net/
ed hardy, http://www.edhardy.in.net/
levi's jeans, http://www.levisjeans.com.co/
bcbg max, http://www.bcbgdresses.net/
bebe dresses, http://www.bebeclothing.net/
harrods, http://www.harrods-london.co.uk/
gucci outlet, http://www.guccishoes.com.co/
ralph lauren outlet online, http://www.ralphlaurenoutletonline.us.org/

Post comment

Nick *
Your name or nickname
E-mail
Your contact information (optional, will not be shown)
Text *
Content of your comment
Calculate *
(* - required field)
STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2016 Adam Sawicki
Copyright © 2004-2016 Adam Sawicki