The Java API has exception classes that are mapped for every exception that can occur while using the Java API. If an exception occurs during execution, the JVM creates an object from the corresponding exception class and throws it to the code that generated the exception.  It is up to the programmer to handle how the exception object is handled. Programmers can control the generated exception object with appropriate use of the try, catch, and finally keywords. In the Java programming world, if an escalator suddenly stops in the middle, you can program to walk a human object in a catch block1.
Exception classes have a hierarchical structure. Exception classes are the top class of all exception classes. The following is an example of dealing with exceptions.
try { //Code that can cause exceptions A and B //A is hierarchically above B } catch (B e) { //e is the reference to the B exception object //Code executed when the exception B occurs } catch (A e) { //Code executed when the exception A occurs } finally { //The code that must be executed, with or without an exception }
Assume that method1 calls method2 and method2 calls method3, as shown below.
If there is an exception in method3 and there is a catch block that catches an exception in method3 body, the program continues without stopping.
If there is no catch block that catches the exception that occurred in method3 body, the exception that occurred in method3 is passed to method2 that invoked method3.
If method2 does not have a catch block catching exceptions passed in method3, this exception is passed to method1, which called method2.
When this exception is passed to the JVM that called the main method, the program is terminated.
Such termination is an abnormal termination.
| Exception | Example |
|---|---|
| ArithmeticException | int a = 12/0; |
| NullPointerException | Integer d = null; int val = d.intValue(); |
| NegativeArraySizeException | int arr = new int[-1]; |
| ArrayIndexOutOfBoundException |
int[] arr = new int[2]; arr[2] = 1; |
You can attach an exception class after the throws keyword in the method declaration section. If the code that calls this method does not have a code snippet that properly handles exceptions defined after throws, a compilation error will occur.
Suppose you have the following method.
public void someMethod() throws SomeException { //..Omitted. }
If you need to create a method with code that calls someMethod() on the method body, you have to choose one of the two below to avoid compilation errors.
public void myMethod() throws SomeException { someMethod(); //..Omitted. }
public void myMethod() { try { someMethod(); } catch (SomeException e) { //..Omitted. } }
1:
If SomeException is a RuntimeException or a subclass of RuntimeException2,
You can omit throws SomeException from the myMethod method declaration section.
2:
If SomeException is a RuntimeException or a subclass of RuntimeException,
Even if try ~ catch is omitted, there is no compilation error.
However, you can not catch exceptions that occur.
The following is an example of an unchecked exception.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
When you run the example, the ArithmeticException exception object reaches the JVM. The JVM will sequentially print the stack on which the exception occurred, as shown below. The important thing is that it is not a normal Termination. For reference, the main method is implemented to print "Normal Termination" if executed to the last line.
Exception in thread "main" java.lang.ArithmeticException: / by zero at net.java_school.exception.Test.method3(Test.java:14) at net.java_school.exception.Test.method2(Test.java:10) at net.java_school.exception.Test.method1(Test.java:6) at net.java_school.exception.Test.main(Test.java:19)
Modify the method3() to handle exceptions using try ~ catch.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { try { int a = 12 / 0; System.out.println(a); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
System.out.println(e.getMessage()); prints / by zero.
/ by zero Normal Termination
Retrieve the previous code and modify the method2() to handle the exception using try ~ catch.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { try { method3(); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
The exception object from method3() is passed to method2(). You can think of similar to returning a return value.
/ by zero Normal Termination
Revert the previous code and modify method1() to handle the exception.
package net.java_school.exception; public class Test { public static void method1() { try { method2(); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
The output is the same, but the exception object is passed to method1() and properly handles exceptions in method1(), thus avoiding abnormal termination.
/ by zero Normal Termination
Reverses the previous code and modifies the main method to handle the exception.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { try { method1(); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } System.out.println("Normal Termination"); } }
The output is the same, but the exception object is passed to the main method. The main method handles the exception object properly, so it exits normally.
/ by zero Normal Termination
The try block does not have to be used with a catch block. However, if there is no catch block, the exception object can not be caught. The following example removes the catch block. The try block can not be used alone, so I used a finally block instead.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { try { method1(); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
Since there is no catch block, the exception object is passed to the JVM and the program terminates abnormally. We can see in the output that the finally block is executed and the exception is passed to the JVM.
Executing a finally block Exception in thread "main" java.lang.ArithmeticException: / by zero at net.java_school.exception.Test.method3(Test.java:14) at net.java_school.exception.Test.method2(Test.java:10) at net.java_school.exception.Test.method1(Test.java:6) at net.java_school.exception.Test.main(Test.java:20)
Add a catch block to handle exceptions. Modify the catch block so that it catches any exception in the try block.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { try { method1(); } catch (Exception e) { System.out.println(e.getMessage()); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
Since an exception has occurred, the catch block is executed and the finally block is executed. Since the catch block has caught the exception object, the exception object is no longer passed anywhere.
/ by zero Executing a finally block Normal Termination
The catch block can be overwritten as if ~ else if ~ else if .... However, you should pay attention to the hierarchical relationship of the exception class when using it in this way. When an exception occurs in a try block, the catch block tries to catch the exception in order from top to bottom. If the preceding exception class is hierarchically above the exception class that follows, then there is no reason for the code to go down. So the following code causes a compile error.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { try { method1(); } catch (Exception e) { System.out.println(e.getMessage()); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
You can compile by changing the order of the catch block as shown below.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { int a = 12 / 0; System.out.println(a); } public static void main(String[] args) { try { method1(); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } catch (Exception e) { System.out.println(e.getMessage()); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
When you run the program, a catch (ArithmeticException e) {..} block is executed and e.getMessage() of this block is printed. The finally block is then executed and the last line of the main is executed.
/ by zero Executing a finally block Normal Termination
Modify the same example to the checked exception example. You will get a compile error in the highlighted section. The compilation error message is Unhandled exception type ClassNotFoundException.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
Class.forName ("string"); is not a new Java grammar. There is a java.lang.Class in the Java API, and this class has a forName() static method. The forName() method takes a string as an argument, which is the full name of the Java class (FQCN). The forName() method causes the class loader to load the class corresponding to the argument. If the class loader does not find the class corresponding to the argument, the JVM creates a ClassNotFoundException exception object and throws it to the Class.forName ("string") line. In the example, the class corresponding to "java.lang.Boolean" passed as argument to forName() belongs to the Java API, so the class loader looks for this class without the cp or classpath option. The purpose of this class in this example is not important. The important thing is the following. There is a throws ClassNotFoundException in the class declaration of the forName() method. Because ClassNotFoundException is a checked exception that does not inherit RuntimeException, the method that calls forName() must implement code that handles this exception. Let's modify the code using the code assist feature in Eclipse. If you put your cursor in Class.forName(), Eclipse will give you a solution. If you click on the second method, the code changes as below and the compile error disappears.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() { try { Class.forName("java.lang.Boolean"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
Execution normally ends without any exception. This is because a class called java.lang.Boolean exists in the Java API.
Normal Termination
Reverses the previous code and handles the exception in the first way Eclipse suggests. Then a compilation error occurs on method3(); line in method2().
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
The compilation error is Unhandled exception type ClassNotFoundException. A method that calls method3() must handle a ClassNotFoundException because there is a throws ClassNotFoundException in method3() method declaration. Place the cursor where the compilation error occurs and click on the second of the solutions Eclipse suggests. Then the source is changed as below and the compilation error disappears.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() { try { method3(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
Revert the previous code and this time click on the first method that Eclipse suggests. Then, the source is changed as below, and a compilation error occurs on method2(); line in method1() method.
package net.java_school.exception; public class Test { public static void method1() { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
Place the cursor where the compilation error occurs and click on the second of the solutions Eclipse suggests. The code changes as follows.
package net.java_school.exception; public class Test { public static void method1() { try { method2(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
You can see that it terminates normally without any exception.
Normal Termination
After reverting the previous code, place the cursor on the method2(); line in method1() and click on the first method Eclipse suggests. A compilation error occurs in the main method.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) { method1(); System.out.println("Normal Termination"); } }
In the main method, place the cursor where the compilation error occurs and click the first method that Eclipse suggests. The source is changed as follows.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean"); } public static void main(String[] args) throws ClassNotFoundException { method1(); System.out.println("Normal Termination"); } }
If you execute it, you can see that it terminates normally without any exception.
Normal Termination
Modify the code so that the exception occurs as follows: The class java.lang.Boolean2 does not exist in the Java API.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean2"); } public static void main(String[] args) throws ClassNotFoundException { method1(); System.out.println("Normal Termination"); } }
When executed, the exception object reaches the main method and does not catch an exception in the main method, so the exception object finally reaches the JVM. As a result, the program ends abnormally.
Exception in thread "main" java.lang.ClassNotFoundException: java.lang.Boolean2 at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at net.java_school.exception.Test.method3(Test.java:13) at net.java_school.exception.Test.method2(Test.java:10) at net.java_school.exception.Test.method1(Test.java:6) at net.java_school.exception.Test.main(Test.java:18)
Modify the code to catch exceptions in the main method.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean2"); } public static void main(String[] args) { try { method1(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Normal Termination"); } }
The e.printStackTrace(); method will print to the console as follows:
java.lang.ClassNotFoundException: java.lang.Boolean2 at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at net.java_school.exception.Test.method3(Test.java:14) at net.java_school.exception.Test.method2(Test.java:10) at net.java_school.exception.Test.method1(Test.java:6) at net.java_school.exception.Test.main(Test.java:19) Normal Termination
This is the same as the output message when the exception object reaches the JVM, but it is not an abnormal termination.
If you remove the catch block from the main method, you will get a compile error. ClassNotFoundException is a checked exception and if you do not control the exception at the caller, you will get a compilation error.
A checked exception object can not escape from a method that does not have a throws checked exception class declared in the class declaration.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean2"); } public static void main(String[] args) { try { method1(); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
Put the catch block back into your code to avoid compilation errors.
package net.java_school.exception; public class Test { public static void method1() throws ClassNotFoundException { method2(); } public static void method2() throws ClassNotFoundException { method3(); } public static void method3() throws ClassNotFoundException { Class.forName("java.lang.Boolean2"); } public static void main(String[] args) { try { method1(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { System.out.println("Executing a finally block"); } System.out.println("Normal Termination"); } }
Because there is no java.lang.Boolean2 class, a ClassNotFoundException exception occurs, e.printStackTrace(); is executed in the catch block, the finally block is executed, and the last line of the main method is executed.
java.lang.ClassNotFoundException: java.lang.Boolean2 at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at net.java_school.exception.Test.method3(Test.java:14) at net.java_school.exception.Test.method2(Test.java:10) at net.java_school.exception.Test.method1(Test.java:6) at net.java_school.exception.Test.main(Test.java:19) Executing a finally block Normal Termination
You will often see this type of message printed by e.printStackTrace(); Most errors can be solved by guessing the basic Java syntax. If you can not solve it, then Googleing is the right answer. The ClassNotFoundException object is created when the class loader can not find the class.
When an exception occurs, the JVM generates an exception object from the exception class of the Java API and throws the exception to the generated code. However, the exception class can be created by the programmer as needed. This is called a "custom exception". The following is an exception class to be used in an exceptional situation where the balance in the bank program is insufficient.3
package net.java_school.bank; public class InsufficientBalanceException extends Exception { public InsufficientBalanceException() { super(); } public InsufficientBalanceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } public InsufficientBalanceException(String message, Throwable cause) { super(message, cause); } public InsufficientBalanceException(String message) { super(message); } public InsufficientBalanceException(Throwable cause) { super(cause); } }
The JVM does not create a user exception object. Therefore, you must explicitly create a custom exception object in code. Here is the code to create an exception object from a custom exception class:
throw new InsufficientBalanceException("There is not enough balance.");
Write a class that executes as shown below.
C:\ Command PromptC:\java\Exception\bin>java net.java_school.bank.Test $ 1 Deposit: java net.java_school.bank.Test d 1 $ 1 Withdrawal: java net.java_school.bank.Test w 1 C:\java\Exception\bin>java net.java_school.bank.Test d 3 You can not deposit more than the maximum balance. The balance is $ 1. C:\>java net.java_school.bank.Test w 2 There is not enough balance. The balance is $ 1.
Complete the main method.
package net.java_school.bank; public class Test { public static void main(String[] args) { int MAX_BALANCE = 3; //Maximum balance amount int balance = 1; //Initial balance int amount = 0; //Deposit amount or amount of withdrawal if (args.length < 2) { System.out.println("Deposit $ 1: java net.java_school.bank.Test d 1"); System.out.println("Withdrawal $ 1: java net.java_school.bank.Test w 1"); return; } //TODO }
Create and apply the appropriate custom exception class in the code above.
Comments


All Movies
No available movies at this time!
#
Title
Poster
Description
Edit
Delete
Previous
...
...
Next


Derek Eder
@derekeder
RT @GovInTrenches: Getting a lesson in @GoogleFT from @chadwpry and @derek_eder - This is how I'll be getting my #socialsafetynet data o ...
5/10/2012, 9:24:16 PM
Favs: 0
Retweets: 0
link← @derekeder Twitter archive
Derek Eder
@derekeder
RT @GovInTrenches: Getting a lesson in @GoogleFT from @chadwpry and @derek_eder - This is how I'll be getting my #socialsafetynet data o ...
5/10/2012, 9:24:16 PM
Favs: 0
Retweets: 0
link


| HYTOOL Function Reference |
Sample a signal at regular intervals.
[xs,ys] = hysampling( x, y, nval [,idlog [,option]] ) x,y = vectors containing the input signal nval = number of values of the output signal xs,ys = sampled signal OPTIONAL ARGUMENT idlog : allows to select the type of spacing of the samples idlog = 'linear' = Default value = linear scale idlog = 'log' = logarithmic scale option : allows to define if the points must be interpolated option = 'sample' = Default value = only points from the data set are taken option = 'interp' = creates points by interpolation
The hytool function hysampling samples a data set x,y at regular intervals and displays the sampled data set as xs,ys. The input signal is interpolated at a given number of points (nval) that are regularly spaced either in linear (idlog=’linear’) or in logartihmic (idlog=’log’) scale. By option 'sample' (Default value) the data set is simply sampled, i.e. points from the data set are taken, sampled points are created by interpolation by the option = 'interp' in contrast.
[ts,hs] = hysampling(t,s,10) [ts,hs] = hysampling(t,s,30,'log') [ts,hs] = hysampling(t,s,10,'linear','interp') [ts,qs] = hysampling(tf,qf,30,'log','interp')
hyfilter, hyplot, hyclean, hyselect Published output in the Help browser showdemo hysampling
| Hytool |
© 1998-2017 Philppe Renard and Co. Terms of Use Acknowledgments


Empty While Statement finds all instances where a while statement does nothing. If it is a timing loop, then you should use Thread.sleep() for it; if it's a while loop that does a lot in the exit expression, rewrite it to make it clearer.
This rule is deprecated, use {rule:squid:S00108} instead.


Spicy's Secret Sandwich Spot
Create Your Own Sandwich
Sandwich Leaderboard
View Info
View Info
View Info
Weekly Feature
View Info
View Info
View Info


Please complete the following exercises on this page. When complete post this page to your server. Make a link in your WDV221 homework page for this assignment.
Include a comment in each script with the exercise number and a description of what the script is supposed to do.
Using Blackboard submit this Assignment.
Please complete the following exercises using Javascript loops as indicated. Please place your code on this page. Use runtime scripts unless told otherwise.
1. Create a WHILE loop that will print out the numbers 0 to 4 each on a seperate line.
2. Create a FOR loop that will print out the numbers 4 to 0 each on a seperate line.
3. Create a loop that will print 1 to 5 each in its own paragraph element.
4. Create a loop that will print out the following numbers (5,10,15,20,25...) until one is greater than 40.
5. Create a loop that will print out 6 of the following messages (Option 1, Option 2, Option 3, etc. ) as options within the drop down menu below.


PART I. OPERATION
Law Journals and Reviews
Intextication: Txting Whl Drvng. Does the Punishment Fit the Crime? 32 UH L. Rev. 359 (2010).
§291-1 [NEW] Definitions. As used in this part:
"Intoxicating liquor" means the same as the term is defined in section 281-1.
"Public street, road, or highway" includes the entire width, including berm or shoulder, of every road, alley, street, way, lane, trail, highway, bikeway, bridge, when any part thereof is open for use by the public, including any bicycle lane, bicycle path, bikeway, controlled-access highway, laned roadway, roadway, or street, as defined in section 291C-1, and any public highway, as defined in section 264-1.
"Scenic lookout" includes any area within or adjoining a public street, road, or highway which is intended for use by motorists as a stopping or parking area attendant to the enjoyment of the surrounding scenery or a view. [L 1986, c 171, §2; am L 2002, c 16, §14]


public interface RnsReader
| Modifier and Type | Method and Description |
|---|---|
java.util.Set<ConnectionReader> |
getConnections()
Gets readers for all the connections available in the RNS system.
|
java.util.Set<GateReader> |
getGates(GateType type)
Gets readers for all the gates available in the RNS system with the given type
|
java.util.Set<ParkingAreaReader> |
getParkingAreas(java.util.Set<java.lang.String> services)
Gets readers for all the parking areas available in the RNS system having the specified services
|
PlaceReader |
getPlace(java.lang.String id)
Gets a reader for a single place, available in the RNS system, given its id.
|
java.util.Set<PlaceReader> |
getPlaces(java.lang.String idPrefix)
Gets readers for all the places available in the RNS system whose ids have the specified prefix.
|
java.util.Set<RoadSegmentReader> |
getRoadSegments(java.lang.String roadName)
Gets readers for all the road segments available in the RNS system belonging to the road with the given name
|
VehicleReader |
getVehicle(java.lang.String id)
Gets a reader for a single vehicle, available in the RNS system, given its plate id.
|
java.util.Set<VehicleReader> |
getVehicles(java.util.Calendar since,
java.util.Set<VehicleType> types,
VehicleState state)
Gets readers for a selection of all the vehicles that are in the RNS system.
|
java.util.Set<PlaceReader> getPlaces(java.lang.String idPrefix)
idPrefix
- the id prefix for selecting places or null to get places with all ids.PlaceReader getPlace(java.lang.String id)
id
- the unique id of the place to get.java.util.Set<GateReader> getGates(GateType type)
type
- the required gate type or null to get readers for all gatesjava.util.Set<RoadSegmentReader> getRoadSegments(java.lang.String roadName)
roadName
- the name of the road, or null to get readers for all the road segments of all roadsjava.util.Set<ParkingAreaReader> getParkingAreas(java.util.Set<java.lang.String> services)
services
- the set of services, or null to get all parking areasjava.util.Set<ConnectionReader> getConnections()
java.util.Set<VehicleReader> getVehicles(java.util.Calendar since, java.util.Set<VehicleType> types, VehicleState state)
since
- the entrance date/time since when vehicles have to be selected or null to select vehicles with any entrance date/time.types
- the set of types of vehicles that have to be selected or null to select vehicles of any type.state
- the state of vehicles to be selected or null to select vehicles in any state.VehicleReader getVehicle(java.lang.String id)
id
- the plate id of the vehicle to get.


CurrencyQuery
class CurrencyQuery extends CurrencyQuery
Skeleton subclass for performing query and update operations on the 'currency' table.
You should add additional methods to this class to meet the application requirements. This class will only be generated as long as it does not already exist in the output directory.
Methods
Initializes internal state of \Thelia\Model\Base\CurrencyQuery object.
Returns a new ChildCurrencyQuery object.
Find object by primary key.
Find objects by primary key
$objs = $c->findPks(array(12, 56, 832), $con);
Filter the query by a list of primary keys
Filter the query on the id column
Filter the query on the code column
Filter the query on the symbol column
Filter the query on the format column
Filter the query on the rate column
Filter the query on the visible column
Filter the query on the position column
Filter the query on the by_default column
Filter the query on the created_at column
Filter the query on the updated_at column
Filter the query by a related \Thelia\Model\Order object
Adds a JOIN clause to the query using the Order relation
Use the Order relation Order object
Filter the query by a related \Thelia\Model\Cart object
Adds a JOIN clause to the query using the Cart relation
Use the Cart relation Cart object
Filter the query by a related \Thelia\Model\ProductPrice object
Adds a JOIN clause to the query using the ProductPrice relation
Use the ProductPrice relation ProductPrice object
Filter the query by a related \Thelia\Model\SaleOffsetCurrency object
Adds a JOIN clause to the query using the SaleOffsetCurrency relation
Use the SaleOffsetCurrency relation SaleOffsetCurrency object
Filter the query by a related \Thelia\Model\CurrencyI18n object
Adds a JOIN clause to the query using the CurrencyI18n relation
Use the CurrencyI18n relation CurrencyI18n object
Deletes all rows from the currency table.
Performs a DELETE on the database, given a ChildCurrency or Criteria object OR a primary key value.
Adds a JOIN clause to the query using the i18n relation
Adds a JOIN clause to the query and hydrates the related I18n object.
Use the I18n relation query object
Order by the symbol column
Order by the format column
Order by the visible column
Order by the position column
Order by the by_default column
Order by the created_at column
Order by the updated_at column
Adds a LEFT JOIN clause to the query using the Order relation
Adds a RIGHT JOIN clause to the query using the Order relation
Adds a INNER JOIN clause to the query using the Order relation
Adds a LEFT JOIN clause to the query using the Cart relation
Adds a RIGHT JOIN clause to the query using the Cart relation
Adds a INNER JOIN clause to the query using the Cart relation
Adds a LEFT JOIN clause to the query using the ProductPrice relation
Adds a RIGHT JOIN clause to the query using the ProductPrice relation
Adds a INNER JOIN clause to the query using the ProductPrice relation
Adds a LEFT JOIN clause to the query using the SaleOffsetCurrency relation
Adds a RIGHT JOIN clause to the query using the SaleOffsetCurrency relation
Adds a INNER JOIN clause to the query using the SaleOffsetCurrency relation
Adds a LEFT JOIN clause to the query using the CurrencyI18n relation
Adds a RIGHT JOIN clause to the query using the CurrencyI18n relation
Adds a INNER JOIN clause to the query using the CurrencyI18n relation
Return the first ChildCurrency matching the query
Return the first ChildCurrency matching the query, or a new ChildCurrency object populated from the query conditions when no match is found
Return the first ChildCurrency filtered by the id column
Return the first ChildCurrency filtered by the code column
Return the first ChildCurrency filtered by the symbol column
Return the first ChildCurrency filtered by the format column
Return the first ChildCurrency filtered by the rate column
Return the first ChildCurrency filtered by the visible column
Return the first ChildCurrency filtered by the position column
Return the first ChildCurrency filtered by the by_default column
Return the first ChildCurrency filtered by the created_at column
Return the first ChildCurrency filtered by the updated_at column
Return ChildCurrency objects filtered by the code column
Return ChildCurrency objects filtered by the symbol column
Return ChildCurrency objects filtered by the format column
Return ChildCurrency objects filtered by the rate column
Return ChildCurrency objects filtered by the visible column
Return ChildCurrency objects filtered by the position column
Return ChildCurrency objects filtered by the by_default column
Return ChildCurrency objects filtered by the created_at column
Return ChildCurrency objects filtered by the updated_at column
Details
in
CurrencyQuery at line 107
__construct(
string $dbName = 'thelia',
string $modelName = '\\Thelia\\Model\\Currency',
string $modelAlias = null)
Initializes internal state of \Thelia\Model\Base\CurrencyQuery object.
in
CurrencyQuery at line 120
static
CurrencyQuery
create(
string $modelAlias = null,
Criteria $criteria = null)
Returns a new ChildCurrencyQuery object.
in
CurrencyQuery at line 150
Currency|array|mixed
findPk(
mixed $key,
ConnectionInterface $con = null)
Find object by primary key.
Propel uses the instance pool to skip the database if the object exists. Go fast if the query is untouched.
$obj = $c->findPk(12, $con);
in
CurrencyQuery at line 232
ObjectCollection|array|mixed
findPks(
array $keys,
ConnectionInterface $con = null)
Find objects by primary key
$objs = $c->findPks(array(12, 56, 832), $con);
in
CurrencyQuery at line 253
CurrencyQuery
filterByPrimaryKey(
mixed $key)
Filter the query by primary key
in
CurrencyQuery at line 266
CurrencyQuery
filterByPrimaryKeys(
array $keys)
Filter the query by a list of primary keys
in
CurrencyQuery at line 290
CurrencyQuery
filterById(
mixed $id = null,
string $comparison = null)
Filter the query on the id column
Example usage:
$query->filterById(1234); // WHERE id = 1234
$query->filterById(array(12, 34)); // WHERE id IN (12, 34)
$query->filterById(array('min' => 12)); // WHERE id > 12
in
CurrencyQuery at line 328
CurrencyQuery
filterByCode(
string $code = null,
string $comparison = null)
Filter the query on the code column
Example usage:
$query->filterByCode('fooValue'); // WHERE code = 'fooValue'
$query->filterByCode('%fooValue%'); // WHERE code LIKE '%fooValue%'
in
CurrencyQuery at line 357
CurrencyQuery
filterBySymbol(
string $symbol = null,
string $comparison = null)
Filter the query on the symbol column
Example usage:
$query->filterBySymbol('fooValue'); // WHERE symbol = 'fooValue'
$query->filterBySymbol('%fooValue%'); // WHERE symbol LIKE '%fooValue%'
in
CurrencyQuery at line 386
CurrencyQuery
filterByFormat(
string $format = null,
string $comparison = null)
Filter the query on the format column
Example usage:
$query->filterByFormat('fooValue'); // WHERE format = 'fooValue'
$query->filterByFormat('%fooValue%'); // WHERE format LIKE '%fooValue%'
in
CurrencyQuery at line 418
CurrencyQuery
filterByRate(
mixed $rate = null,
string $comparison = null)
Filter the query on the rate column
Example usage:
$query->filterByRate(1234); // WHERE rate = 1234
$query->filterByRate(array(12, 34)); // WHERE rate IN (12, 34)
$query->filterByRate(array('min' => 12)); // WHERE rate > 12
in
CurrencyQuery at line 459
CurrencyQuery
filterByVisible(
mixed $visible = null,
string $comparison = null)
Filter the query on the visible column
Example usage:
$query->filterByVisible(1234); // WHERE visible = 1234
$query->filterByVisible(array(12, 34)); // WHERE visible IN (12, 34)
$query->filterByVisible(array('min' => 12)); // WHERE visible > 12
in
CurrencyQuery at line 500
CurrencyQuery
filterByPosition(
mixed $position = null,
string $comparison = null)
Filter the query on the position column
Example usage:
$query->filterByPosition(1234); // WHERE position = 1234
$query->filterByPosition(array(12, 34)); // WHERE position IN (12, 34)
$query->filterByPosition(array('min' => 12)); // WHERE position > 12
in
CurrencyQuery at line 541
CurrencyQuery
filterByByDefault(
mixed $byDefault = null,
string $comparison = null)
Filter the query on the by_default column
Example usage:
$query->filterByByDefault(1234); // WHERE bydefault = 1234
$query->filterByByDefault(array(12, 34)); // WHERE bydefault IN (12, 34)
$query->filterByByDefault(array('min' => 12)); // WHERE by_default > 12
in
CurrencyQuery at line 584
CurrencyQuery
filterByCreatedAt(
mixed $createdAt = null,
string $comparison = null)
Filter the query on the created_at column
Example usage:
$query->filterByCreatedAt('2011-03-14'); // WHERE createdat = '2011-03-14'
$query->filterByCreatedAt('now'); // WHERE createdat = '2011-03-14'
$query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13'
in
CurrencyQuery at line 627
CurrencyQuery
filterByUpdatedAt(
mixed $updatedAt = null,
string $comparison = null)
Filter the query on the updated_at column
Example usage:
$query->filterByUpdatedAt('2011-03-14'); // WHERE updatedat = '2011-03-14'
$query->filterByUpdatedAt('now'); // WHERE updatedat = '2011-03-14'
$query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13'
in
CurrencyQuery at line 658
CurrencyQuery
filterByOrder(
Order|ObjectCollection $order,
string $comparison = null)
Filter the query by a related \Thelia\Model\Order object
in
CurrencyQuery at line 681
CurrencyQuery
joinOrder(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Adds a JOIN clause to the query using the Order relation
in
CurrencyQuery at line 716
OrderQuery
useOrderQuery(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Use the Order relation Order object
in
CurrencyQuery at line 731
CurrencyQuery
filterByCart(
Cart|ObjectCollection $cart,
string $comparison = null)
Filter the query by a related \Thelia\Model\Cart object
in
CurrencyQuery at line 754
CurrencyQuery
joinCart(
string $relationAlias = null,
string $joinType = Criteria::LEFT_JOIN)
Adds a JOIN clause to the query using the Cart relation
in
CurrencyQuery at line 789
CartQuery
useCartQuery(
string $relationAlias = null,
string $joinType = Criteria::LEFT_JOIN)
Use the Cart relation Cart object
in
CurrencyQuery at line 804
CurrencyQuery
filterByProductPrice(
ProductPrice|ObjectCollection $productPrice,
string $comparison = null)
Filter the query by a related \Thelia\Model\ProductPrice object
in
CurrencyQuery at line 827
CurrencyQuery
joinProductPrice(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Adds a JOIN clause to the query using the ProductPrice relation
in
CurrencyQuery at line 862
ProductPriceQuery
useProductPriceQuery(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Use the ProductPrice relation ProductPrice object
in
CurrencyQuery at line 877
CurrencyQuery
filterBySaleOffsetCurrency(
SaleOffsetCurrency|ObjectCollection $saleOffsetCurrency,
string $comparison = null)
Filter the query by a related \Thelia\Model\SaleOffsetCurrency object
in
CurrencyQuery at line 900
CurrencyQuery
joinSaleOffsetCurrency(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Adds a JOIN clause to the query using the SaleOffsetCurrency relation
in
CurrencyQuery at line 935
SaleOffsetCurrencyQuery
useSaleOffsetCurrencyQuery(
string $relationAlias = null,
string $joinType = Criteria::INNER_JOIN)
Use the SaleOffsetCurrency relation SaleOffsetCurrency object
in
CurrencyQuery at line 950
CurrencyQuery
filterByCurrencyI18n(
CurrencyI18n|ObjectCollection $currencyI18n,
string $comparison = null)
Filter the query by a related \Thelia\Model\CurrencyI18n object
in
CurrencyQuery at line 973
CurrencyQuery
joinCurrencyI18n(
string $relationAlias = null,
string $joinType = 'LEFT JOIN')
Adds a JOIN clause to the query using the CurrencyI18n relation
in
CurrencyQuery at line 1008
CurrencyI18nQuery
useCurrencyI18nQuery(
string $relationAlias = null,
string $joinType = 'LEFT JOIN')
Use the CurrencyI18n relation CurrencyI18n object
in
CurrencyQuery at line 1022
CurrencyQuery
prune(
Currency $currency = null)
Exclude object from result
in
CurrencyQuery at line 1037
int
doDeleteAll(
ConnectionInterface $con = null)
Deletes all rows from the currency table.
in
CurrencyQuery at line 1074
int
delete(
ConnectionInterface $con = null)
Performs a DELETE on the database, given a ChildCurrency or Criteria object OR a primary key value.
in
CurrencyQuery at line 1115
CurrencyQuery
recentlyUpdated(
int $nbDays = 7)
Filter by the latest updated
in
CurrencyQuery at line 1127
CurrencyQuery
recentlyCreated(
int $nbDays = 7)
Filter by the latest created
in
CurrencyQuery at line 1137
CurrencyQuery
lastUpdatedFirst()
Order by update date desc
in
CurrencyQuery at line 1147
CurrencyQuery
firstUpdatedFirst()
Order by update date asc
in
CurrencyQuery at line 1157
CurrencyQuery
lastCreatedFirst()
Order by create date desc
in
CurrencyQuery at line 1167
CurrencyQuery
firstCreatedFirst()
Order by create date asc
in
CurrencyQuery at line 1183
CurrencyQuery
joinI18n(
string $locale = 'en_US',
string $relationAlias = null,
string $joinType = Criteria::LEFT_JOIN)
Adds a JOIN clause to the query using the i18n relation
in
CurrencyQuery at line 1201
CurrencyQuery
joinWithI18n(
string $locale = 'en_US',
string $joinType = Criteria::LEFT_JOIN)
Adds a JOIN clause to the query and hydrates the related I18n object.
Shortcut for $c->joinI18n($locale)->with()
in
CurrencyQuery at line 1222
CurrencyI18nQuery
useI18nQuery(
string $locale = 'en_US',
string $relationAlias = null,
string $joinType = Criteria::LEFT_JOIN)
Use the I18n relation query object
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderById($order = Criteria::ASC)
Order by the id column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByCode($order = Criteria::ASC)
Order by the code column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderBySymbol($order = Criteria::ASC)
Order by the symbol column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByFormat($order = Criteria::ASC)
Order by the format column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByRate($order = Criteria::ASC)
Order by the rate column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByVisible($order = Criteria::ASC)
Order by the visible column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByPosition($order = Criteria::ASC)
Order by the position column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByByDefault($order = Criteria::ASC)
Order by the by_default column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByCreatedAt($order = Criteria::ASC)
Order by the created_at column
in
CurrencyQuery at line 97
ChildCurrencyQuery
orderByUpdatedAt($order = Criteria::ASC)
Order by the updated_at column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupById()
Group by the id column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByCode()
Group by the code column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupBySymbol()
Group by the symbol column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByFormat()
Group by the format column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByRate()
Group by the rate column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByVisible()
Group by the visible column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByPosition()
Group by the position column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByByDefault()
Group by the by_default column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByCreatedAt()
Group by the created_at column
in
CurrencyQuery at line 97
ChildCurrencyQuery
groupByUpdatedAt()
Group by the updated_at column
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoin($relation)
Adds a LEFT JOIN clause to the query
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoin($relation)
Adds a RIGHT JOIN clause to the query
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoin($relation)
Adds a INNER JOIN clause to the query
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoinOrder($relationAlias = null)
Adds a LEFT JOIN clause to the query using the Order relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoinOrder($relationAlias = null)
Adds a RIGHT JOIN clause to the query using the Order relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoinOrder($relationAlias = null)
Adds a INNER JOIN clause to the query using the Order relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoinCart($relationAlias = null)
Adds a LEFT JOIN clause to the query using the Cart relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoinCart($relationAlias = null)
Adds a RIGHT JOIN clause to the query using the Cart relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoinCart($relationAlias = null)
Adds a INNER JOIN clause to the query using the Cart relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoinProductPrice($relationAlias = null)
Adds a LEFT JOIN clause to the query using the ProductPrice relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoinProductPrice($relationAlias = null)
Adds a RIGHT JOIN clause to the query using the ProductPrice relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoinProductPrice($relationAlias = null)
Adds a INNER JOIN clause to the query using the ProductPrice relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoinSaleOffsetCurrency($relationAlias = null)
Adds a LEFT JOIN clause to the query using the SaleOffsetCurrency relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoinSaleOffsetCurrency($relationAlias = null)
Adds a RIGHT JOIN clause to the query using the SaleOffsetCurrency relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoinSaleOffsetCurrency($relationAlias = null)
Adds a INNER JOIN clause to the query using the SaleOffsetCurrency relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
leftJoinCurrencyI18n($relationAlias = null)
Adds a LEFT JOIN clause to the query using the CurrencyI18n relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
rightJoinCurrencyI18n($relationAlias = null)
Adds a RIGHT JOIN clause to the query using the CurrencyI18n relation
in
CurrencyQuery at line 97
ChildCurrencyQuery
innerJoinCurrencyI18n($relationAlias = null)
Adds a INNER JOIN clause to the query using the CurrencyI18n relation
in
CurrencyQuery at line 97
ChildCurrency
findOne(
ConnectionInterface $con = null)
Return the first ChildCurrency matching the query
in
CurrencyQuery at line 97
ChildCurrency
findOneOrCreate(
ConnectionInterface $con = null)
Return the first ChildCurrency matching the query, or a new ChildCurrency object populated from the query conditions when no match is found
in
CurrencyQuery at line 97
ChildCurrency
findOneById(
int $id)
Return the first ChildCurrency filtered by the id column
in
CurrencyQuery at line 97
ChildCurrency
findOneByCode(
string $code)
Return the first ChildCurrency filtered by the code column
in
CurrencyQuery at line 97
ChildCurrency
findOneBySymbol(
string $symbol)
Return the first ChildCurrency filtered by the symbol column
in
CurrencyQuery at line 97
ChildCurrency
findOneByFormat(
string $format)
Return the first ChildCurrency filtered by the format column
in
CurrencyQuery at line 97
ChildCurrency
findOneByRate(
double $rate)
Return the first ChildCurrency filtered by the rate column
in
CurrencyQuery at line 97
ChildCurrency
findOneByVisible(
int $visible)
Return the first ChildCurrency filtered by the visible column
in
CurrencyQuery at line 97
ChildCurrency
findOneByPosition(
int $position)
Return the first ChildCurrency filtered by the position column
in
CurrencyQuery at line 97
ChildCurrency
findOneByByDefault(
int $by_default)
Return the first ChildCurrency filtered by the by_default column
in
CurrencyQuery at line 97
ChildCurrency
findOneByCreatedAt(
string $created_at)
Return the first ChildCurrency filtered by the created_at column
in
CurrencyQuery at line 97
ChildCurrency
findOneByUpdatedAt(
string $updated_at)
Return the first ChildCurrency filtered by the updated_at column
in
CurrencyQuery at line 97
array
findById(
int $id)
Return ChildCurrency objects filtered by the id column
in
CurrencyQuery at line 97
array
findByCode(
string $code)
Return ChildCurrency objects filtered by the code column
in
CurrencyQuery at line 97
array
findBySymbol(
string $symbol)
Return ChildCurrency objects filtered by the symbol column
in
CurrencyQuery at line 97
array
findByFormat(
string $format)
Return ChildCurrency objects filtered by the format column
in
CurrencyQuery at line 97
array
findByRate(
double $rate)
Return ChildCurrency objects filtered by the rate column
in
CurrencyQuery at line 97
array
findByVisible(
int $visible)
Return ChildCurrency objects filtered by the visible column
in
CurrencyQuery at line 97
array
findByPosition(
int $position)
Return ChildCurrency objects filtered by the position column
in
CurrencyQuery at line 97
array
findByByDefault(
int $by_default)
Return ChildCurrency objects filtered by the by_default column
in
CurrencyQuery at line 97
array
findByCreatedAt(
string $created_at)
Return ChildCurrency objects filtered by the created_at column
in
CurrencyQuery at line 97
array
findByUpdatedAt(
string $updated_at)
Return ChildCurrency objects filtered by the updated_at column


| SEMOP(2) | Linux Programmer's Manual | SEMOP(2) |
#include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h>
int semop(int semid, struct sembuf *sops, size_t nsops);
int semtimedop(int semid, struct sembuf *sops, size_t nsops, const struct timespec *timeout);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
semtimedop(): _GNU_SOURCE
unsigned short semval; /* semaphore value */ unsigned short semzcnt; /* # waiting for zero */ unsigned short semncnt; /* # waiting for increase */ pid_t sempid; /* PID of process that last
semop() performs operations on selected semaphores in the set indicated by semid. Each of the nsops elements in the array pointed to by sops is a structure that specifies an operation to be performed on a single semaphore. The elements of this structure are of type struct sembuf, containing the following members:
unsigned short sem_num; /* semaphore number */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */
Flags recognized in sem_flg are IPC_NOWAIT and SEM_UNDO. If an operation specifies SEM_UNDO, it will be automatically undone when the process terminates.
The set of operations contained in sops is performed in array order, and atomically, that is, the operations are performed either as a complete unit, or not at all. The behavior of the system call if not all operations can be performed immediately depends on the presence of the IPC_NOWAIT flag in the individual sem_flg fields, as noted below.
Each operation is performed on the sem_num-th semaphore of the semaphore set, where the first semaphore of the set is numbered 0. There are three types of operation, distinguished by the value of sem_op.
If sem_op is a positive integer, the operation adds this value to the semaphore value (semval). Furthermore, if SEM_UNDO is specified for this operation, the system subtracts the value sem_op from the semaphore adjustment (semadj) value for this semaphore. This operation can always proceed—it never forces a thread to wait. The calling process must have alter permission on the semaphore set.
If sem_op is zero, the process must have read permission on the semaphore set. This is a "wait-for-zero" operation: if semval is zero, the operation can immediately proceed. Otherwise, if IPC_NOWAIT is specified in sem_flg, semop() fails with errno set to EAGAIN (and none of the operations in sops is performed). Otherwise, semzcnt (the count of threads waiting until this semaphore's value becomes zero) is incremented by one and the thread sleeps until one of the following occurs:
If sem_op is less than zero, the process must have alter permission on the semaphore set. If semval is greater than or equal to the absolute value of sem_op, the operation can proceed immediately: the absolute value of sem_op is subtracted from semval, and, if SEM_UNDO is specified for this operation, the system adds the absolute value of sem_op to the semaphore adjustment (semadj) value for this semaphore. If the absolute value of sem_op is greater than semval, and IPC_NOWAIT is specified in sem_flg, semop() fails, with errno set to EAGAIN (and none of the operations in sops is performed). Otherwise, semncnt (the counter of threads waiting for this semaphore's value to increase) is incremented by one and the thread sleeps until one of the following occurs:
On successful completion, the sempid value for each semaphore specified in the array pointed to by sops is set to the caller's process ID. In addition, the sem_otime is set to the current time.
Note that if semtimedop() is interrupted by a signal, causing the call to fail with the error EINTR, the contents of timeout are left unchanged.
The sem_undo structures of a process aren't inherited by the child produced by fork(2), but they are inherited across an execve(2) system call.
semop() is never automatically restarted after being interrupted by a signal handler, regardless of the setting of the SA_RESTART flag when establishing a signal handler.
A semaphore adjustment (semadj) value is a per-process, per-semaphore integer that is the negated sum of all operations performed on a semaphore specifying the SEM_UNDO flag. Each process has a list of semadj values—one value for each semaphore on which it has operated using SEM_UNDO. When a process terminates, each of its per-semaphore semadj values is added to the corresponding semaphore, thus undoing the effect of that process's operations on the semaphore (but see BUGS below). When a semaphore's value is directly set using the SETVAL or SETALL request to semctl(2), the corresponding semadj values in all processes are cleared. The clone(2) CLONE_SYSVSEM flag allows more than one process to share a semadj list; see clone(2) for details.
The semval, sempid, semzcnt, and semnct values for a semaphore can all be retrieved using appropriate semctl(2) calls.
The implementation has no intrinsic limits for the adjust on exit maximum value (SEMAEM), the system wide maximum number of undo structures (SEMMNU) and the per-process maximum number of undo entries system parameters.
In kernels 2.6.x, x <= 10, there is a bug that in some circumstances prevents a thread that is waiting for a semaphore value to become zero from being woken up when the value does actually become zero. This bug is fixed in kernel 2.6.11.
struct sembuf sops[2]; int semid; /* Code to set semid omitted */ sops[0].sem_num = 0; /* Operate on semaphore 0 */ sops[0].sem_op = 0; /* Wait for value to equal 0 */ sops[0].sem_flg = 0; sops[1].sem_num = 0; /* Operate on semaphore 0 */ sops[1].sem_op = 1; /* Increment value by one */ sops[1].sem_flg = 0; if (semop(semid, sops, 2) == -1) { perror("semop"); exit(EXIT_FAILURE); }
| 2019-08-02 | Linux |


An application can register a URL pointing to an enclosure-based RSS feed of images (JPG and PNG files) that can be set as the user's default lock screen slide show image provider.
This code sample illustrates how to:
1. Set your URL as default
2. Remove your registration


Job Details:
Job Title:
Description:
Brief Description should have atmost 500 characters
Company Name:
Contact number:
Contact person:
Email:
Work Status
Full Time
Part Time
Per Dim
Others
Salary
Rupees
Euro
US Dollar
Yearly
Half Yearly
Experience(Years)
Locations
Qualifications:
Any
High School
Associate
Pre Bachelors
Bachelors
Any


data-max-length-warning="limit exceeded"data-max-length="10"
data-max-length-warning="Max 15 characters"data-max-length="15"


public final class SloppyMath
extends java.lang.Object
SloppyMath
contains methods for performing basic
numeric operations. In some cases, such as max and min, they cut a few
corners in
the implementation for the sake of efficiency. In particular, they may
not handle special notions like NaN and -0.0 correctly. This was the
origin of the class name, but many other methods are just useful
math additions, such as logAdd. This class just has static math methods.| Modifier and Type | Method and Description |
|---|---|
static double |
acos(double cosValue)
Compute acos very quickly by directly looking up the value.
|
static double |
chiSquare2by2(int k,
int n,
int r,
int m)
Find a 2x2 chi-square value.
|
static double |
exactBinomial(int k,
int n,
double p)
Find a one tailed exact binomial test probability.
|
static double |
factorial(int x)
Uses floating point so that it can represent the really big numbers that come up.
|
static double |
gamma(double n)
Approximation to gamma function.
|
static double |
hypergeometric(int k,
int n,
int r,
int m)
Find a hypergeometric distribution.
|
static double |
intPow(double b,
int e)
Exponentiation like we learned in grade school:
multiply b by itself e times.
|
static float |
intPow(float b,
int e)
Exponentiation like we learned in grade school:
multiply b by itself e times.
|
static int |
intPow(int b,
int e)
Exponentiation like we learned in grade school:
multiply b by itself e times.
|
static boolean |
isCloseTo(double a,
double b) |
static boolean |
isDangerous(double d)
Returns true if the argument is a "dangerous" double to have
around, namely one that is infinite, NaN or zero.
|
static boolean |
isVeryDangerous(double d)
Returns true if the argument is a "very dangerous" double to have
around, namely one that is infinite or NaN.
|
static double |
lgamma(double x) |
static double |
log(double num,
double base)
Convenience method for log to a different base
|
static double |
logAdd(double lx,
double ly)
Returns the log of the sum of two numbers, which are
themselves input in log form.
|
static float |
logAdd(float lx,
float ly)
Returns the log of the sum of two numbers, which are
themselves input in log form.
|
static void |
main(java.lang.String[] args)
Tests the hypergeometric distribution code, or other functions
provided in this module.
|
static int |
max(java.util.Collection<java.lang.Integer> vals) |
static double |
max(double a,
double b)
Returns the greater of two
double values. |
static float |
max(float a,
float b)
Returns the greater of two
float values. |
static int |
max(int a,
int b)
Returns the greater of two
int values. |
static int |
max(int a,
int b,
int c)
max() that works on three integers.
|
static double |
min(double a,
double b)
Returns the smaller of two
double values. |
static float |
min(float a,
float b)
Returns the smaller of two
float values. |
static int |
min(int a,
int b,
int c)
Returns the minimum of three int values.
|
static int |
nChooseK(int n,
int k)
Computes n choose k in an efficient way.
|
static double |
oneTailedFishersExact(int k,
int n,
int r,
int m)
Find a one-tailed Fisher's exact probability.
|
static double |
poisson(int x,
double lambda) |
static double |
pow(double a,
double b)
Returns an approximation to Math.pow(a,b) that is ~27x faster
with a margin of error possibly around ~10%.
|
static int |
pythonMod(int num,
int modulus)
Returns a mod where the sign of the answer is the same as the sign of the second
argument.
|
static double |
round(double x)
Round a double to the nearest integer, via conventional rules
(.5 rounds up, .49 rounds down), and return the result, still as a double.
|
static double |
round(double x,
int precision)
Round a double to the given number of decimal places,
rounding to the nearest value via conventional rules (5 rounds up, 49
rounds down).
|
static double |
sigmoid(double x)
Compute the sigmoid function with mean zero.
|
public static double round(double x)
x
- What to roundpublic static double round(double x, int precision)
public static int max(int a, int b, int c)
public static int max(java.util.Collection<java.lang.Integer> vals)
public static int max(int a, int b)
int
values. That
is, the result is the argument closer to positive infinity. If
the arguments have the same value, the result is that same
value. Does none of the special checks for NaN or -0.0f that
Math.max
does.a
- an argument.b
- another argument.a
and b
.public static float max(float a, float b)
float
values. That is,
the result is the argument closer to positive infinity. If the
arguments have the same value, the result is that same
value. Does none of the special checks for NaN or -0.0f that
Math.max
does.a
- an argument.b
- another argument.a
and b
.public static double max(double a, double b)
double
values. That
is, the result is the argument closer to positive infinity. If
the arguments have the same value, the result is that same
value. Does none of the special checks for NaN or -0.0f that
Math.max
does.a
- an argument.b
- another argument.a
and b
.public static int min(int a, int b, int c)
public static float min(float a, float b)
float
values. That is,
the result is the value closer to negative infinity. If the
arguments have the same value, the result is that same
value. Does none of the special checks for NaN or -0.0f that
Math.max
does.a
- an argument.b
- another argument.a
and b.
public static double min(double a, double b)
double
values. That
is, the result is the value closer to negative infinity. If the
arguments have the same value, the result is that same
value. Does none of the special checks for NaN or -0.0f that
Math.max
does.a
- an argument.b
- another argument.a
and b
.public static int pythonMod(int num, int modulus)
num
- The numbermodulus
- The moduluspublic static double lgamma(double x)
public static boolean isDangerous(double d)
public static boolean isVeryDangerous(double d)
public static boolean isCloseTo(double a, double b)
public static double gamma(double n)
public static double log(double num, double base)
public static float logAdd(float lx, float ly)
lx
- First number, in log formly
- Second number, in log formlog(exp(lx) + exp(ly))
public static double logAdd(double lx, double ly)
lx
- First number, in log formly
- Second number, in log formlog(exp(lx) + exp(ly))
public static int nChooseK(int n, int k)
public static double pow(double a, double b)
public static int intPow(int b, int e)
b
- basee
- exponentpublic static float intPow(float b, int e)
b
- basee
- exponentpublic static double intPow(double b, int e)
b
- basee
- exponentpublic static double hypergeometric(int k, int n, int r, int m)
k
- The number of black balls drawnn
- The total number of ballsr
- The number of black ballsm
- The number of balls drawnpublic static double exactBinomial(int k, int n, double p)
k
- number of successesn
- Number of trialsp
- Probability of a successpublic static double oneTailedFishersExact(int k, int n, int r, int m)
k
- The number of black balls drawnn
- The total number of ballsr
- The number of black ballsm
- The number of balls drawnpublic static double chiSquare2by2(int k, int n, int r, int m)
k
- The number of black balls drawnn
- The total number of ballsr
- The number of black ballsm
- The number of balls drawnpublic static double sigmoid(double x)
x
- Point to compute sigmoid at.public static double acos(double cosValue)
cosValue
- The cosine of the angle to fine.java.lang.IllegalArgumentException
- if cosValue is not between -1 and 1public static double poisson(int x, double lambda)
public static double factorial(int x)
x
- Argument to take factorial ofpublic static void main(java.lang.String[] args)
args
- Either none, and the log add routines are tested, or the
following 4 arguments: k (cell), n (total), r (row), m (col)


About us!
Team Story
We are a diverse multifunctional team, with a huge passion for coding. We all have very diverse backgrounds ranging from military commander, designer to teacher and legal. Our diverse backgrounds and experiences bring mangy advantages to our team. We are huge believers in never-ending knowledge and are on a conquest to keep learning. We're excited to make cutting edge break throughs in technology and hope to share our knowledge with the world.
Our goal is to implement a jumping platform game that would bring back a sense of of nostalgia. We were inspired by icy tower and other examples online. In order to tackle some of the challenges with game physics we utilized phaser 3.11. Although, we initially struggled finding documentation, with a lot of research and experimentatoin we were able to complete our Spicy Tower version 1.0.0.
Our Workflow
Special Thanks
Piotr Hamond
For the awesome music that's been created for our little game.


Include leaders and teams who know where they are going and how to get there.
Engage team members with a clear vision, shared values and meaningful purpose
Have the skills, behaviors, tools and support required to unleash their potential.
As a coach, challenger and catalyst for change, we support organizations that want to establish business-focused Human Resources and Talent Development teams, tools and processes that drive real value creation.
Properly staffed and positioned Human Resources leaders and teams are strategic enablers of business performance and growth. We help you assess your current HR capabilities and build value adding talent management solutions that will help you move beyond compliance driven personnel management to business integrated Human Resources leadership.
Effective leadership is critical to attracting, engaging, and retaining the people you need to delight your customers and achieve your goals. We help you leverage the strengths of your managers and create insights and actions to develop their weaknesses through individualized feedback and coaching.
The most successful businesses have team members that understand the company's goals and are committed to achieving them. We help you create clarity of purpose and establish goal setting and performance management tools and processes that go beyond score keeping to create a culture of engagement.
John Vitale has 30 years of leadership and business management experience. Early career accomplishments included developing and implementing leadership and team development training programs, designing and facilitating experiential learning programs in communication, leadership and management, and designing and producing tools and programs for developing and communicating organizational goals and strategies.
Most recently, John has led the establishment and development of strategically aligned Human Resources functions and high functioning HR teams for both privately held and public companies.
John has developed an appreciation of the opportunities and challenges experienced at both large and small companies. His leadership roles at Cotiviti, Maxum Petroleum, Eastman Kodak, PerkinElmer, Zurich Financial Services, U.S. Tobacco, Waldenbooks, and the Federal Reserve Bank of New York have provided a diversity and depth of experience.


--- layout: page title: Jobs permalink: /jobs/ ---
Simplicar targets to become the leading online platform for vehicles sale via affinity groups in Latin America.
Simplicar is an innovative lead-generator in the mobility industry, being part of the Online2Offline global trend. Leads are generated for car dealerships, insurance and financing companies and for other players in the business.
The company leverages group buying power to provide its affinity group members with competitive prices from its dealership network. Simplicar works as a closed one-stop shop where car buyers have access to an exclusive and complete vehicle purchasing service (vehicle buying, insurance, financing / leasing, shielding, etc.).
This blog is crafted by the Simplicar Engineering team and it's purpose is to publish engineering articles and job posts.
| Position | Area |
|---|---|
| Full-stack developer | Development |
| Front-end developer | Development |


Transactions history
Date
Ticker symbol
Transaction
Quantity
Price
01/01/2017
AAPL
BUY
100
$150.2
Homepage


Clicking on the links below (in order) will register the rulesets required to play Tic Tac Toe with another person running a Pico Agent.
The links assume a pico engine running at localhost:8080.
Rulesets needed to play Tic Tac Toe
https://raw.githubusercontent.com/Picolab/TicTacToe/master/krl/did-sov-SLfEi9esrjzybysFxQZbfq.krl


Last scan of this network happened {{ network.last_scan }}.
This network has never been scanned.


Examples of the markup that can be used for buttons: A button element, an input of type submit and an anchor.
Buttons can be styled via the button widget or by adding the classes yourself. This avoids the JavaScript overhead if you don't need any of the methods provided by the button widget.


| Real Name | Bruce Wayne |
| (Human) Job | CEO of Wayne Enterprises |
| Symbols | The Bat Symbol, his bat mask and cape |
| Abilities | His wealth?! |
| Companions | Superman, Wonder Woman, James Gordan, the Flash |
| Enemies | Also Superman, Doomsday, Lex Luthor, Steppenwolf |
| Represents | Dark, Mystery, Justice |
| Movies | Batman Vs Superman: Dawn Of Justice, Justice League |
| Iconic Scenes | "Bruce's Interview", "Doomsday", "Martha", "Diana and Bruce" |


An arithmetical expression consists of 2 numbers and an operator between them, for instance:
1 + 2
1.2 * 3.4
-3 / -6
-2 - 2
The operator is one of: "+"
, "-"
, "*"
or "/"
.
There may be extra spaces at the beginning, at the end or between the parts.
Create a function parse(expr)
that takes an expression and returns an array of 3 items:
For example:


PKCS12_item_decrypt_d2i, PKCS12_item_decrypt_d2i_ex, PKCS12_item_i2d_encrypt, PKCS12_item_i2d_encrypt_ex - PKCS12 item encrypt/decrypt functions
#include <openssl/pkcs12.h>
void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it,
const char *pass, int passlen,
const ASN1_OCTET_STRING *oct, int zbuf);
void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it,
const char *pass, int passlen,
const ASN1_OCTET_STRING *oct, int zbuf,
OSSL_LIB_CTX *libctx,
const char *propq);
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor,
const ASN1_ITEM *it,
const char *pass, int passlen,
void *obj, int zbuf);
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor,
const ASN1_ITEM *it,
const char *pass, int passlen,
void *obj, int zbuf,
OSSL_LIB_CTX *ctx,
const char *propq);
PKCS12_item_decrypt_d2i() and PKCS12_item_decrypt_d2i_ex() decrypt an octet string containing an ASN.1 encoded object using the algorithm algor and password pass of length passlen. If zbuf is nonzero then the output buffer will zeroed after the decrypt.
PKCS12_item_i2d_encrypt() and PKCS12_item_i2d_encrypt_ex() encrypt an ASN.1 object it using the algorithm algor and password pass of length passlen, returning an encoded object in obj. If zbuf is nonzero then the buffer containing the input encoding will be zeroed after the encrypt.
Functions ending in _ex() allow for a library context ctx and property query propq to be used to select algorithm implementations.
PKCS12_item_decrypt_d2i() and PKCS12_item_decrypt_d2i_ex() return the decrypted object or NULL if an error occurred.
PKCS12_item_i2d_encrypt() and PKCS12_item_i2d_encrypt_ex() return the encrypted data as an ASN.1 Octet String or NULL if an error occurred.
PKCS12_pbe_crypt_ex(3), PKCS8_encrypt_ex(3)
PKCS12_item_decrypt_d2i_ex() and PKCS12_item_i2d_encrypt_ex() were added in OpenSSL 3.0.
Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


Deuteronomy 20:2
And it shall be, when ye are come nigh unto the battle, that the priest shall approach and speak unto the people,


---
layout: post
title: RISC-V on the ULX3S with LiteX
date: '2020-03-14T13:39:00.000-07:00'
author: gojimmypi
tags:
- ULX3S
- FPGA
- LiteX
modified_time: '2020-04-10T17:01:14.323-07:00'
thumbnail: https://1.bp.blogspot.com/-i0MU1HjB_DA/Xm6B5xss7DI/AAAAAAAACaA/THRXIA617k8vlNu4isYXceM-7b5FsSPIwCLcBGAsYHQ/s72-c/full%2Bulx3s%2Btoolchain%2Bdirectory%2Blist.png
blogger_id: tag:blogger.com,1999:blog-4109066286647243251.post-8565227575547999445
blogger_orig_url: https://gojimmypi.blogspot.com/2020/03/risc-v-on-ulx3s-with-litex.html
---
Today is ULX3S Campaign Launch Day on Crowd Supply
!!
As I write this, funding is at 40% in just the first hour!
In pursuit of my ongoing quest to get Circuit Python working on my
ULX3S.... I decided to try out LiteX. I wasn't able to get the rxrbln picorv32 picosoc for ULX3S
working (yet) due to some missing files that have not yet been checked in. Part of the journey is simply figuring out which working components to use.
| Full ULX3S toolchain directory list |
cd /mnt/c/workspace/litex-boards/litex_boards/targets
# ./ulx3s.py --device LFE5U-45F
./ulx3s.py --device LFE5U-85F
It is not super intuitive where files end up. There's certainly not a lot of documentation for the litex-boards repo
. I searched in powershell:
Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -ge "03/08/2020 4:00pm" }
the top.bit
file ended up in:
C:\workspace\litex-boards\litex_boards\targets\soc_basesoc_ulx3s\gateware
So from WSL it can be loaded onto the ULX3S like this:
# make sure nothing is using the ULX3S, including VM's, terminal sessions in putty, etc!
cd /mnt/c/workspace/litex-boards/litex_boards/targets/soc_basesoc_ulx3s/gateware
/mnt/c/workspace/ulx3s-examples/bin/ujprog.exe top.bit
Note how Windows executables can be called from the WSL prompt. The same command can be used in a DOS window:
# make sure nothing is using the ULX3S, including VM's, terminal sessions in putty, etc!
c:
cd \workspace\litex-boards\litex_boards\targets\soc_basesoc_ulx3s\gateware
c:\workspace\ulx3s-examples\bin\ujprog.exe top.bit
Stupid things to be aware of: the serial port is running at 11500 8N1. Don't ask me how much time I wasted when using a putty
saved connection for the COM port preset at 19200 and kept wondering why there was no response when trying to connect. I don't think I'll ever make that mistake again. lol
C:\workspace\litex-boards\litex_boards\targets\soc_basesoc_ulx3s\software\bios
My script for synthesizing the CPU ended up in:
/mnt/c/workspace/linux-on-litex-vexriscv/build/ulx3s/gateware/build_top.sh
I had found that build_top.sh file prior to realizing ulx3s.py accepted a device parameter. I have two ULX3S devices, the 12F and the 85F. Guess which one is the defined default for the LiteX build? Yup, the 45F. Did I mention if things are too easy it's no fun? At first I manually edited the build file (note the above call to ulx3s.py does everything, including synthesizing the FPGA VexRiscv core). The default looks like this:
# Autogenerated by LiteX / git: e801dc02
set -e
yosys -l top.rpt top.ys
nextpnr-ecp5 --json top.json --lpf top.lpf --textcfg top.config --45k --package CABGA381 --speed 6 --timing-allow-fail
ecppack top.config --svf top.svf --bit top.bit
Ok, so one of the parameters looks easy enough. Ooph, but what about the "CABGA381"? Well, a quick google search and it turns out that's just a package specification. See the prjtrellis devices.json
for a list of all of them. I'll assume that I each of the ECP5 options on the ULX3S will use the same package, and simply change the "45k" to "85k".
("serial", 0,
Subsignal("tx", Pins("L4"), IOStandard("LVCMOS33")),
Subsignal("rx", Pins("M1"), IOStandard("LVCMOS33"))
),
To build the binaries:
cd $WORKSPACE/litex-boards/litex_boards/targets
./ulx3s.py --device LFE5U-85F --cpu-type picorv32
cd $WORKSPACE/litex-boards/litex_boards/targets/soc_basesoc_ulx3s/gateware
# to program the FPGA as a CPU:
$WORKSPACE/ulx3s-examples/bin/ujprog.exe top.bit
cd /mnt/c/workspace/litex-boards/litex_boards/targets/soc_basesoc_ulx3s/software/bios
litex_term --serial-boot --kernel bios.bin /dev/ttyS15
{% include code_header.html %}
More to come... see my next blog:
ULX3S RISC-V with LiteX - Part 2
.


Stan Lee (born Stanley Martin Lieber December 28, 1922 – November 12, 2018) was an American comic book writer, editor, and publisher who was active from the 1940s to the 2010s. He rose through the ranks of a family-run business to become Marvel Comics' primary creative leader for two decades, leading its expansion from a small division of a publishing house to a multimedia corporation that dominated the comics industry. In collaboration with others at Marvel—particularly co-writer/artists Jack Kirby and Steve Ditko—he co-created numerous popular fictional characters, including superheroes Spider-Man, the X-Men, Iron Man, Thor, the Hulk, the Fantastic Four, Black Panther, Daredevil, Doctor Strange, Scarlet Witch and Ant-Man. In doing so, he pioneered a more naturalistic approach to writing superhero comics in the 1960s, and in the 1970s he challenged the restrictions of the Comics Code Authority, indirectly leading to changes in its policies. In the 1980s he pursued development of Marvel properties in other media, with mixed results. Following his retirement from Marvel in the 1990s, he remained a public figurehead for the company, and frequently made cameo appearances in films based on Marvel characters, on which he received an honorary "executive producer" credit. Meanwhile, he continued independent creative ventures into his 90s, until his death in 2018. Lee was inducted into the comic book industry's Will Eisner Award Hall of Fame in 1994 and the Jack Kirby Hall of Fame in 1995. He received the NEA's National Medal of Arts in 2008.


| WinAPI Wrapper |
Controls in dialog boxes are explicitly created together with the dialogs. A dialog box class can access them using the GetDlgItem function. However, the controls have their own classes, therefore a type cast is required.
The following example shows a local, in-line solution:
class SomeDialog: public Dialog { protected: /* ... */ virtual void OnCommand( int nIdentifier, int nNotifyCode, HWND hwndControl ) { switch ( nIdentifier ) { case IDC_BUTTON: Edit edit( GetDlgItem( IDC_EDITBOX ) ); string s = edit.GetLine( 0 ); break; } } /* ... */ };
In the above example the control object is created in-place, when it is needed. The control variable has to be created every time it is needed. Another solution is to create a single class variable once, so that it can be accessed as many times as needed and as long as the dialog box is alive:
class SomeDialog: public Dialog { Edit edit; protected: /* ... */ virtual bool OnInitDialog( HWND hwndFocus, LPARAM lParam ) { /* ... */ edit.Assign( GetDlgItem( IDC_EDITBOX ) ); return true; } virtual void OnCommand( int nIdentifier, int nNotifyCode, HWND hwndControl ) { switch ( nIdentifier ) { case IDC_BUTTON: string s = edit.GetLine( 0 ); break; } } /* ... */ };
The Assign function called during dialog box initialization (WM_INITDIALOG) exchanges the HWND handle of the control that the control object supports.


NUTask Preferences
Work Day Start Time Start time highlighted by calendar.
Work Day End Time End time highlighted by calendar.
Receive our Newsletter
Work Day Start Time Start time highlighted by calendar.
Work Day End Time End time highlighted by calendar.
Receive our Newsletter


Mutual Funds' asset base crosses Rs 27 lakh crore in November
by PTIMutual fund houses witnessed an overall inflow of Rs 54,419 crore last month as compared to Rs 1.33 lakh crore in October
Mutual fund industry saw its assets base surpassing Rs 27 lakh crore-mark in November-end on the back of inflows in debt-oriented schemes including banking and PSU funds, which have a high allocation to highest rated bonds.
The 44-player industry logged assets under management (AUM) of Rs 26.33 lakh crore in October-end, as compared to Rs 27.04 lakh crore by November end, representing a growth of 3 per cent, according to data from the Association of Mutual Funds in India (Amfi).
Mutual fund houses witnessed an overall inflow of Rs 54,419 crore last month as compared to Rs 1.33 lakh crore in October.
Fund managers attributed the growth in the asset base to strong inflows of around Rs 51,000 crore in debt-oriented schemes.
Among debt-oriented schemes, overnight funds -- invest in securities with a maturity of one day-- received flows worth about Rs 20,650 crore, the highest among the fixed-income segment last month.
Apart from this, banking & PSU funds received funds to the tune of Rs 7,230 crore, while Rs 6,938 crore was infused in liquid funds, with investments in cash assets such as treasury bills, certificates of deposit and commercial paper for the shorter horizon.
The open-ended equity schemes witnessed an infusion of Rs 1,312 crore, while there was an outflow of Rs 379 crore in close-ended equity plans, taking total equity inflows to Rs 933 crore last month. In October, net inflow in such schemes stood at Rs 6,015 crore.
"While, equity net inflows have come down sharply in November, partly due to investors booking profits, the overall mutual fund industry AUM reached an all-time high of Rs 27 Lakh crore," AMFI CEO N S Venkatesh said
"Goal-based, long term systematic investment plan (SIP) investments from retail investors continue to grow steadily, with SIP AUM at an all-time high at Rs 3.12 lakh crore," he added.
Besides, gold exchange-traded funds saw an inflow of over Rs 7 crore after witnessing an outflow of Rs 31.45 crore in October.
Before that, the safe-heaven asset saw an infusion of Rs 44 crore in September and Rs 145 crore in August.
Also Read: Modi govt's centralised nature doesn't work well for economic reforms, says Raghuram Rajan
Also Read: GST filing staggered to prevent network crash; who should file when?
Also Read: Citizenship Amendment Bill: 293 votes in favour, 82 votes against introduction of controversial bill


Changelog:
V2.0
- Entire UI update
- Allows multiple file uploads at once
- Security Updates
- Introduced developer mode
V1.2.3
- Added and option to prevent file deletion by users.
Admin can turn on this option from the server
- Clients can see there IP address in stat page
V1.2.2
- Added changelogs page
- Removed version number from home page
- Added home icon instead of text
- Spacing issues fixed
- UI enhancements


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 8
Slowly sweat off the onion, garlic and green peppers in the olive oil for about 10 minutes. After sweating, cover to stew very gently for about 15 minutes, stirring occasionally. This breaks down the green pepper to a more palatable form.
Add the parsley, saffron, potatoes, bay leaves, peppercorns, tomatoes, tomato paste, wine and water. Cover and simmer for ten minutes.
Add the squid and clams or cockles and simmer for another ten minutes.
Add the fish, prawns and mussels in layers. Don't stir this as you'll want the fish to cook in the broth.
Sprinkle with a heavy dose of the black pepper, cover and cook for about ten minutes or until the fish is cooked through and the mussels and clams or cockles are open. Discard any that don't open.
Ladle the stew gently into vat-sized bowls and sprinkle with the chopped coriander.
Serve with bread. We also like to provide some piri piri as a dipping sauce alongside some olive oil laced with a little truffle oil to dip your bread into.