{"id":17004873,"url":"https://github.com/clickermonkey/curity","last_synced_at":"2025-03-22T10:39:25.439Z","repository":{"id":152212156,"uuid":"9776569","full_name":"ClickerMonkey/Curity","owner":"ClickerMonkey","description":"A Java library with data structures developed for various projects. Many of the structures have to do with concurrency and thread-safety.","archived":false,"fork":false,"pushed_at":"2013-11-15T20:45:50.000Z","size":280,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-27T10:23:16.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"osl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ClickerMonkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-30T17:53:05.000Z","updated_at":"2019-08-13T15:20:06.000Z","dependencies_parsed_at":"2023-04-09T12:14:50.683Z","dependency_job_id":null,"html_url":"https://github.com/ClickerMonkey/Curity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FCurity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FCurity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FCurity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClickerMonkey%2FCurity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ClickerMonkey","download_url":"https://codeload.github.com/ClickerMonkey/Curity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244945597,"owners_count":20536295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T04:44:40.093Z","updated_at":"2025-03-22T10:39:25.400Z","avatar_url":"https://github.com/ClickerMonkey.png","language":"Java","readme":"curity\n======\n\n![Stable](http://i4.photobucket.com/albums/y123/Freaklotr4/stage_stable.png)\n\nA Java library with data structures developed for various projects. Many of the structures have to do with concurrency.\n\n**Classes**\n- AtomicStack *- a thread-safe wait-free stack implementation.*\n- BlockableQueue *- a queue implementation which can toggle between blocking and non-blocking.*\n- ConcurrentSet *- a thread-safe set of objects.*\n- Files *- file copying functionality.*\n- Gate *- a lock that stops all waiting threads until one of the threads open the gate. An item is held behind the gate and all blocking threads receive that object upon opening.*\n- Ref *- an interface that merely holds some value (get/set methods).*\n- LockRef *- Ref implementation that is an efficient reentrant read-write lock. Readers don't block each other, but a write will.*\n- NonNullRef *- Ref implementation that blocks until a non-null value is set*\n- Notifier *- A dynamic proxy class used for notifying a list of listeners. Objects of the same type are added, when the proxy().METHOD is called, it calls METHOD on all objects added to the notifier.*\n- Release *- A utility for unblocking blocking calls.*\n- Signal *- Provides a way for several threads to send signals between each other.*\n- Sleepable *-Any entity which blocks its thread for some period of time or until some event occurs and can be nicely awoken.*\n- State *- A thread-safe state machine used for keeping track of the state of some object, waiting for a state to occur, and changing states.*\n- EnumState *- Similar to State, but holds a single state (enum) opposed to multiple states*\n\n**Documentation**\n- [JavaDoc](http://gh.magnos.org/?r=http://clickermonkey.github.com/Curity/)\n\n**Example**\n\n```java\n/** Snippet with the utilities that ARE NOT related to concurrency. See JavaDocs to \n    view snippets of concurrent classes. **/\n\n// Copy one file/dir to another file/dir.\nFiles.copy(new File(\"src_dir\"), new File(\"dst_dir\"));\n\n// A listener to the bar event\npublic interface Foo {\n    public void onBar();\n}\n\n// Create a notifier to invoke all Foos with one invocation.\nNotifier\u003cFoo\u003e notifier = Notifier.create(Foo.class);\nnotifier.add(new Foo());\nnotifier.add(new Foo());\n \n// Invoke onBar to all Foo added to notifier\nnotifier.proxy().onBar();\n```\n\n**Builds**\n- [curity-1.0.0.jar](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Curity/blob/master/build/curity-1.0.0.jar?raw=true)\n- [curity-src-1.0.0.jar](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Curity/blob/master/build/curity-src-1.0.0.jar?raw=true) *- includes source code*\n\n**Projects using curity:**\n- [Taskaroo](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Taskaroo)\n- [Statastic](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Statastic)\n- [Daperz](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Daperz)\n- [Surfice](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Surfice)\n- [Zource](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Zource)\n- [Falcon](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Falcon)\n- [Buffero](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Buffero)\n\n**Dependencies**\n- [Testility](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Testility) *for unit tests*\n\n**Testing Examples**\n- [Testing/org/magnos/util](http://gh.magnos.org/?r=https://github.com/ClickerMonkey/Curity/tree/master/Testing/org/magnos/util)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclickermonkey%2Fcurity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclickermonkey%2Fcurity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclickermonkey%2Fcurity/lists"}