Next: unexport, Previous: make-package, Up: Packages Dictionary
with-package-iterator
(name package-list-form &rest symbol-types)
{declaration}* {form}*
⇒ {result}*
name—a symbol.
package-list-form—a form; evaluated once to produce a package-list.
package-list—a designator for a list of package designators.
symbol-type—one of the symbols :internal, :external, or :inherited.
declaration—a declare expression; not evaluated.
forms—an implicit progn.
results—the values of the forms.
Within the lexical scope of the body forms, the name is defined via macrolet such that successive invocations of (name) will return the symbols, one by one, from the packages in package-list.
It is unspecified whether symbols inherited from multiple packages are returned more than once. The order of symbols returned does not necessarily reflect the order of packages in package-list. When package-list has more than one element, it is unspecified whether duplicate symbols are returned once or more than once.
Symbol-types controls which symbols that are accessible in a package are returned as follows:
The symbols that are present in the package, but that are not exported.
The symbols that are present in the package and are exported.
The symbols that are exported by used packages and that are not shadowed.
When more than one argument is supplied for symbol-types, a symbol is returned if its accessibility matches any one of the symbol-types supplied. Implementations may extend this syntax by recognizing additional symbol accessibility types.
An invocation of (name) returns four values as follows:
A flag that indicates whether a symbol is returned (true means that a symbol is returned).
A symbol that is accessible in one the indicated packages.
The accessibility type for that symbol; i.e., one of the symbols :internal, :external, or :inherited.
The package from which the symbol was obtained. The package is one of the packages present or named in package-list.
After all symbols have been returned by successive invocations of (name), then only one value is returned, namely nil.
The meaning of the second, third, and fourth values is that the returned symbol is accessible in the returned package in the way indicated by the second return value as follows:
Means present and not exported.
Means present and exported.
Means not present (thus not shadowed) but inherited from some used package.
It is unspecified what happens if any of the implicit interior state of an iteration is returned outside the dynamic extent of the with-package-iterator form such as by returning some closure over the invocation form.
Any number of invocations of with-package-iterator can be nested, and the body of the innermost one can invoke all of the locally established macros, provided all those macros have distinct names.
The following function should return t on any package, and signal an error if the usage of with-package-iterator does not agree with the corresponding usage of do-symbols.
(defun test-package-iterator (package) (unless (packagep package) (setq package (find-package package))) (let ((all-entries '()) (generated-entries '())) (do-symbols (x package) (multiple-value-bind (symbol accessibility) (find-symbol (symbol-name x) package) (push (list symbol accessibility) all-entries))) (with-package-iterator (generator-fn package :internal :external :inherited) (loop (multiple-value-bind (more? symbol accessibility pkg) (generator-fn) (unless more? (return)) (let ((l (multiple-value-list (find-symbol (symbol-name symbol) package)))) (unless (equal l (list symbol accessibility)) (error "Symbol ~S not found as ~S in package ~A [~S]" symbol accessibility (package-name package) l)) (push l generated-entries))))) (unless (and (subsetp all-entries generated-entries :test #'equal) (subsetp generated-entries all-entries :test #'equal)) (error "Generated entries and Do-Symbols entries don't correspond")) t))
The following function prints out every present symbol (possibly more than once):
(defun print-all-symbols () (with-package-iterator (next-symbol (list-all-packages) :internal :external) (loop (multiple-value-bind (more? symbol) (next-symbol) (if more? (print symbol) (return))))))
with-package-iterator signals an error of type program-error if no symbol-types are supplied or if a symbol-type is not recognized by the implementation is supplied.
The consequences are undefined if the local function named name established by with-package-iterator is called after it has returned false as its primary value.
Traversal Rules and Side Effects
Next: unexport, Previous: make-package, Up: Packages Dictionary


| DOSE: |
25 mg |
insufflated |
DPT |
(powder / crystals) |
My experience with the psychedelic DPT is not one I would want to remember. My boyfriend and I and one other friend took this horrible drug one night, and it led to disaster. (Names have been changed)
My friend, Ben, and my boyfriend David both were intrigued by the drug and by the amazingly psychological and hallucinigenic trip it induced at small dosages when taken nasally. They decided to double their dose to 40 mg that night, despite my warnings. At first, everything seemed to be going well. I was feeling a bit different, but I was not actually 'tripping' yet because I had taken only 25 mg. Ben was overwhelmed by his hallucinations. He smiled like a maniac, his eyes open wide as if he were seeing unimaginable things.
 We were able to calm him down, but although it was amusing, I had an unsettling feeling about myself as well as David and Ben.
Meanwhile, the DPT I had snorted had begun to take effect. I was seeing visuals left and right, most of them were color distortions and morphing. It was intense, but I seemed to be handling it well, so I wasn't worried. David, on the other hand, had been thrown offguard when Ben started to freak out. He was begging us to take him to the hospital. He complained about his heart, and although it was beating abnormally fast, I kept assuring him he would be okay.
Everything seemed to calm down after that. I found my trip to be intensely psychological, which I don't much like, with much less visuals than I had expected. I left the room for two seconds, and when I heard the commotion I ran back in to see Ben, seizuring and spazzing out on the floor with three guys holding him down. His eyes were still wide open, but his expression was that of pure terror, as if he were seeing some really awful hallucinations.  Trying to remain calm, I kept my composure as we dialed 911 and held Ben down so he would not hit his head.
In a drug-induced panic, I left and returned to my college dorm, hysterically crying the whole way. It is hard to put into words what I was feeling then, it was like 20 emotions all at once, with severe undertones of terror. The world moved and swirled around me, and I could not see straight. Soon, the police and EMTs tracked me down and insisted I go to the hospital, because my heart rate was dangerously high and I was in a state of panicked shock. I was taken to a different hospital, but from what I heard the EMTs saying, David and Ben were in a lot of serious danger.
After I returned home from the hospital, I talked to David, who told me what happened. Ben was insane and convulsing in the ambulance all the way to the hospital, rambling about crazy things and screaming at things that weren't there.
I think I would have been fine if I had been in the right environment. But as David and I found out, DPT and panic do not mix. Either of us could have had a heart-attack, because both of us have in the past, but if Ben hadn't lost it, we might not be in as much trouble as we are now.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


SebZuloaga
LEVEL MENU
PROGRESS
Hey Patrik!
Check all the clues that you have collected for Level 1!
Level 1 Progress
Click on a clue to find out more about it


New music to add to your holiday playlist
by OTRCIt's officially time for holiday music and the queen of Christmas, Mariah Carey, is all about it. Mariah's mega-hit "All I Want For Christmas Is You" hit the Billboard Hot 100 earlier this year than ever before.
The song is featured on Mariah's landmark album "Merry Christmas," which has been reissued with new music for its 25th anniversary.
Also on your holiday music wishlist are the Jonas Brothers' new Christmas single "Like It's Christmas." This is the first Christmas song from the Jonas Brothers in more than ten years.
There's also new holiday music from Alessia Cara with her single "Make It To Christmas."
Ne-Yo welcomes the holiday season with his new album, "Another Kind Of Christmas." The singer-songwriter features five new songs on his album in addition to reimagined versions of Christmas classics.
Six-time Grammy Award-winning singer Dionne Warwick has a new album titled "Dionne Warwick & The Voices of Christmas," featuring icons Andra Day, Aloe Blacc, Johnny Mathis, John Rich, Michael McDonald, and The Oak Ridge Boys.
John Legend and Kelly Clarkson recently released an updated version of "Baby It's Cold Outside." The duet replaces lyrics that some people found inappropriate in light of the "Me Too" movement.
However, the new version does have its critics. Deena Martin, daughter of Dean Martin who popularized the original, says, "I don't think that John Legend should have changed the lyrics. I think, leave a tender moment alone."
Idina Menzel is also spreading the holiday cheer with her sophomore Christmas album, "Christmas: A Season of Love."
The "Frozen 2" actress is proud of her new original song "At This Table." Idina reveals, "It's sort of about inclusivity and acceptance, forgiveness and family...It felt like a really great holiday song, a song that we needed at this time."
Idina's "Frozen 2" co-star Kristen Bell also has great things to say about the new album. "Get this album because this is the album that you'll want to jam to at Christmas this year," the actress said.


How can the mathematics we've learned help us to understand the issue of greenhouse gas emissions better? And how can it help us find solutions and areas to focus our energy?


|
Vienna Vulkan Engine
|
Represents any object that has its own UBO. More...
#include <VEEntity.h>
Public Types | |
| enum | veObjectType { VE_OBJECT_TYPE_ENTITY, VE_OBJECT_TYPE_CAMERA, VE_OBJECT_TYPE_LIGHT } |
| Object type, can be node, entity for drawing, camera or light. More... | |
| Public Types inherited from ve::VESceneNode | |
| enum | veNodeType { VE_NODE_TYPE_SCENENODE, VE_NODE_TYPE_SCENEOBJECT } |
| Object type, can be just a scene node, or an object that additionally needs a UBO buffer. More... | |
Public Member Functions | |
| virtual veNodeType | getNodeType () |
| virtual veObjectType | getObjectType ()=0 |
| virtual uint32_t | getSizeUBO ()=0 |
| Public Member Functions inherited from ve::VESceneNode | |
| VESceneNode * | getParent () |
| bool | hasParent () |
| std::vector< VESceneNode * > & | getChildrenList () |
| std::vector< VESceneNode * > | getChildrenCopy () |
| void | setTransform (glm::mat4 trans) |
| Sets the scene node's local to parent transform. | |
| glm::mat4 | getTransform () |
| void | setPosition (glm::vec3 pos) |
| Sets the scene node's position. | |
| glm::vec3 | getPosition () |
| glm::vec3 | getXAxis () |
| glm::vec3 | getYAxis () |
| glm::vec3 | getZAxis () |
| void | multiplyTransform (glm::mat4 trans) |
| Multiplies the entity's transform with another 4x4 transform. More... | |
| glm::mat4 | getWorldTransform () |
| An entity's world matrix is the local to parent transform multiplied by the parent's world matrix. More... | |
| void | lookAt (glm::vec3 eye, glm::vec3 point, glm::vec3 up) |
| lookAt function for a left handed frame of reference More... | |
| virtual void | addChild (VESceneNode *) |
| Adds a child object to the list of children. More... | |
| virtual void | removeChild (VESceneNode *) |
| remove a child from the children list - child is NOT destroyed More... | |
| virtual void | getBoundingSphere (glm::vec3 *center, float *radius) |
| Get a default bounding sphere for this scene node. More... | |
| virtual void | getOBB (std::vector< glm::vec4 > &pointsW, float t1, float t2, glm::vec3 ¢er, float &width, float &height, float &depth) |
| Get an OBB that exactly holds the given points. More... | |
| Public Member Functions inherited from ve::VENamedClass | |
| VENamedClass (std::string name) | |
| Constructor. | |
| ~VENamedClass () | |
| Destructor. | |
| std::string | getName () |
Public Attributes | |
| vh::vhMemoryHandle | m_memoryHandle = {} |
| Handle to the UBO memory. | |
Protected Member Functions | |
| virtual void | updateUBO (void *pUBO, uint32_t sizeUBO, uint32_t imageIndex) |
| Copy the local data of this scene object into the GPU UBO. More... | |
| VESceneObject (std::string name, glm::mat4 transf=glm::mat4(1.0f), uint32_t sizeUBO=0) | |
| Constructor of the scene object class. More... | |
| virtual | ~VESceneObject () |
| Destructor of the scene object class. More... | |
| Protected Member Functions inherited from ve::VESceneNode | |
| VESceneNode (std::string name, glm::mat4 transf=glm::mat4(1.0f)) | |
| The constructor ot the VESceneNode class. More... | |
| virtual | ~VESceneNode () |
| Destructor of the scene node class. | |
| glm::mat4 | getWorldTransform2 () |
| An entity's world matrix is the local to parent transform multiplied by the parent's world matrix. More... | |
| virtual void | updateUBO (glm::mat4 worldMatrix, uint32_t imageIndex) |
| Meant for subclasses to add data to the UBO, so this function does nothing in base class. | |
Additional Inherited Members | |
| Protected Attributes inherited from ve::VESceneNode | |
| glm::mat4 | m_transform = glm::mat4(1.0) |
| Transform from local to parent space, the engine uses Y-UP, Left-handed. | |
| std::vector< VESceneNode * > | m_children |
| List of entity children. | |
| VESceneNode * | m_parent = nullptr |
| Pointer to entity parent. | |
| std::mutex | m_mutex |
| Mutex for locking access to this node. | |
| Protected Attributes inherited from ve::VENamedClass | |
| std::string | m_name |
| Name of this instance. | |
Represents any object that has its own UBO.
A scene object has its own UBO describing its transform and current state. Scene objects thus need a vector of uniform buffers, buffer allcoations (VMA) and descriptor sets. This is one for each swap chain image. In a mailbox swapchain, we usually have three images. Two of them can be in flight, meaning that they are currently rendered into. Thus we need at least two UBOs per object.
|
protected |
Constructor of the scene object class.
If the object needs UBOs, then first the UBOs are created (one for each swap chain image), then the descriptor sets, then the UBOs and sets are connected.
| [in] | name | Name of the new scene object. |
| [in] | transf | Transform of the object, containing orientation and position |
| [in] | sizeUBO | Size of the object's UBO, if >0 then the object needs UBOs |
|
protectedvirtual |
Destructor of the scene object class.
Destructs all UBOs that this objects owns.
|
inlinevirtual |
Reimplemented from ve::VESceneNode.
|
pure virtual |
Implemented in ve::VELight, ve::VECamera, and ve::VEEntity.
|
pure virtual |
Implemented in ve::VELight, ve::VECamera, and ve::VEEntity.
|
protectedvirtual |
Copy the local data of this scene object into the GPU UBO.
| [in] | pUBO | Pointer to the UBO that should be copied to the GPU. |
| [in] | sizeUBO | Size od the UBO. |
| [in] | imageIndex | Index of the swap chain image that is currently used. |


{{ with .Site.Params.description }} {{.}} {{ else }} Your site's description {{end}}
{{ partial "sidebar_social.html" . }}
{{ with .Site.Params.copyright }}{{.}}{{ else }}© {{ now.Format "2006"}} {{.Site.Params.author}}.
Some Rights Reserved.
Built with Hugo & hyde-hyde.{{end}}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/expr.2Ereplace.html ---
Is there a version of expr.replace that performs replacements until a fixed point is reached?
I think you need something like ext_simplify_core
for that kind of fine-grained traversal control
If you don't mind that it doesn't actually stop traversal, you can use option
or other monadic stuff to escape once you find what you wanted
Or you could write your own, expr.replace
is a simple recursive function IFIACT
ext_simplify_core
is not useful if I really want to modify the expression, right?
Maybe the easiest would just be to calculate how many times I'd have to run expr.replace
...
To be more explicit: I want to replace all occurences of (f a b c ...)
where f is a local_const
by something else, but I struggle with the fact that the expr.app
with the f
is the innermost one and not the outermost one...
Why do you need the number of runs? You're in meta land, so you don't have to worry about proving termination, do you?
True that...
Still have to get used to being that dirty
:)
But I cannot imagine that there's not a suitable version of expr.is_app_of
somewhere, such that (expr.app (expr.app (expr.const `lt []) (expr.var 1)) (expr.var 0)).is_app_of `lt'
actually evaluates to tt
...
@Sebastian Ullrich You should be ashamed to corrupt the youth (or user base) like this! Proposing to not think about termination ... Where is the world heading to?
We'll soon enough introduce a fuel
type to make the new parser actually implementable in total Lean... :)
Awesome! How does fuel work?
Why isn't it currently implementable?
It's basically nat
, but provides an opaque constant that is assumed to be large enough that the code generator can just ignore the type in practice... :)
So it's just a hint to the code generator
Wouldn't it be better to just do a well founded recursion with an omitted proof?
But I cannot imagine that there's not a suitable version of
expr.is_app_of
somewhere, such that(expr.app (expr.app (expr.const `lt []) (expr.var 1)) (expr.var 0)).is_app_of `lt'
actually evaluates tott
...

But you can prove so easily that fuel
is nicely structurally decreasing! :P
The point is it's a lie though
the real fuel
is infinity, which is not well founded, I think we should be honest about that
I admit nothing, deny everything. It proofchecks, surely it must be correct ;).
(It's a minor detail that it doesn't model whatever it is I had set out to do.)
Alternatively, the VM could support some coinductive type
@Mario Carneiro What does omitted mean, sorry
? Things like macro expansion will be _provably_ non-wellfounded, as long as we don't restrict the user input.
undefined
actually, but yes
I would rather have a sign that says "this is false, but that won't stop me" than a shell game that is false but not obviously so
We want non-meta definitions to prove partial correctness of them. There is no need for fuel
in meta.
Why not use coinductive types? That's what they are for
I don't mean supporting some coinductive
command mind you, just some specific useful/relevant coinductive type, like mathlib computation
which is basically "programming with fuel"
The problem is that models of coinductive types in CIC are not computationally efficient (i.e. stream as a nat -> A instead of B -> A x B), so they need to be VM reimplemented
Yeah, I'm not looking forward to that.
I agree that computation
may be a more satisfying design (it shouldn't matter for the proofs), but any trampolining will be bad for performance
Trampolining how? B -> A x B is exactly the same as the state monad, and it didn't seem to be a big problem there; I assumed the plan was to optimize the trampoline away once lean compilation gets good
Speaking of which, this requires a trivial amount of VM support - "call Y instead of X", and it would solve a huge number of problems if an API for that was exposed
Other applications include "VM identity functions", where some nontrivial lean function is the identity in VM representation, while executing it as written will have much worse performance (for example, list.attach
is O(n) but is a VM identity function)
It sounds like we would have to specialize the trampoline driver to the specific functional, but I don't expect specialization any time soon
"call Y instead of X" sounds like trouble if the types of Y and X have different runtime representations like in your first example...?
I like Mario's thinking. Using computation
instead of the fuel
trick has the added benefit that, if you call one of those functions in code where precise knowledge about termination matters, the type tells you exactly what to expect. And a computation + proof of termination gives you a properly well-founded Lean value
An example where I have seen that separation to be productive is when the proof of termination depends on the shape of a pointer structure
If that's useful, I have a Lean port of Chlipala general recursion machinery.
Chlipala appears to list some strong limitations for both of his coinductive definitions
"call Y instead of X" sounds like trouble if the types of Y and X have different runtime representations like in your first example...?
It's okay as long as it's a complete type replacement, i.e., all the functions that access the type are replaced with modified versions. For example, we could VM-replace nat.add
withnum.add
, and also all the other nat functions, if we wanted to have a lean-based fast nat implementation. Similarly, you could use this to support the quotient encoding: you don't VM-replace quot A
by A
because it's a type so it won't be called anyway, but you replace all the quot
functions with identity functions.
If we ever get the ability to write system F functions for direct use by the VM (although this is a whole separate feature), it would also be useful to use VM replacement here, in case a certain function can't be well-typed in lean but is valid system F.
It sounds like we would have to specialize the trampoline driver to the specific functional, but I don't expect specialization any time soon
Thinking more about how this would actually work with computation
, we have computation.run
which calls the corecursor (which has type B -> A + B after VM-replacement), returns A if success, and otherwise calls itself with the new value of B. This function is the "trampoline" in your scenario. On the other side, the coinductive type is being represented by the corecursor itself, so the user wrote this function B -> A + B. You would have to call the B part whenever you need to use some fuel, and otherwise return the output or continue some other well-founded recursion etc.
Part of the problem with programming this way is that B must contain the entire state of the program, everything that changes during the recursion, and it's usually unpleasant to have to explicitly enumerate all this data - this is what the compiler should be doing for you. One really nice way to handle this would be to have a compiler from unbounded recursive definitions to computation
, or even simpler, a computation.fix
operator which allows you to write such functions directly. (Apparently there is no computation.fix defined, but it isn't hard to define, with type (A -> computation A) -> computation A
.)
With this latter approach, you could just call fix f
instead of computation.run (computation.fix (ret o f))
on the VM side and thus avoid most of the trampolining. There would still be fix(f) { return f(fix(f)); }
which I guess can be inlined(?) but otherwise seems difficult to improve on
It's okay as long as it's a complete type replacement
I see, yes. We're planning to allow private
fields in structures to hide implementation details like string
, which could be used here as well
One really nice way to handle this would be to have a compiler from unbounded recursive definitions to computation
This would be a nice feature for a future equation compiler defined in Lean. With fix
, you still have to pack multiple arguments into tuples. Though that could also happen automatically when lifting computation
through state_t
.
I can see a lot of use for a new generation of equation compilers (including some for corecursive functions). For computation specifically, it would be nice if it worked on the basis of a type class. If your return type is a monad that supports unbounded recursion, then its amenable to the treatment of the new equation compiler.
I will be very happy if all of this works out some day :)
Still not sure I should use it in the parser :smile:
Why not put a limitation on how many nested macros to unfold? Seems like that would be undesirable anyway
Yes, that's what it currently looks like. There may be better examples, like parsing routines where we don't want to prove wellfoundedness without the tactic framework.
That is also a problem with unbounded recursion: you need to prove that your functions are monotonic. The tactic framework is useful for that. Maybe we can do it with type classes too though
This is part of the reason I want to avoid the fuel
approach - the functions of interest are not all functions, but functions that have some monotonicity conditions as fuel
changes, and you have to prove this for all functions you define, even though the proof is always straightforward.
But I have found the (H : monotonic f . prove_monotonicity)
notation to be pretty useful to make that invisible
(in the parameters of fix
for instance
Not sure how much of this is available in the parser stuff though (maybe bootstrapping will help here)
What does expr.replace do?
So because of expr.app
and other such things an expr
is a big tree of little-er expr
s. You can get lean to map over an expr
in this way with a function which can decide to replace subexpressions or not (the function decides to either a) replace this with something I provide or b) don't replace and descend into it instead). The nat
argument tells you how deep in the binders you are, so you can correctly emit expr.var
s.
Thanks. Sounds like what I wanted.
added docstring to https://github.com/EdAyers/lean
Struggling to use expr.replace
slightly. I want to use infer_type
to fill in the (expr → ℕ → option expr)
argument, but this returns a tactic expr
not an expr
or option expr
. Is there any way around this?
so just extract the expr
?
t <- infer_type u
no way around it, I'm afraid. infer_type
wouldn't even work because it's looking at open terms
you have to explicitly traverse the term and instantiate_local
to go through binders
tactic.hide
is an example
Okay thanks.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Improve scalability of critbit.
The critbit hash algorithm has now been tightened to make sure the tree is in a consistent state at all points, and the time we wait for an object to cool off after it is eligible for garbage collection has been tweaked.
Add log command to VCL. This emits a VCL_log entry into the shared memory log.
Only emit Length and ReqEnd log entries if we actually have an XID. This should get rid of some empty log lines in varnishncsa.
Destroy directors in a predictable fashion, namely reverse of creation order.
Fix bug when ESI elements spanned storage elements causing a panic.
In some cases, the VCL compiler would panic instead of giving sensible messages. This has now been fixed.
Correct an off-by-one error when the requested range exceeds the size of an object.
Handle requests for the end of an object correctly.
Allow tabulator characters in the third field of the first line of HTTP requests
On Solaris, if the remote end sends us an RST, all system calls related to that socket will return EINVAL. We now handle this better.
The -X parameter didn't work correctly. This has been fixed.


TRESPASS A film review by Ken Johnson Copyright 1993 Ken Johnson
105 min., R, Action, 1992 Director: Walter Hill Cast: Bill Paxton, Ice-T, William Sadler, Ice Cube, Art Evans, Bruce A. Evans
While fighting a fire, firemen Bill Paxton and William Sadler are given a treasure map by a man who then commits suicide. The map shows a floor of an abandoned factory in East St. Louis. Bill Paxton and William Sadler go to the factory to search for the treasure. While they are searching, drug dealer Ice-T and his gang show up and Paxton and Sadler witness a murder. Paxton and Sadler end up trapped in one of the rooms at the factory with Ice-T's brother as a hostage. They try to find a way out, while Ice-T tries to get his brother back.
Being a fan of Ice-T (both the music and acting there of) and director Walter Hill, I went out to see TRESPASS at the first chance I got. This is more of a young adult film, than an adult film, but that is not to say that all adults will dislike it. I did enjoy watching TRESPASS, and recommend it if you tend to enjoy Walter Hill's films. On a scale of zero to five, I give TRESPASS a five. TRESPASS is rated R for violence and explicit language.
This is certainly a time for music artists to start acting. Whitney Huston has a film out, THE BODYGUARD; Phil Collins was just recently in HOOK; rap artists Ice-T and Ice Cube are continuing their film careers in TRESPASS. TRESPASS was originally scheduled to be released during the summer under the title THE LOOTERS, but the timing was too close to the L.A. riots. TRESPASS is written excellently. It is exciting and the action sequences are great. The soundtrack for the film is great. The music fits the film perfectly.
There are several levels to the characters, some are good (Bill Paxton, William Sadler) and others are bad (Ice-T, Ice Cube). But within those levels, there is still more, Bill Paxton is a good guy, whereas William Sadler is a semi-good good guy. The same is shown with Ice-T and Ice Cube, Ice Cube is definitely a bad guy, but Ice-T is a semi-bad bad guy.
I have enjoyed Ice-T's acting career so far (NEW JACK CITY, RICOCHET) and I think that he is a powerful screen presence. He has played the good guy (NEW JACK CITY) and now he plays the semi-bad guy (the same as he did in RICOCHET, I believe). He does an excellent job in this film, and he alone makes the film worth going to see. Ice Cube (BOYZ N THE HOOD) is very good as one of the bad guys. William Sadler and Bill Paxton were great as the firemen. The two people who I enjoyed the most in this film were Ice-T and the person who played the black man who was living in the factory.
-------- Ken Johnson<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


libtorrent python binding
| Author: | Arvid Norberg<EMAIL_ADDRESS>|
|---|---|
| Version: | 1.2.6 |
Table of contents
building
Building the libtorrent python bindings will produce a shared library (DLL) which is a python module that can be imported in a python program.
building using boost build (windows)
Download and install Visual C++ 2015 Build Tools
Download Boost libraries Extract it to c:/Libraries/boost_1_63_0 and create these environmental vars:
- BOOST_BUILD_PATH: "c:/Libraries/boost_1_63_0/tools/build/"
- BOOST_ROOT: "c:/Libraries/boost_1_63_0/"
Navigate to BOOST_ROOT, execute "bootstrap.bat" and add to the path "c:/Libraries/boost_1_63_0/tools/build/src/engine/bin.ntx86/"
Move the file user-config.jam from %BOOST_BUILD_PATH%/example/ to %BOOST_BUILD_PATH%/user-config.jam and add this at the end:
using msvc : 14.0 : : /std:c++11 ; using python : 3.5 : C:/Users/<UserName>/AppData/Local/Programs/Python/Python35 : C:/Users/<UserName>/AppData/Local/Programs/Python/Python35/include : C:/Users/<UserName>/AppData/Local/Programs/Python/Python35/libs ;
(change the python path for yours)
- Navigate to bindings/python and execute::
- python setup.py build --bjam
Note: If you are using 64 bits python you should edit setup.py and add this to the b2 command: address-model=64
This will create the file libtorrent.pyd inside build/lib/ that contains the binding.
building using boost build (others)
To set up your build environment, you need to add some settings to your $BOOST_BUILD_PATH/user-config.jam.
A similar line to this line should be in the file (could be another python version):
#using python : 2.3 ;
Uncomment it and change it with the version of python you have installed or want to use. If you've installed python in a non-standard location, you have to add the prefix path used when you installed python as a second option. Like this:
using python : 2.6 : /usr/bin/python2.6 : /usr/include/python2.6 : /usr/lib/python2.6 ;
The bindings require at least python version 2.2.
For more information on how to install and set up boost-build, see the building libtorrent section.
Once you have boost-build set up, you cd to the bindings/python directory and invoke bjam with the appropriate settings. For the available build variants, see libtorrent build options.
For example:
$ bjam dht-support=on link=static
On Mac OS X, this will produce the following python module:
bin/darwin-4.0/release/dht-support-on/link-static/logging-none/threading-multi/libtorrent.so
using libtorrent in python
The python interface is nearly identical to the C++ interface. Please refer to the library reference. The main differences are:
- asio::tcp::endpoint
- The endpoint type is represented as a tuple of a string (as the address) and an int for the port number. E.g. ("<IP_ADDRESS>", 6881) represents the localhost port 6881.
- lt::time_duration
- The time duration is represented as a number of seconds in a regular integer.
The following functions takes a reference to a container that is filled with entries by the function. The python equivalent of these functions instead returns a list of entries.
- torrent_handle::get_peer_info
- torrent_handle::file_progress
- torrent_handle::get_download_queue
- torrent_handle::piece_availability
create_torrent::add_node() takes two arguments, one string and one integer, instead of a pair. The string is the address and the integer is the port.
session::apply_settings() accepts a dictionary with keys matching the names of settings in settings_pack. When calling apply_settings, the dictionary does not need to have every settings set, keys that are not present are not updated.
To get a python dictionary of the settings, call session::get_settings.
Retrieving session statistics in Python is more convenient than that in C++. The statistics are stored as an array in session_stats_alert, which will be posted after calling post_session_stats() in the session object. In order to interpret the statistics array, in C++ it is required to call session_stats_metrics() to get the indices of these metrics, while in Python it can be done using session_stats_alert.values["NAME_OF_METRIC"], where NAME_OF_METRIC is the name of a metric.
For an example python program, see client.py in the bindings/python directory.
A very simple example usage of the module would be something like this:
import libtorrent as lt import time import sys ses = lt.session({'listen_interfaces': '<IP_ADDRESS>:6881'}) info = lt.torrent_info(sys.argv[1]) h = ses.add_torrent({'ti': info, 'save_path': '.'}) s = h.status() print('starting', s.name) while (not s.is_seeding): s = h.status() print('\r%.2f%% complete (down: %.1f kB/s up: %.1f kB/s peers: %d) %s' % ( s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, s.num_peers, s.state), end=' ') alerts = ses.pop_alerts() for a in alerts: if a.category() & lt.alert.category_t.error_notification: print(a) sys.stdout.flush() time.sleep(1) print(h.status().name, 'complete')


yum.conf
Section: yum configuration file (5)Updated:
Index Return to Main Contents
NAME
yum.conf - Configuration file for yum(8).
DESCRIPTION
Yum uses a configuration file at /etc/yum.conf.
Additional configuration files are also read from the directories set by the reposdir option (default is `/etc/yum.repos.d'). See the reposdir option below for further details.
PARAMETERS
There are two types of sections in the yum configuration file(s): main and repository. Main defines all global configuration options. There should be only one main section. The repository section(s) define the configuration for each repository/server. There should be one or more repository sections.
[main] OPTIONS
The [main] section must exist for yum to do anything. It consists of the following options:
-
cachedir
Directory where yum should store its cache and db files. The default is
`/var/cache/yum'.
-
persistdir
Directory where yum should store information that should persist over multiple
runs. The default is `/var/lib/yum'.
-
keepcache
Either `1' or `0'. Determines whether or not yum keeps the cache
of headers and packages after successful installation. Default is '1'
(keep files)
-
reposdir
A list of directories where yum should look for .repo files which define
repositories to use. Default is `/etc/yum.repos.d'. Each
file in this directory should contain one or more repository sections as
documented in [repository] options below. These will be merged with the
repositories defined in /etc/yum.conf to form the complete set of
repositories that yum will use.
-
debuglevel
Debug message output level. Practical range is 0-10. Default is `2'.
-
errorlevel
Error message output level. Practical range is 0-10. Default is `2'.
-
rpmverbosity
Debug scriptlet output level. 'info' is the default, other
options are: 'critical', 'emergency', 'error', 'warn' and 'debug'.
-
protected_packages
This is a list of packages that yum should never completely remove. They are
protected via. Obsoletes as well as user/plugin removals.
The default is: yum glob:/etc/yum/protected.d/*.conf So any packages which should be protected can do so by including a file in /etc/yum/protected.d with their package name in it.
Also if this configuration is set to anything, then yum will protect the package corresponding to the running version of the kernel.
-
protected_multilib
Either `1' or `0'. This tells yum whether or not it should perform a check to
make sure that multilib packages are the same version. For example, if this
option is off (rpm behaviour) pkgA-1.x86_64 and pkgA-2.i386 can be installed
at the same time. However this is very rarely desired.
install only packages, like the kernel, are excempt from this check.
The default is `1'.
-
logfile
Full directory and file name for where yum should write its log file.
-
gpgcheck
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on packages. When this is set in the [main] section it sets the
default for all repositories.
The default is `0'.
localpkg_gpgcheck Either `1' or `0'. This tells yum whether or not it should perform a GPG signature check on local packages (packages in a file, not in a repositoy). The default is `0'.
-
repo_gpgcheck
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the repodata. When this is set in the [main] section it sets the
default for all repositories. The default is `0'.
-
skip_broken
Either `1' or `0'. Resolve depsolve problems by removing packages that
are causing problems from the transaction.
-
assumeyes
Either `1' or `0'. Determines whether or not yum prompts for confirmation of
critical actions. Default is `0' (do prompt).
Command-line option: -y -
alwaysprompt
Either `1' or `0'. Without this option, yum will not prompt for confirmation
when the list of packages to be installed exactly matches those given on the
command line. Unless assumeyes is enabled, it will still prompt for
package removal, or when additional packages need to be installed to fulfill
dependencies. Default is `1'.
-
tolerant
Either `1' or `0'. If enabled, then yum will be tolerant of errors on the
command line with regard to packages. For example: if you request to install
foo, bar and baz and baz is installed; yum won't error out complaining that baz
is already installed. Default to `0' (not tolerant).
Command-line option: -t -
exclude
List of packages to exclude from updates or installs. This should be a space
separated list.
Shell globs using wildcards (eg. * and ?) are allowed.
-
exactarch
Either `1' or `0'. Set to `1' to make yum update only update the architectures
of packages that you have installed. ie: with this enabled yum will not install
an i686 package to update an i386 package. Default is `1'.
-
installonlypkgs
List of package provides that should only ever be installed, never updated.
Kernels in particular fall into this category. Defaults to kernel,
kernel-bigmem, kernel-enterprise, kernel-smp, kernel-debug,
kernel-unsupported, kernel-source, kernel-devel, kernel-PAE, kernel-PAE-debug.
Note that because these are provides, and not just package names, kernel-devel will also apply to kernel-debug-devel, etc.
Note that "kernel-modules" is not in this list, in RHEL-6, and so anything providing that is updated like any other package.
-
installonly_limit
Number of packages listed in installonlypkgs to keep installed at the same
time. Setting to 0 disables this feature. Default is '3'. Note that this
functionality used to be in the "installonlyn" plugin, where this option was
altered via. tokeep.
Note that as of version 3.2.24, yum will now look in the yumdb for a installonly
attribute on installed packages. If that attribute is "keep", then they will
never be removed.
-
kernelpkgnames
List of package names that are kernels. This is really only here for the
updating of kernel packages and should be removed out in the yum 2.1 series.
-
showdupesfromrepos
Either `0' or `1'. Set to `1' if you wish to show any duplicate packages from
any repository, from package listings like the info or list commands. Set
to `0' if you want only to see the newest packages from any repository.
Default is `0'.
-
obsoletes
This option only has affect during an update. It enables yum's
obsoletes processing logic. Useful when doing distribution level upgrades. See
also the yum upgrade command documentation for more details (yum(8)).
Default is `true'.
Command-line option: --obsoletes -
overwrite_groups
Either `0' or `1'. Used to determine yum's behaviour if two or more
repositories offer the package groups with the same name. If
overwrite_groups is `1' then the group packages of the last matching
repository will be used. If overwrite_groups is `0' then the groups
from all matching repositories will be merged together as one large group.
-
groupremove_leaf_only
Either `0' or `1'. Used to determine yum's behaviour when the groupremove
command is run. If groupremove_leaf_only is `0' (default) then
all packages in the group will be removed. If groupremove_leaf_only is
`1' then only those packages in the group that aren't required by another
package will be removed.
-
enable_group_conditionals
Either `0' or `1'. Determines whether yum will allow the use of conditionals
packages. Default is `1' (package conditionals are allowed).
-
group_package_types
List of the following: optional, default, mandatory. Tells yum which type
of packages in groups will be installed when 'groupinstall' is called.
Default is: default, mandatory
-
installroot
Specifies an alternative installroot, relative to which all packages will be
installed.
Command-line option: --installroot -
distroverpkg
The package used by yum to determine the "version" of the distribution. This
can be any installed package. Default is `redhat-release'. You can see what
provides this manually by using: "yum whatprovides redhat-release".
-
diskspacecheck
Either `0' or `1'. Set this to `0' to disable the checking for sufficient
diskspace before a RPM transaction is run. Default is `1' (perform the check).
-
tsflags
Comma or space separated list of transaction flags to pass to the rpm
transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test', 'justdb' and 'nocontexts'. 'repackage' is also available but that does nothing
with newer rpm versions.
You can set all/any of them. However, if you don't know what these do in the
context of an rpm transaction set you're best leaving it alone. Default is
an empty list.
-
recent
Number of days back to look for `recent' packages added to a repository.
Used by the list recent command. Default is `7'.
-
retries
Set the number of times any attempt to retrieve a file should retry before
returning an error. Setting this to `0' makes yum try forever. Default is `10'.
-
keepalive
Either `0' or `1'. Set whether HTTP keepalive should be used for HTTP/1.1
servers that support it. This can improve transfer speeds by using one
connection when downloading multiple files from a repository. Default is `1'.
-
timeout
Number of seconds to wait for a connection before timing out. Defaults to
30 seconds. This may be too short of a time for extremely overloaded
sites.
-
http_caching
Determines how upstream HTTP caches are instructed to handle any HTTP downloads
that Yum does. This option can take the following values:
`all' means that all HTTP downloads should be cached.
`packages' means that only RPM package downloads should be cached (but not repository metadata downloads).
`none' means that no HTTP downloads should be cached.
The default is `all'. This is recommended unless you are experiencing caching related issues. Try to at least use `packages' to minimize load on repository servers.
-
throttle
Enable bandwidth throttling for downloads. This option can be expressed as a
absolute data rate in bytes/sec. An SI prefix (k, M or G) may be appended to the
bandwidth value (eg. `5.5k' is 5.5 kilobytes/sec, `2M' is 2 Megabytes/sec).
Alternatively, this option can specify the percentage of total bandwidth to use (eg. `60%'). In this case the bandwidth option should be used to specify the maximum available bandwidth.
Set to `0' to disable bandwidth throttling. This is the default.
-
bandwidth
Use to specify the maximum available network bandwidth in bytes/second. Used
with the throttle option (above). If throttle is a percentage and
bandwidth is `0' then bandwidth throttling will be disabled. If
throttle is expressed as a data rate (bytes/sec) then this option is
ignored. Default is `0' (no bandwidth throttling).
-
sslcacert
Path to the directory containing the databases of the certificate authorities
yum should use to verify SSL certificates. Defaults to none - uses system
default
-
sslverify
Boolean - should yum verify SSL certificates/hosts at all. Defaults to True.
Note that the plugin yum-rhn-plugin will force this value to true, and may alter other ssl settings (like hostname checking), even if it the machine is not registered.
-
sslclientcert
Path to the SSL client certificate yum should use to connect to repos/remote sites
Defaults to none.
Note that if you are using curl compiled against NSS (default in Fedora/RHEL), curl treats sslclientcert values with the same basename as _identical_. This version of yum will check that this isn't true and output an error when the repositories "foo" and "bar" violate this, like so:
sslclientcert basename shared between foo and bar
-
sslclientkey
Path to the SSL client key yum should use to connect to repos/remote sites
Defaults to none.
-
ssl_check_cert_permissions
Boolean - Whether yum should check the permissions on the paths for the
certificates on the repository (both remote and local). If we can't read any of
the files then yum will force skip_if_unavailable to be true.
This is most useful for non-root processes which use yum on repos. that have
client cert files which are readable only by root.
Defaults to True.
-
history_record
Boolean - should yum record history entries for transactions. This takes some
disk space, and some extra time in the transactions. But it allows how to know a
lot of information about what has happened before, and display it to the user
with the history info/list/summary commands. yum also provides the
history undo/redo commands. Defaults to True.
Note that if history is recorded, yum uses that information to see if any modifications to the rpmdb have been done outside of yum. These are always bad, from yum's point of view, and so yum will issue a warning and automatically run some of "yum check" to try and find some of the worst problems altering the rpmdb might have caused.
-
This means that turning this option off will stop yum from being able to
detect when the rpmdb has changed and thus. it will never warn you or
automatically run "yum check". The problems will likely still be there, and
yumdb etc. will still be wrong but yum will not warn you about it.
-
history_record_packages
This is a list of package names that should be recorded as having helped the
transaction. yum plugins have an API to add themselves to this, so it should not
normally be necessary to add packages here. Not that this is also used for the
packages to look for in --version. Defaults to rpm, yum, yum-metadata-parser.
-
history_list_view
Which column of information to display in the "yum history list" command. There
are currently three options: users, cmds (or commands), single-user-commands.
Older versions of yum acted like "users", which always outputs the user who initiated the yum transaction. You can now specify "commands" which will instead always output the command line of the transaction. You can also specify "single-user-commands" which will display the users if there are more than one, otherwise it will display the command line.
You can also specify "default" which currently selects "users".
-
commands
List of functional commands to run if no functional commands are specified
on the command line (eg. "update foo bar baz quux"). None of the short options
(eg. -y, -e, -d) are accepted for this option.
-
syslog_ident
Identification (program name) for syslog messages.
-
syslog_facility
Facility name for syslog messages, see syslog(3). Default is `LOG_USER'.
-
syslog_device
Where to log syslog messages. Can be a local device (path) or a host:port
string to use a remote syslog. If empty or points to a nonexistent device,
syslog logging is disabled. Default is `/dev/log'.
-
proxy
URL to the proxy server that yum should use.
-
proxy_username
username to use for proxy
-
proxy_password
password for this proxy
-
username
username to use for basic authentication to a repo or really any url.
-
password
password to use with the username for basic authentication.
-
plugins
Either `0' or `1'. Global switch to enable or disable yum plugins. Default is
`0' (plugins disabled). See the PLUGINS section of the yum(8) man
for more information on installing yum plugins.
-
pluginpath
A list of directories where yum should look for plugin modules. Default is
`/usr/share/yum-plugins' and `/usr/lib/yum-plugins'.
-
pluginconfpath
A list of directories where yum should look for plugin configuration files.
Default is `/etc/yum/pluginconf.d'.
-
metadata_expire
Time (in seconds) after which the metadata will expire. So that if the
current metadata downloaded is less than this many seconds old then yum will
not update the metadata against the repository. If you find that
yum is not downloading information on updates as often as you would like
lower the value of this option. You can also change from the default of using
seconds to using days, hours or minutes by appending a d, h or m respectively.
The default is 6 hours, to compliment yum-updatesd running once an hour.
It's also possible to use the word "never", meaning that the metadata will
never expire. Note that when using a metalink file the metalink must always
be newer than the metadata for the repository, due to the validation, so this
timeout also applies to the metalink file.
-
mirrorlist_expire
Time (in seconds) after which the mirrorlist locally cached will expire.
If the current mirrorlist is less than this many seconds old then yum
will not download another copy of the mirrorlist, it has the same extra format
as metadata_expire.
If you find that yum is not downloading the mirrorlists as
often as you would like lower the value of this option.
-
mdpolicy
You can select from different metadata download policies depending on how much
data you want to download with the main repository metadata index. The
advantages of downloading more metadata with the index is that you can't get
into situations where you need to use that metadata later and the versions
available aren't compatible (or the user lacks privileges) and that if the
metadata is corrupt in any way yum will revert to the previous metadata.
`instant' - Just download the new metadata index, this is roughly what yum always did, however it now does some checking on the index and reverts if it classifies it as bad.
`group:primary' - Download the primary metadata with the index. This contains most of the package information and so is almost always required anyway. This is the default.
`group:small' - With the primary also download the updateinfo metadata, this is required for yum-security operations and it also used in the graphical clients. This file also tends to be significantly smaller than most others.
`group:main' - With the primary and updateinfo download the filelists metadata and the group metadata. The filelists data is required for operations like "yum install /bin/bash", and also some dependency resolutions require it. The group data is used in some graphical clients and for group operations like "yum grouplist Base".
`group:all' - Download all metadata listed in the index, currently the only one not listed above is the other metadata, which contains the changelog information which is used by yum-changelog. This is what "yum makecache" uses.
-
multilib_policy
Can be set to 'all' or 'best'. All means install all possible arches for any package you
want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64,
if it is available. Best means install the best arch for this platform, only.
-
bugtracker_url
URL where bugs should be filed for yum. Configurable for local versions or distro-specific
bugtrackers.
-
color
Display colorized output automatically, depending on the output terminal,
always (using ANSI codes) or never.
Command-line option: --color
-
color_list_installed_older
The colorization/highlighting for packages in list/info installed which are
older than the latest available package with the same name and arch.
Default is `bold'.
Possible values are a comma separated list containing: bold, blink, dim,
reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
bg:cyan, bg:white.
-
color_list_installed_newer
The colorization/highlighting for packages in list/info installed which are
newer than the latest available package with the same name and arch.
Default is `bold,yellow'.
See color_list_installed_older for possible values.
-
color_list_installed_reinstall
The colorization/highlighting for packages in list/info installed which is
the same version as the latest available package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.
-
color_list_installed_extra
The colorization/highlighting for packages in list/info installed which has
no available package with the same name and arch.
Default is `bold,red'.
See color_list_installed_older for possible values.
-
color_list_available_upgrade
The colorization/highlighting for packages in list/info available which is
an upgrade for the latest installed package with the same name and arch.
Default is `bold,blue'.
See color_list_installed_older for possible values.
-
color_list_available_downgrade
The colorization/highlighting for packages in list/info available which is
a downgrade for the latest installed package with the same name and arch.
Default is `dim,cyan'.
See color_list_installed_older for possible values.
-
color_list_available_install
The colorization/highlighting for packages in list/info available which has
no installed package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.
-
color_list_available_reinstall
The colorization/highlighting for packages in list/info available which is
the same version as the installed package with the same name and arch.
Default is `bold,underline,green.
See color_list_installed_older for possible values.
-
color_search_match
The colorization/highlighting for text matches in search.
Default is `bold'.
See color_list_installed_older for possible values.
-
color_update_installed
The colorization/highlighting for packages in the "updates list" which are
installed. The updates list is what is printed when you run "yum update",
"yum list updates", "yum list obsoletes" and "yum check-update".
Default is `normal'.
See color_list_installed_older for possible values.
-
color_update_local
The colorization/highlighting for packages in the "updates list" which are
already downloaded. The updates list is what is printed when you run
"yum update", "yum list updates", "yum list obsoletes" and "yum check-update".
Default is `bold'.
See color_list_installed_older for possible values.
-
color_update_remote
The colorization/highlighting for packages in the "updates list" which need to
be downloaded. The updates list is what is printed when you run "yum update",
"yum list updates", "yum list obsoletes" and "yum check-update".
Default is `normal'.
See color_list_installed_older for possible values.
-
clean_requirements_on_remove
When removing packages (by removal, update or obsoletion) go through each
package's dependencies. If any of them are no longer required by any other
package then also mark them to be removed.
Boolean (1, 0, True, False, yes,no) Defaults to False
-
reset_nice
If set to true then yum will try to reset the nice value to zero, before
running an rpm transaction. Defaults to True.
[repository] OPTIONS
The repository section(s) take the following form:
-
Example:
[repositoryid]
name=Some name for this repository
baseurl=url://path/to/repository/
-
repositoryid
Must be a unique name for each repository, one word.
-
name
A human readable string describing the repository.
-
baseurl
Must be a URL to the directory where the yum repository's `repodata' directory
lives. Can be an http://, ftp:// or file:// URL. You can specify multiple URLs
in one baseurl statement. The best way to do this is like this:
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
If you list more than one baseurl= statement in a repository you will find yum will ignore the earlier ones and probably act bizarrely. Don't do this, you've been warned.
You can use HTTP basic auth by prepending "user:password@" to the server name in the baseurl line. For example<EMAIL_ADDRESS>-
metalink
Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for
the entire repository are generated by converting the mirrors for the
repomd.xml file to a baseurl. The metalink file also contains the latest
timestamp from the data in the repomd.xml, the length of the repomd.xml and
checksum data. This data is checked against any downloaded repomd.xml file
and all of the information from the metalink file must match. This can be used
instead of or with the baseurl option. Substitution variables, described
below, can be used with this option. This option disables the mirrorlist option.
As a special hack is the mirrorlist URL contains the word "metalink" then the
value of mirrorlist is copied to metalink (if metalink is not set).
-
mirrorlist
Specifies a URL to a file containing a list of baseurls. This can be used
instead of or with the baseurl option. Substitution variables, described
below, can be used with this option.
As a special hack is the mirrorlist URL contains the word "metalink" then the
value of mirrorlist is copied to metalink (if metalink is not set).
-
enabled
Either `1' or `0'. This tells yum whether or not use this repository.
-
gpgcheck
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the packages gotten from this repository.
-
repo_gpgcheck
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the repodata from this repository.
-
gpgkey
A URL pointing to the ASCII-armored GPG key file for the repository. This
option is used if yum needs a public key to verify a package and the required
key hasn't been imported into the RPM database. If this option is set, yum will
automatically import the key from the specified URL. You will be prompted before
the key is installed unless the assumeyes option is set.
Multiple URLs may be specified here in the same manner as the baseurl option (above). If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed.
-
gpgcakey
A URL pointing to the ASCII-armored CA key file for the repository. This is a normal
gpg public key - but this key will be used to validate detached signatures of all
other keys. The idea is you are asked to confirm import for this key. After that any other
gpg key needed for package or repository verification, if it has a detached signature which matches this
key will be automatically imported without user confirmation.
-
exclude
Same as the [main] exclude option but only for this repository.
Substitution variables, described below, are honored here.
-
includepkgs
Inverse of exclude. This is a list of packages you want to use from a
repository. If this option lists only one package then that is all yum will
ever see from the repository. Defaults to an empty list. Substitution
variables, described below, are honored here.
-
enablegroups
Either `0' or `1'. Determines whether yum will allow the use of package groups
for this repository. Default is `1' (package groups are allowed).
-
failovermethod
Either `roundrobin' or `priority'.
`roundrobin' randomly selects a URL out of the list of URLs to start with and proceeds through each of them as it encounters a failure contacting the host.
`priority' starts from the first baseurl listed and reads through them sequentially.
failovermethod defaults to `roundrobin' if not specified.
-
keepalive
Either `1' or `0'. This tells yum whether or not HTTP/1.1 keepalive should be
used with this repository. See the global option in the [main] section above
for more information.
-
timeout
Overrides the timeout option from the [main] section for this repository.
-
http_caching
Overrides the http_caching option from the [main] section for this repository.
-
retries
Overrides the retries option from the [main] section for this repository.
-
throttle
Overrides the throttle option from the [main] section for this
repository.
-
bandwidth
Overrides the bandwidth option from the [main] section for this
repository.
-
sslcacert
Overrides the sslcacert option from the [main] section for this
repository.
-
sslverify
Overrides the sslverify option from the [main] section for this
repository.
-
sslclientcert
Overrides the sslclientcert option from the [main] section for this
repository.
-
sslclientkey
Overrides the sslclientkey option from the [main] section for this
repository.
-
ssl_check_cert_permissions
Overrides the ssl_check_cert_permissions option from the [main] section
for this repository.
-
metadata_expire
Overrides the metadata_expire option from the [main] section for this
repository.
-
mirrorlist_expire
Overrides the mirrorlist_expire option from the [main] section for this
repository.
-
proxy
URL to the proxy server for this repository. Set to '_none_' to disable the
global proxy setting for this repository. If this is unset it
inherits it from the global setting
-
proxy_username
username to use for proxy.
If this is unset it inherits it from the global setting
-
proxy_password
password for this proxy.
If this is unset it inherits it from the global setting
-
username
username to use for basic authentication to a repo or really any url.
If this is unset it inherits it from the global setting
-
password
password to use with the username for basic authentication.
If this is unset it inherits it from the global setting
-
cost
relative cost of accessing this repository. Useful for weighing one repo's packages
as greater/less than any other. defaults to 1000
- skip_if_unavailable If set to True yum will continue running if this repository cannot be contacted for any reason. This should be set carefully as all repos are consulted for any given command. Defaults to False.
-
URL INCLUDE SYNTAX
The inclusion of external configuration files is supported for /etc/yum.conf and the .repo files in the /etc/yum.repos.d directory. To include a URL, use a line of the following format:
include=url://to/some/location
The configuration file will be inserted at the position of the "include=" line. Included files may contain further include lines. Yum will abort with an error if an inclusion loop is detected.
GLOB: FOR LIST OPTIONS
Any of the configurations options which are a list of items can be specfied using the glob syntax: glob:/etc/path/somewhere.d/*.conf. This will read in all files matching that glob and include all lines in each file (excluding comments and blank lines) as items in the list.
VARIABLES
There are a number of variables you can use to ease maintenance of yum's configuration files. They are available in the values of several options including name, baseurl and commands.
-
$releasever
This will be replaced with the value of the version of the package listed
in distroverpkg. This defaults to the version of `redhat-release'
package.
-
$arch
This will be replaced with your architecture as listed by os.uname()[4] in
Python.
-
$basearch
This will be replaced with your base architecture in yum. For example, if
your $arch is i686 your $basearch will be i386.
-
$uuid
This will be replaced with a unique but persistent uuid for this machine.
The value that is first generated will be stored in /var/lib/yum/uuid and
reused until this file is deleted.
-
$YUM0-$YUM9
These will be replaced with the value of the shell environment variable of
the same name. If the shell environment variable does not exist then the
configuration file variable will not be replaced.
As of 3.2.28, any file in /etc/yum/vars is turned into a variable named after the filename (or overrides any of the above variables).
Note that no warnings/errors are given if the files are unreadable, so creating files that only root can read may be confusing for users.
Also note that only the first line will be read and all new line characters are removed, as a convenience. However, no other checking is performed on the data. This means it is possible to have bad character data in any value.
FILES
/etc/yum.conf /etc/yum.repos.d/ /etc/yum/pluginconf.d/ /etc/yum/protected.d /etc/yum/vars
SEE ALSO
yum(8)
Index
- NAME
- DESCRIPTION
- PARAMETERS
- [main] OPTIONS
- [repository] OPTIONS
- URL INCLUDE SYNTAX
- GLOB: FOR LIST OPTIONS
- VARIABLES
- FILES
- SEE ALSO
This document was created by man2html, using the manual pages.
Time: 05:34:01 GMT, December 24, 2015


- All Known Subinterfaces:
ParaObject
- All Known Implementing Classes:
Address
,App
,Linker
,Sysprop
,Tag
,Translation
,User
,Vote
,Webhook
public interface Linkable
Applied to all
ParaObject
s by default. Allows an object to be linked to another object.
A link can be: 1-1, 1-* or *-*. One-to-one and one-to-many links are implemented using the parentid
field.
Many-to-many links are implemented using Linker
objects.- Author:
- Alex Bogdanovski<EMAIL_ADDRESS>- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioncountChildren
(String type) Count the total number of child objects for this object.countLinks
(String type2) Count the total number of links between this object and another type of object.void
deleteChildren
(String type) Deletes all child objects permanently.

List
findChildren
(String type, String query, Pager... pager) Search through all child objects.

List
findLinkedObjects
(String type, String field, String query, Pager... pager) Similar tofindChildren(java.lang.String, java.lang.String, com.erudika.para.core.utils.Pager...)
but for many-to-many relationships.

List
getChildren
(String type, Pager... pager) Returns all child objects linked to this object.

List
getChildren
(String type, String field, String term, Pager... pager) Returns all child objects linked to this object.

List
getLinkedObjects
(String type, Pager... pager) Similar togetChildren(java.lang.String, com.erudika.para.core.utils.Pager...)
but for many-to-many relationships.Returns all links between this type object and another type of object.boolean
isLinked
(ParaObject toObj) Checks if a given object is linked to this one.boolean
Checks if this object is linked to another.Links an object to this one in a many-to-many relationship.void
Unlinks an object from this one.void
Unlinks all objects that are linked to this one.
-
Method Details
-
countLinks
Count the total number of links between this object and another type of object.- Parameters:
type2
- the other type of object- Returns:
- the number of links
-
getLinks
Returns all links between this type object and another type of object.- Parameters:
type2
- the other type of objectpager
- aPager
- Returns:
- a list of
Linker
objects in a many-to-many relationship with this object.
-
getLinkedObjects
Similar togetChildren(java.lang.String, com.erudika.para.core.utils.Pager...)
but for many-to-many relationships.- Type Parameters:
P
- type of linked objects- Parameters:
type
- type of linked objects to look forpager
- aPager
- Returns:
- a list of linked objects
-
findLinkedObjects

 List
 findLinkedObjects(String type, String field, String query, Pager... pager) Similar tofindChildren(java.lang.String, java.lang.String, com.erudika.para.core.utils.Pager...)
but for many-to-many relationships. Searches through all linked objects connected to this via aLinker
object.- Type Parameters:
P
- type of linked objects- Parameters:
type
- type of linked objects to look forfield
- the name of the field to target (within a nested field "nstd")query
- a query stringpager
- aPager
- Returns:
- a list of linked objects matching the search query
-
isLinked
Checks if this object is linked to another.- Parameters:
type2
- the other typeid2
- the other id- Returns:
- true if the two are linked
-
isLinked
Checks if a given object is linked to this one.- Parameters:
toObj
- the other object- Returns:
- true if linked
-
link
Links an object to this one in a many-to-many relationship. Only a link is created. Objects are left untouched. The type of the second object is automatically determined on read.- Parameters:
id2
- the other id- Returns:
- the id of the
Linker
object that is created
-
unlink
Unlinks an object from this one. Only a link is deleted. Objects are left untouched.- Parameters:
type
- the other typeid2
- the other id
-
unlinkAll
void unlinkAll()Unlinks all objects that are linked to this one. Deletes allLinker
objects. Only the links are deleted. Objects are left untouched. -
countChildren
Count the total number of child objects for this object.- Parameters:
type
- the other type of object- Returns:
- the number of links
-
getChildren
Returns all child objects linked to this object.- Type Parameters:
P
- the type of children- Parameters:
type
- the type of children to look forpager
- aPager
- Returns:
- a list of
ParaObject
in a one-to-many relationship with this object
-
findChildren
Search through all child objects. Only searches child objects directly connected to this parent via theparentid
field.- Type Parameters:
P
- the type of children- Parameters:
type
- the type of children to look forquery
- a query stringpager
- aPager
- Returns:
- a list of
ParaObject
in a one-to-many relationship with this object
-
getChildren
Returns all child objects linked to this object.- Type Parameters:
P
- the type of children- Parameters:
type
- the type of children to look forfield
- the field name to use as filterterm
- the field value to use as filterpager
- aPager
- Returns:
- a list of
ParaObject
in a one-to-many relationship with this object
-
deleteChildren
Deletes all child objects permanently.- Parameters:
type
- the children's type.
-


Connection: No Connection
Hostname: No Hostname
Public IPv4: No Public IPv4
Public IPv6: No Public IPv6
Local IPv4: No Local IPv4
Local IPv6: No Local IPv6
MAC Address: No MAC Address


DocParser Class
The doc parser accepts a map of files to file content.
Once parse()
is called, various properties will be populated
with the parsers data (aggregated in the 'data'
property).
Constructor
DocParser
-
o
Parameters:
-
o
Objectthe config object
Item Index
Methods
Properties
Methods
_resolveFor
-
value
Takes a non-namespaced classname and resolves it to a namespace (to support @for
)
Parameters:
-
value
StringThe classname to resolve
Returns:
The resolved namespace + classname
extract
-
filemap
-
dirmap
Accepts a map of filenames to file content. Returns a map of filenames to an array of API comment block text. This expects the comment to start with / * on its own line, and end with / on its own line. Override this function to provide an alternative comment parser.
Parameters:
-
filemap
ObjectA map of filenames to file content
-
dirmap
ArrayA map of file names to directory name
Returns:
A map of filenames to an array of extracted comment text.
handlecomment
-
comment
-
file
-
line
Transforms a JavaDoc style comment block (less the start and end of it) into a list of tag/text pairs. The leading space and '*' are removed, but the remaining whitespace is preserved so that the output should be friendly for both markdown and html parsers.
Parameters:
-
comment
StringThe comment to parse
-
file
StringThe file it was parsed from
-
line
StringThe line number it was found on
implodeString
-
str
Flatten a string, remove all line breaks and replace them with a token
Parameters:
-
str
StringThe string to operate on
Returns:
The modified string
implodeString
-
str
Un-flatten a string, replace tokens injected with implodeString
Parameters:
-
str
StringThe string to operate on
Returns:
The modified string
parse
-
filemap
-
dirmap
Extracts and transforms the filemap provided to constructor
Parameters:
-
filemap
ArrayA map of filenames to file content
-
dirmap
ArrayA map of file names to directory name
Returns:
this parser instance. The total results are available in parser.data.
processblock
-
an
Processes all the tags in a single comment block
Parameters:
-
an
Arrayarray of the tag/text pairs
stringlog
-
data
Parses the JSON data and formats it into a nice log string for
filename and line number: /file/name.js:123
Parameters:
-
data
ObjectThe data block from the parser
Returns:
The formatted string.
transform
-
commentmap
Transforms a map of filenames to arrays of comment blocks into a JSON structure that represents the entire processed API doc info and relationships between elements for the entire project.
Parameters:
-
commentmap
ObjectThe hash of files and parsed comment blocks
Returns:
The transformed data for the project
unindent
-
content
Normalizes the initial indentation of the given content so that the first line is unindented, and all other lines are unindented to the same degree as the first line. So if the first line has four spaces at the beginning, then all lines will be unindented four spaces. Ported from Selleck
Parameters:
-
content
StringText to unindent.
Returns:
Unindented text.
Properties
CORRECTIONS
Object
final
Common errors will get scrubbed instead of being ignored.
DIGESTERS
Object
final
A map of the default tag processors, keyed by the tag name. Multiple tags can use the same digester by supplying the string name that points to the implementation rather than a function.
TAGLIST
Array
final
A list of known tags. This populates a member variable during initialization, and will be updated if additional digesters are added.
Attributes
digesters
Digesters process the tag/text pairs found in a comment block. They are looked up by tag name. The digester gets the tagname, the value, the target object to apply values to, and the full block that is being processed. Digesters can be declared as strings instead of a function -- in that case, the program will try to look up the key listed and use the function there instead (it is an alias). Digesters can return a host object in the case the tag defines a new key block type (modules/classes/methods/events/properties)


Cook yourself well with this comforting chicken dish
Daily Dish: Chef Anna Haugh’s antidote to tiredness is this crispy chicken thigh dinner
I first made this dish at home when I was recuperating after a hard week in the kitchen. I’m a big fan of chicken thighs. I think they are 10 times tastier than chicken breast.
Spinach gives a real nutrient boost here. You can use fresh or frozen, but make sure to add the pinch of sugar, it can bring out the flavour in green vegetables. You can also skip the puree altogether and just serve it with spinach leaves.
This is a great dish for when you’re tired or unwell, as it’s comforting and full of iron, calcium, magnesium and vitamin A, B6 and C.
I love that goat’s cheese not only gives a great flavour but is also easier to digest than cow’s cheese for lots of people.
What you’ll need:
1 tbsp cooking oil
4 chicken thighs, skin on
½ clove of garlic
Knob of butter
200g spinach
Salt and pepper
Pinch of sugar
80g goat’s cheese
Garnish with pickled onion slices
How to make it:
1. Turn a frying pan on to medium heat and pour the cooking oil in.
2. Season your chicken thighs with salt and pepper and place in the pan. Cook on a medium heat until the skin becomes crisp, this will take around 10 minutes.
3. While the chicken cooks, slice the garlic as thinly as you can put in a medium pot with the butter and salt and cook for two minutes. Add your spinach and sugar, stir when the spinach wilts down. This is super quick. Then pop into a blender and blitz.
4. The chicken should almost be done. Check it’s crisp and of it is, flip it onto the other side while you get your plates and cutlery ready. Continue cooking it until the chicken is cooked through, and then you’re ready to serve.
5. Serve the spinach purée on the bottom of your plate or bowl, and break your goats cheese into chunks. Place the chicken thighs on top and garnish with sliced pickled onions and some extra spinach leaves.
Dubliner Anna Haugh is chef-proprietor at London restaurant Myrtle, myrtlerestaurant.com


 Used in conjunction with this class's findConversation[x]ForUser() methods.
| array | $userIds | |
| string | $searchString |
|
protected |
Update the read date record for a conversation
| integer | $conversationId | |
| integer | $userId | |
| integer | $newReadDate | |
| Zend_Db_Adapter_Abstract | $db |
| addConversationReplyToRecipients | ( | array | $conversation, |
| array | $replyUser = null , |
||
| array | $messageInfo = null |
||
| ) |
Add the details of a new conversation reply to conversation recipients.
| array | $conversation | Conversation info |
| array | null | $replyUser | Information about the user who replied |
| array | null | $messageInfo | Array containing 'message', which is the text the message being sent |
| allowedAdditionalConversationRecipients | ( | array | $conversation, |
| array | $viewingUser = null |
||
| ) |
Calculates the allowed number of additional conversation receiptions the viewing user can add to the given conversation.
| array | $conversation | Conversation; if empty array, assumes new conversation |
| array | null | $viewingUser |
| canEditConversation | ( | array | $conversation, |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can edit the conversation. Does not check conversation viewing permissions.
| array | $conversation | |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canEditMessage | ( | array | $message, |
| array | $conversation, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can edit the specified message within a conversation
| array | $message | |
| array | $conversation | |
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| canInviteUsersToConversation | ( | array | $conversation, |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can invite users the conversation. Does not check conversation viewing permissions.
| array | $conversation | |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canManageReportedMessage | ( | array | $message, |
| array | $conversation, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Check permission to view a reported conversation
| array | $message | |
| array | $conversation | |
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| canReplyToConversation | ( | array | $conversation, |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can reply to the conversation. Does not check conversation viewing permissions.
| array | $conversation | |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canReportMessage | ( | array | $message, |
| array | $conversation, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Checks that the viewing user may report the specified conversation message
| array | $message | |
| array | $conversation | |
| string | ||
| boolean | $errorPhraseKey | |
| array | null | $viewingUser |
| canStartConversations | ( | & | $errorPhraseKey = '' , |
| array | $viewingUser = null |
||
| ) |
Determines if the viewing user can start conversations in general.
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| canStartConversationWithUser | ( | array | $user, |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the viewing user can start a conversation with the given user. Does not check standard conversation permissions.
| array | $user | |
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| canUploadAndManageAttachment | ( | array | $conversation = array() , |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if a new attachment can be posted in the specified conversation, with the given permissions. If no permissions are specified, permissions are retrieved from the currently visiting user. This does not check viewing permissions.
| array | $conversation | Info about the conversation posting in |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canViewAttachmentOnConversation | ( | array | $conversation, |
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can view attachments in the specified conversation
| array | $conversation | |
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| canViewAttachmentOnConversationMessage | ( | array | $message, |
| array | $conversation, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the specified user can view an attachment to the specified message
| array | $message | |
| array | $conversation | |
| string | $errorPhraseKey | |
| array | null | $viewingUser |
| countConversationsForUser | ( | $userId, | |
| array | $conditions = array() |
||
| ) |
Gets the total number of conversations that a user has.
| integer | $userId | |
| array | $conditions | Conditions for the WHERE clause |
| array | $fetchConditions | Only used in tandem with $conditions at this point |
| countMessagesBeforeDateInConversation | ( | $conversationId, | |
| $messageDate | |||
| ) |
Count the number of messages before a given date in a conversation.
| integer | $conversationId | |
| integer | $messageDate |
| countUnreadConversationsForUser | ( | $userId | ) |
Gets the count of unread conversations for the specified user.
| integer | $userId |
| deleteConversationForUser | ( | $conversationId, | |
| $userId, | |||
| $deleteType | |||
| ) |
Delets a conversation record for a specific user. If all users have deleted the conversation, it will be completely removed.
| integer | $conversationId | |
| integer | $userId | |
| string | $deleteType | Type of deletion (either delete, or delete_ignore) |
| deleteConversationsStartedByUser | ( | $userId | ) |
| integer | $userId |
| findConversationRecipientsForUser | ( | $userId, | |
| $searchString | |||
| ) |
Return a list of users that have received conversations that the specified user has receved, where the recieving user matches the given username search string
| integer | $userId | |
| string | $searchString |
| findConversationRespondersForUser | ( | $userId, | |
| $searchString | |||
| ) |
Return a list of users that have posted in conversations that the specified user has receved, where the recieving user matches the given username search string
| integer | $userId | |
| string | $searchString |
| findConversationStartersForUser | ( | $userId, | |
| $searchString | |||
| ) |
Return a list of users that have started conversations that the specified user has receved, where the starting user matches the given username search string
| integer | $userId | |
| string | $searchString |
| getAndMergeAttachmentsIntoConversationMessages | ( | array | $messages | ) |
Gets the attachments that belong to the given messages, and merges them in with their parent message (in the attachments key). The attachments key will not be set if no attachments are found for the message.
| array | $messages |
| getAttachmentParams | ( | array | $conversation = array() , |
| array | $contentData = array() , |
||
| array | $viewingUser = null , |
||
$tempHash = null |
|||
| ) |
Gets the set of attachment params required to allow uploading.
| array | $conversation | |
| array | $contentData | Information about the content, for URL building |
| array | null | $viewingUser | |
| string | null | $tempHash |
| getConversationForUser | ( | $conversationId, | |
| $viewingUser, | |||
| array | $fetchOptions = array() |
||
| ) |
Gets the specified user conversation.
| integer | $conversationId | |
| integer | array | $viewingUser | Can be a user array, or a user ID (for B.C. purposes) |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationIdsInRange | ( | $start, | |
| $limit | |||
| ) |
Gets conversation IDs in the specified range. The IDs returned will be those immediately after the "start" value (not including the start), up to the specified limit.
| integer | $start | IDs greater than this will be returned |
| integer | $limit | Number of posts to return |
| getConversationMasterById | ( | $conversationId | ) |
Gets the specified conversation master record.
| integer | $conversationId |
| getConversationMessageById | ( | $messageId, | |
| array | $fetchOptions = array() |
||
| ) |
Gets the specified conversation message record.
| integer | $messageId | |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationMessages | ( | $conversationId, | |
| array | $fetchOptions = array() |
||
| ) |
Get messages within a given conversation.
| integer | $conversationId | |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationRecipient | ( | $conversationId, | |
| $userId, | |||
| array | $fetchOptions = array() |
||
| ) |
Gets info about a single recipient of a conversation.
| integer | $conversationId | |
| integer | $userId | |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationRecipients | ( | $conversationId, | |
| array | $fetchOptions = array() |
||
| ) |
Gets information about all recipients of a conversation.
| integer | $conversationId | |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationsForUser | ( | $userId, | |
| array | $conditions = array() , |
||
| array | $fetchOptions = array() |
||
| ) |
Get conversations that a user can see, ordered by the latest message first.
| integer | $userId | |
| array | $conditions | Conditions for the WHERE clause |
| array | $fetchOptions | Options for extra data to fetch |
| getConversationsForUserByIds | ( | $userId, | |
| array | $conversationIds | ||
| ) |
Get the specified conversations that a user can see, ordered by last message first.
| integer | $userId | |
| array | $conversationIds |
| getConversationsStartedByUser | ( | $userId | ) |
| integer | $userId |
| getLastPageNumbers | ( | $replyCount | ) |
Returns the last few page numbers of a conversation
| integer | $replyCount |
| getMaximumMessageDate | ( | array | $messages | ) |
Gets the maximum message date in a list of messages.
| array | $messages |
| getNewestConversationMessagesAfterDate | ( | $conversationId, | |
| $date, | |||
| array | $fetchOptions = array() |
||
| ) |
Finds the newest conversation messages after the specified date.
| integer | $conversationId | |
| integer | $date | |
| array | $fetchOptions |
| getNextMessageInConversation | ( | $conversationId, | |
| $messageDate | |||
| ) |
Gets the next message in a conversation, post after the specified date. This is useful for finding the first unread message, for example.
| integer | $conversationId | |
| integer | $messageDate | Finds first message posted after this |
| getQuoteForConversationMessage | ( | array | $message, |
$maxQuoteDepth = 0 |
|||
| ) |
Gets the quote text for the specified conversation message.
| array | $message | |
| integer | $maxQuoteDepth | Max depth of quotes (-1 for unlimited) |
| getQuoteTextForMessageFromHtml | ( | array | $message, |
| $messageHtml, | |||
$maxQuoteDepth = 0 |
|||
| ) |
Converts some HTML into quotable BB code
| array | $message | |
| string | $messageHtml | |
| integer | $maxQuoteDepth | Max depth of quotes (-1 for unlimited) |
| insertConversationAlert | ( | array | $conversation, |
| array | $alertUser, | ||
| $action, | |||
| array | $triggerUser = null , |
||
| array | $extraData = null , |
||
| array & | $messageInfo = null |
||
| ) |
Inserts an alert for this conversation.
| array | $conversation | |
| array | $alertUser | User to notify |
| string | $action | Action taken out (values: insert, reply, join) |
| array | null | $triggerUser | User triggering the alert; defaults to last user to reply |
| array | null | $extraData | |
| array | null | $messageInfo | Array containing the text of the message being sent (if applicable) as 'message' |
| insertConversationRecipient | ( | array | $conversation, |
| $userId, | |||
| array | $existingRecipient = null , |
||
$insertState = 'active' |
|||
| ) |
Insert a new conversation recipient record.
| array | $conversation | Conversation info |
| integer | $user | User to insert for |
| array | $existingRecipient | Information about the existing recipient record (if there is one) |
| string | $insertState | State to insert the conversation for with this user |
| markConversationAsRead | ( | $conversationId, | |
| $userId, | |||
| $newReadDate, | |||
$lastMessageDate = 0 , |
|||
$updateVisitor = true |
|||
| ) |
Marks the conversation as read to a certain point for a user.
| integer | $conversationId | |
| integer | $userId | |
| integer | $newReadDate | Timestamp to mark as read until |
| integer | $lastMessageDate | Date of last message; only marks whole conversation read if more than this date |
| boolean | $updateVisitor | If true, reduces the conversations_unread counter for the visitor; should be false for replies |
| markConversationAsUnread | ( | $conversationId, | |
| $userId | |||
| ) |
Marks the conversation as (completely) unread for a user.
| integer | $conversationId | |
| integer | $userId |
| prepareConversation | ( | array | $conversation | ) |
Prepare a conversation for display or further processing.
| array | $conversation |
| prepareConversationConditions | ( | array | $conditions, |
| array & | $fetchOptions | ||
| ) |
Prepares a set of conditions against which to select conversations.
| array | $conditions | List of conditions. –popupMode (boolean) constrains results to unread, or sent within timeframe specified by options->conversationPopupExpiryHours |
| array | $fetchOptions | The fetch options that have been provided. May be edited if criteria requires. |
| prepareConversations | ( | array | $conversations | ) |
Prepare a collection of conversations for display or further processing.
| array | $conversations |
| prepareMessage | ( | array | $message, |
| array | $conversation | ||
| ) |
Prepare a message for display or further processing.
| array | $message | |
| array | $conversation |
| prepareMessages | ( | array | $messages, |
| array | $conversation | ||
| ) |
Prepare a collection of messages (in the same conversation) for display or further processing.
| array | $messages | |
| array | $conversation |
| rebuildUnreadConversationCountForUser | ( | $userId | ) |
Recalculates the unread conversation count for the specified user.
| integer | $userId |


All Classes
| Class | Description |
|---|---|
| AnimatedToggleable |
Animation that is also a toggle.
|
| Animation |
Class representing an animation.
|
| BooleanComponent |
Component representing a boolean-valued setting.
|
| ClearTheme |
Theme corresponding to the appearance GameSense 2.0 and 2.1 had.
|
| ClickGUI |
Object representing the entire GUI.
|
| ClickGUI.LoopFunction |
Interface used by
ClickGUI.doComponentLoop(LoopFunction) . |
| CollapsibleContainer |
Container that can be closed and scrolled, so that its children can be hidden.
|
| ColorComponent |
Component representing a color-valued setting.
|
| ColorScheme |
Interface to provide a means for GUI methods to access color setting set by the user.
|
| ColorSetting |
Setting representing a color.
|
| Component |
Interface representing a drawable object in the GUI.
|
| ConfigList |
Object consisting of the configuration of all panels.
|
| Container |
Base class for components containing other components (i.e. containers).
|
| Container.LoopFunction |
Interface used by the loop.
|
| Context |
A class for the communication between a component and its parent.
|
| DefaultRenderer |
Standard TabGUI look.
|
| DescriptionRenderer |
Interface used to render descriptions.
|
| DraggableContainer |
Class for a
FixedComponent that is also a CollapsibleContainer (i.e. a Panel), that can be dragged by the user using the mouse. |
| EnumComponent |
Component representing an enumeration-valued setting.
|
| EnumSetting |
A setting representing an enumeration.
|
| FixedComponent | |
| FixedDescription |
Renders a description at a fixed position.
|
| FocusableComponent |
Base class for all components included in this library.
|
| GameSenseTheme |
Recreates the appearance of GameSense 2.2.0.
|
| HUDClickGUI |
ClickGUI that only renders HUD components when closed.
|
| HUDComponent |
Base class for HUD elements.
|
| HUDList |
Interface representing a list for
ListComponent |
| HUDPanel |
Panel holding an HUD component.
|
| HUDPanel.HUDRenderer |
Proxy for a
Renderer , doesn't display container, when GUI is off. |
| Interface |
Interface to abstract rendering and input methods.
|
| KeybindComponent |
Component representing a keybind.
|
| KeybindSetting |
Interface representing a keybind.
|
| ListComponent |
HUD component that consists of a list of strings.
|
| MouseDescription | |
| NumberComponent |
Component that represents a number-valued setting through a
Slider . |
| NumberSetting |
Setting representing an adjustable number.
|
| PanelConfig |
Interface representing a single panel configuration state.
|
| PanelManager |
Interface used by transient components to show and hide themselves.
|
| Renderer |
An Interface to standardize the appearance of different components.
|
| RendererBase |
Base class for constructing renderers.
|
| SettingsAnimation |
Implementation of
Animation using NumberSetting . |
| SettingsColorScheme | |
| SimpleToggleable |
Basic implementation of
Toggleable , where the boolean is a field. |
| Slider |
Base class for components that are sliders.
|
| TabGUI |
A
TabGUIContainer that is also a FixedComponent . |
| TabGUIComponent |
Interface representing a part of a TabGUI.
|
| TabGUIContainer |
Element of TabGUI.
|
| TabGUIItem |
Component representing leaf in TabGUI hierarchy.
|
| TabGUIRenderer |
An Interface to abstract the rendering of TabGUI containers.
|
| Theme |
Interface representing a GUI theme (i.e. skin).
|
| Toggleable |
Interface representing a boolean value that can be toggled.
|
| TransientComponent |
A button that displays a component when clicked.
|


Since it is prom season, I just wanted to share a few photos of my gown I wore to my senior prom. Fast forward six years, I am surprised I can still fit into my prom dress! I honestly do not remember where I bought my prom dress from — I just remember it was from an online couture. My prom dress is a size 2.
I love playing dress up, so I would take any possible opportunity to wear an elegant evening gown and be transformed into a princess. I was finally given that opportunity when I competed in a pageant this year. I immediately busted out my prom dress and went for a photoshoot, so these photos are actually taken this year — not when I was in high school. Also, I will share a post on my pageant experience next month so keep an eye out for that!
I just love the intricate design of this gown and how it perfectly accentuates my slender figure. There is something mysterious and appealing with the color red, so I always try to go for a bold and intimate red look for special occasions. Also, I love lace and train on a dress, and this gown has it all. So the moment I saw this gown, I knew it was the right gown for me. Anyone else can relate to this? When you see something you absolutely love and it just screams out your name, you just have to have it! To this day, I never regretted my investment.
My senior prom was held at the Children's Discovery Museum in Downtown San Jose. I had so much fun and created so many beautiful memories that night. I hope those who are going to prom this year oodles of fun and please stay safe!
I hope you enjoyed my blog. Have a MEGA AWESOME day! 😎