Home
ELLCC
Contact
|
Pennington Software supports
development of the ELLCC project.
What is ELLCC?
ELLCC is a tool chain
specifically targeting embedded platforms.
- C/C++ compiler
- Sophisticated whole program optimization and code generation
- GNU binutils
- GNU GDB source level debugger
- Multiple target support: ARM, Microblaze, Mips, Nios2, PowerPC, and X86
- Support of stand-alone and operating system based systems
Services Provided
- Support
- Consulting
- Ports to different targets and operating systems
|


Soldier Plenos:
Thank you! Then go hunt
Dius, the Lion of Destruction
in the sky above the the Seed of Destruction and bring back its horn as proof.


Countdown Setup
H
H
M
M
S
S
Alternative
Go to Time:
Use time value instead of Hrs/Min/Sec selector?
View Additional Settings
Additional Settings
Background Audio
Simple Alarm
None
Style
White on Red
White on Black
Black on White
White on Flashing Red Background (Always)
White on Flashing Red Background (Last 20 Seconds)
Countdown Title
Flashing Text
No Flashing
Flashing in Last 10 Seconds
Constant Flashing
Start Countdown
Thanks to...
The StackOverflow community for URL parameter decoding
Josh Crozier for vertical centering


After creating a new Python project directory with lean create-project -l csharp <project name>
or by pulling a C# project with lean cloud pull
, the following structure is created:
. ├── .vscode/ │ └── launch.json ├── config.json ├── <project name>.csproj ├── Main.cs (only generated by lean create-project) └── research.ipynb (only generated by lean create-project)
These files contain the following content:
.vscode/launch.json
: This file contains debug configuration to make debugging with VS Code easier.config.json
: This file contains the project configuration of the created project.<project name>.csproj
: This file contains project configuration which Visual Studio, Rider, and VS Code can read to provide accurate C# autocomplete.Main.cs
: This file contains a basic C# algorithm to help you get started.research.ipynb
: This file contains a C#-based research notebook which can be opened in a research environment.


This document describes how to start to develop software using the EPICS V4 toolkit. It's a step by step guide to downloading the appropriate EPICS V4 products and associated software, and using them to create programs using the services EPICS V4 offers, for services and interfacing to EPICS V3 control data. Illustrations for Java and C++ are included.
This is the 20-Jan-2012 version of the Getting Started with EPICS V4. This version corrects issues in the C++ section, and includes the additions for getting started with a Java "binary" download, thus avoiding the necessity of installing and using Mercurial from the 13-Jan version. This version is also up to date with respect to the BETA 1.0 release.
EPICS V4 is implemented in C++ and Java. Its APIs are in C++ and Java mainly, though wrappers are being produced for Python and Matlab. This document covers only development Java and C++.
At minimum EPICS V4 is comprised of 3 "core" modules, pvIOC, pvData, and pvAccess. You need all 3. The specifications for the function of these is (or is being) defined as normative documents of the EPICS V4 working group, and available from the homepage the EPICS V4 homepage. There are Java and C++ implementations of each of these 3. The source code of each can be acquired from Mercurial. To use them, you can download and build them from the source, as described below. For java, you may alternatively just download the Jars. This document deals with acquiring and using these 3 core modules. However, there are many more pieces of software in the EPICS V4 "ecosphere", please see the homepage, and the EPICS V4 Mercurial web site.
| Module | SourceForge Hg repo for Java | Java jar file | SourceForge Hg repo for C++ |
|---|---|---|---|
| pvData | pvDataJava | pvData-1.0-SNAPSHOT.jar | pvDataCPP |
| pvAccess | pvAccessJava | pvAccess-1.0-SNAPSHOT.jar | pvAccessCPP |
| pvIOC | pvIOCJava | pvIOC-1.0-SNAPSHOT.jar | pvIOCCPP |
The version number and designation may change as versions are released. At the time BETA 1.0 release, these were pvData-1.0-BETA.jar etc.
Since the development cycle (compile, build, etc) is significantly different for each language, and to match suitable language API description to suitable use cases, this guide is split into 2 major parts. Firstly, java development and secondly C++ development.
This section is on software development, with and of, the Java implementation of EPICS V4. For C++ development, see below.
Since the minimum EPICS V4 runtime is composed of the 3 modules pvData, pvAccess and pvIOC, you will need at least these 3. The sections below will guide you through acquiring them from Jars or building from the source.
Additionally, if you want to link EPICS V4 to EPICS V3 control data, 2 more files, jca*.jar and caj*.jar are necessary. Specifically, the pvAccess server (part of pvAccess above) allows an existing EPICS V3 Channel Access client to access a pvIOC database. The client allows the pvIOC to communicate with an EPICS V3 server, i.e. a pvIOC database can have links to records in a V3 IOC database. To use this, pvIOC, and hence server executables running on it, will require jca and caj. These are available from the EPICS V4 download site http://sourceforge.net/projects/epics-pvdata/files/ or from their reference sources. When we say "EPICS V3" in general we mean EPICS 3.14.
| Prerequisite | Reference site | jar file |
|---|---|---|
| jca | http://epics-jca.sourceforge.net/jca/ | jca-2.3.5.jar |
| caj | http://epics-jca.sourceforge.net/caj/ | caj-1.1.8.jar |
The Java implementation of the core EPICS V4 pv* modules, is made available in two ways. Firstly, you can download EPICS V4 as a tarball of the jar files and necessary XMLs, directly from the EPICS V4 sourceforge site. Alternatively, you can download the Java sources and build it yourself.
You would use the tar file mechanism of acquiring EPICS V4 if you only intend to use EPICS V4's Java implementation (not to contribute to development at all). If this conditions is false, you probably want to acquire EPICS V4 by the method of downloading the Mercurial source, and building with Maven. Each of these will be described below.
The simplest way to acquire EPICS V4's java implementation is to download the tar file of the jars and necessary XML files, from the EPICS V4 sourceforge download site, http://sourceforge.net/projects/epics-pvdata/files/ [downloadsite]. See in particular the README file at the site.
There are presently 5 jars files available. The 3 named pvIOC*.jar, pvAccess*.jar and pvData*.jar make up the core of EPICS V4. For each version release of EPICS V4, these 3 are bundled into a single tar.gz file for download. You'll need at least what's in the tar.gz. You may additionally want caj*.jar and jca*.jar if you want to attach to EPICS V3. NOTE: The versions of these may have changed since publication of this document, but that should not make a significant difference to these instructions.
To get off the ground using java download, see the examples in the epics-pvdata exampleJava Mercurial repo [ev4examples]. The setup files of those examples (helloWorld_setup.bash and rdb_setup.bash) are written assuming local .class files, you'll have to convert them so the CLASSPATH points to the jar files instead - as described below ). So far only examples of the "ChannelRPC" functionality of EPICS V4 are included in the exampleJava repo, but more will be added.
This section is a guide for acquiring and configuring the files in the Java tar.gz. For illustration we test successful execution of the helloWorld client/server example.
% tar xvfz EPICSv4-Java-1.0-BETA.tar.gzYou should see:
% cd EPICSv4-Java-1.0-BETA/ gregsmac:EPICSv4-Java-1.0-BETA greg$ ls total 2976 2064 -rw-r--r-- 1 greg staff 1054753 19 Dec 20:14 pvIOC-1.0-BETA.jar 496 -rw-r--r-- 1 greg staff 251071 19 Dec 20:13 pvAccess-1.0-BETA.jar 392 -rw-r--r-- 1 greg staff 197488 19 Dec 20:02 pvData-1.0-BETA.jar 16 -rw-r--r-- 1 greg staff 5487 13 Jan 15:17 README 0 drwxr-xr-x 9 greg staff 306 13 Jan 15:17 exampleJava 0 drwxr-xr-x 5 greg staff 170 13 Jan 15:17 common 0 drwxr-xr-x 3 greg staff 102 13 Jan 15:17 pvIOCJava 0 drwxr-xr-x 3 greg staff 102 13 Jan 15:17 pvServiceJava 8 -rw-r--r-- 1 greg staff 9 13 Jan 15:17 tag.txt
$ cd exampleJava/ $ mvn compileThis should result in class files in exampleJava/target/classes/*.class
export JAVAIOC=/Users/greg/Development/epicsV4/releasetest/EPICSv4-Java-1.0-BETA/pvIOCJava
source $HOME/Development/epicsV4/releasetest/EPICSv4-Java-1.0-BETA/common/source/pvCommon_setup.bash
WORKSPACE=$HOME/Development/epicsV4/releasetest/EPICSv4-Java-1.0-BETA
CLASSPATH=${EXAMPLES}/target/classes CLASSPATH=${CLASSPATH}:${WORKSPACE}/pvData-1.0-BETA.jar CLASSPATH=${CLASSPATH}:${WORKSPACE}/pvIOC-1.0-BETA.jar CLASSPATH=${CLASSPATH}:${WORKSPACE}/pvAccess-1.0-BETA.jar
% cd EPICSv4-Java-1.0-BETA/exampleJava/src/helloWorld/ % ./helloServerRunner
% ./helloClientRunner Martha Hello Martha
The use case of downloading the source using Mercurial (aka "hg"), and building with Maven, would be applicable if you are a Java developer and wish either to contribute to EPICS V4, or like to use a command line for your Java builds, or both.
All 3 of the normative EPICS V4 projects (pvData, pvIOC, pvAccess) are each in distinct mercurial repositories in the SourceForge project epics-pvdata. There are separate Mercurial repos for each of the C++ and Java implementations of each normative project [EPICSV4repos]. They can all be checked out via the Mercurial unix shell command hg, or using a Mercurial GUI client suitable for your platform.
The procedure defined below will help you download the source for the pv* modules above, plus the caj/jca jars, and build pv* jars.
You must have a Mercurial client, commonly "mvn" on the command line (it comes for free with Mac OS, or MacHg for Mac OS X is a nice GUI). Mercurial must be able to download from the "epics-pvdata" sourceForge project. That means you either are going to use the HTTP URI syntax or the SSH URI syntax, as understood by Mercurial. HTTP may not work for you! (see below) and if you're going to use the SSH mechanism, you will have to register with sourceForge.
Download from the Mercurial repositories can be done anonymously (HTTP), or using a sourceForge account (SSH).
The anonymous checkout is using the http URI below. Note that we have seen that some people get a "cannot connect" timeout using this method, while the identical command works for other people. It's probably related to the common practice of blocking port 8000 on the client side, which is done by many institutions for security reasons. Below is an example of how to check out the pvDataJava Mercurial repository, using the hg unix command via anonymous access:
% git clone https://github.com/epics-base/pvDataJava.git
Alternatively use the ssh URI below for "non-annonymous" access. Permissions are presently set such that only epics-pvdata members can check out or push commits, so contact any one of the participants to get added first:
% git clone https://github.com/epics-base/pvDataJava.git
See the Cheatsheet for Passwordless SSH Access to SourceForge for EPICS V4 Development if you'd like to set up your sourceforge account so that SSH operations can proceed without a password. Of course, for command line development as is described here, passwordless ssh authentication to sourceForge Mercurial is not necessary, it's just nice. But for Eclipse development it is important because of problems in Eclipse's Mercurial tools when they come to needing a password from the user.
Having installed mercurial (hg command) and decided on the URL scheme you're going to use (HTTP or SSH), now download the source. You'll create a local Mercurial "repository" for each EPICS V4 module you get. For references, see in particular [hg repo init].
First, create a root directory in which to house your repo directories, and hg init, Eg:
% pwd /Users/greg/Development/epicsV4/ % mkdir ev4hg % cd ev4hg % hg init <- this creates a .hg file in ev4hg
To download the source using Mercurial, use an "hg clone" executed while in the directory you created and in which you executed the "hg init", i.e. "ev4hg" in the example above. You will need at least the 3 core "normative" module Java implementations, as above. The "common" repo is useful too, for setup files etc:
[from ev4hg/ directory in this example, created above] % git clone https://github.com/epics-base/pvDataJava.git % git clone https://github.com/epics-base/pvAccessJava.git % git clone https://github.com/epics-base/pvIOCJava.git % git clone https://github.com/epics-base/common.git
After each of these, you should see 9 or 10 lines, ending in a line like the following:
"842 files updated, 0 files merged, 0 files removed, 0 files unresolved"
In addition to the EPICS V4 core, you may want the Java examples, or "alpha" level software.
% git clone https://github.com/epics-base/exampleJava.git % git clone https://github.com/epics-base/alpha.git
The build dependencies of the EPICS v4 core modules are:
CAJ and JCA's jars will be downloaded by maven during your build below; no need to get them manually, as long as maven can see SourceForge's web site during the build.
When building you will see warnings, but should not see any errors if the build is successful. Warnings come from both source compiles and many from javadoc compiles. At the end of each "mvn compile install" process, you should see:
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
The build itself is handled by Maven for Java builds. The actions for the build of each EPICS V4 module is handled by its own pom.xml file, there is no global one. So, the build process involves "cd" ing to the cloned repository (as they're called in mercurial speak) of each one of the 3 core modules, and issuing "mvn compile install" in each one. Start with pvDataJava since it has no dependencies, then pvAccessJava, then pvIOCJava.
If this is really the first maven build you've done, the first mvn compile line below will result in 2 things; Firstly, it will create your local "m2 repo" (in ~/.m2 by default). Then it will initiate many downloads from sourceForge, plus from Maven and prerequisites of Maven. But if you chose this path to EPICS v4, you probably knew that.]
% pwd /Users/greg/Development/epicsV4/ev4hg % cd pvDataJava % mvn compile install % cd ../pvAccessJava % mvn compile install -Dmaven.test.skip=true % cd ../pvIOCJava % mvn compile install -DJAVAIOC=$PWD -Dmaven.test.skip=true
The above 3 complete the build of the EPICS v4 core. To compile and install EPICS v4 examples as well, if you cloned examplesJava above, then build it with the following:
cd to your exampleJava, probably cd ../examplesJava
% mvn compile install
The outcome of these builds is that you should see all of the build products in your local Maven repository (~/.m2 by default).
The minimum EPICS V4 runtime is composed of only 3 Jars, for the core, plus
2 if you want to access EPICS V3 IOCs, so you can
check the outcome of the builds with the find command below, to verify that from the 100s now
in ~/.m2/
, you have the few you really need. Again, actual
version tags, i.e. "1.0-SNAPSHOT" in the example below, will vary as EPICS V4 matures:
% find ~/.m2 -name "pv*SNAPSHOT.jar" -o -name "*caj*.jar" -o -name "*jca*.jar" /Users/greg/.m2/repository/epics/caj/1.1.8/caj-1.1.8.jar /Users/greg/.m2/repository/epics/jca/2.3.5/jca-2.3.5.jar /Users/greg/.m2/repository/epics/pvAccess/1.0-SNAPSHOT/pvAccess-1.0-SNAPSHOT.jar /Users/greg/.m2/repository/epics/pvData/1.0-SNAPSHOT/pvData-1.0-SNAPSHOT.jar /Users/greg/.m2/repository/epics/pvIOC/1.0-SNAPSHOT/pvIOC-1.0-SNAPSHOT.jar
Note that the results gave you not only jar files under ~/.m2/
, but the sources and
javadoc jars too (in the Maven standard naming).
The above completes the build of EPICS V4 locally. To use it, you would write code that compiles and executes against the jar files above.
To use or develop these, the steps might be:
For Java client and server examples, at the time of writing, see the source code in the examplesJava module. You can find this on the epics-pvdata web site [ev4examples]. At the time of writing, examplesJava contains 2 examples, both of RPC style servers (that is, pass arguments to EPICS V4 server, get data back dependent on the arguments).
In particular, you may like to start with the, helloWorld example service. Start with its HELLOWORLD_README.txt
The rdbService example is a complete functional server for accessing SQL databases such Oracle via an EPICS V4 server, and returning the resulting table ResultSet data back to an EPICS V4 client. rdbService illustrates:
channelRPC
functionality of EPICSV4 This section is on software development, with and of, the C++ implementation of EPICS V4. For Java development, see above.
[Check this, may want to say it's on acq and build, then split into Timo's example and channelRPC example] This section guides you through the process of acquiring the source, building, and running an EPICS V3 IOC with a pvAccess server included. That is, you can use EPICS V4 client tools to access the PVs.
The example EPICS V4 IOC included in the Ev4 download includes a number of channels of different types: scalar/array/enum/calc etc, and data types: byte/short/longout/float for scalars, CHAR/SHORT/LONG/FLOAT/DOUBLE for arrays, plus string arrays. A channel list is attached below. You can load your own channels by adding db or template/substitution files and modifying the startup commands accordingly in your st.cmd file.
The C++ implementations of the EPICS V4 core modules, pvDataCPP, pvAccessCPP,
pvIOCCPP, use the EPICS V3 build system, based on unix make
(in contrast to the Java implementation, which
uses Maven). A basic understanding of the EPICS V3 make system is helpful,
although the following instructions do not assume this knowledge.
You will need the Mercurial client tools, as described above.
An installed version of EPICS V3, >= 3.14.12.
Decide where you want to place your code. If you have not already done so create the Mercurial repo home directory there. Go to that directory and check out the 3 core EPICS V4 modules source code with a Mercurial clone [again this example shows using the SSH URL in this example, you may use an HTTP URL instead, see Java example above for more]:
[from ev4hg/ directory in this example, created above] % git clone https://github.com/epics-base/pvDataCPP.git % git clone https://github.com/epics-base/pvAccessCPP.git % git clone https://github.com/epics-base/pvIOCCPP.git
The 3 core EPICS V4 modules have build interdependencies as detailed above, which require that they are built in the order pvDataCPP, pvAccessCPP, pvIOCCPP.
Build pvData. cd pvDataCPP
, and create a configure/RELEASE.local
file. (This file is included from configure/RELEASE with the line -include $(TOP)/configure/RELEASE.local
.) In it
set EPICS_BASE to point to your EPICS release.
If you downloaded the tarball from the Sourceforge page instead of cloning from Mercurial, you can use the RELEASE.local.example in the root directory, but drop the PVACCESS and PVDATA definitions in that file. They will create conflicts and the build will fail.
Be sure that you have at least the
release 3.14.12. Trying to build with an earlier one is basically a waste of time.
You may also need to edit the CONFIG_SITE file to include a line that defines CROSS_COMPILER_TARGET_ARCHS
to be an empty string, if you have troubles building it for other than the host architecture. At the time of writing, building for vxWorks had problems.
% make
pvData should then build without errors. You get a heap of warnings but they can be ignored.
cd pvAccessCPP
, and create the
pvAccess/configure/RELEASE.local
file.
Add the locations of EPICS_BASE and PVDATA appropriately. Edit CONFIG_SITE if needed.
% make
It should build without errors. Again with the warnings! [yea, this must be fixed]
cd pvIOCCPP
, and add the
configure/RELEASE.local
file.
Add the locations of EPICS_BASE, PVACCESS and PVDATA appropriately. Edit CONFIG_SITE if needed.
% make
It should build without errors. Outstanding!
This completes the C++ build of EPICS V4.
For an example of using the EPICS V4 C++ implementation to create a middleware service equivalent to the Java example given above, see the pvIOCCPP Getting Started document [bib:pvIOCCPP].
The remainder of this section describes an example of the use of the C++ implementation of EPICS V4 to access EPICS V3 PVs. That is, a version 3 IOC makes the values of V3 channels available through pvAccess to EPICS V4 pvAccess clients.
cd
to the example directory TODO: Add in which
repo, pvDataCPP?cd
to the "example" directory that was extractedepicsEnvSet("ARCH","linux-x86") epicsEnvSet("IOC","iocexample") epicsEnvSet("TOP","/home/example/epics4/pvIOCCPP/example/example/pvIOC") epicsEnvSet("EPICS_BASE","/usr/local/epics/base-3.14.12") epicsEnvSet("PVDATA","/home/example/epics4/pvDataCPP") epicsEnvSet("PVACCESS","/home/example/epics4/pvAccessCPP")
% makeExample should compile without errors.
% cd iocBoot/iocexample % ../../bin/<arch>/example st.cmd("arch" refers to the architecture for which you have built, e.g. linux-x86)
example/pvIOC/db/
. You can add db files, templates etc. there.
Edit the st.cmd to make it load your EPICS databases.
About the directory structures
pvData: bin - ? configure - ? lib - ? include - ? documentation - ? pvDataApp - source code testApp - test code. [TODO How much of this is generally useful?] test - [TODO: looks like test scripts. Could these be described somehow]
pvAccessCPP bin configure lib include documentation pvAccessApp testApp - test code scripts
pvIOCCPP bin configure db dbd documentation example include iocBoot lib pvIOCApp testApp
[TODO: Are the QtC-xxx files somehow usable (with Qt Creator or similar) or is this just leftovers from a try?
sample output from my test to run the IOC.
bash-3.2$ ../../bin/SL5-x86/example st.cmd < envPaths epicsEnvSet("ARCH","SL5-x86") epicsEnvSet("IOC","iocexample") epicsEnvSet("TOP","/home/scratch/korhonen/EPICSv4/testbuild/pvIOCCPP/example/example/pvIOC") epicsEnvSet("EPICS_BASE","/usr/local/epics/base-3.14.12") epicsEnvSet("PVDATA","/home/scratch/korhonen/EPICSv4/testbuild/pvDataCPP") epicsEnvSet("PVACCESS","/home/scratch/korhonen/EPICSv4/testbuild/pvAccessCPP") cd /home/scratch/korhonen/EPICSv4/testbuild/pvIOCCPP/example/example/pvIOC ## Register all support components dbLoadDatabase("dbd/example.dbd") example_registerRecordDeviceDriver(pdbbase) ## Load record instances dbLoadRecords("db/dbScalar.db","name=byte01,type=byte") dbLoadRecords("db/dbScalar.db","name=short01,type=short") dbLoadRecords("db/dbScalar.db","name=int01,type=longout") Record "int01" does not have a field "PREC" Error at or before ")" in file "db/dbScalar.db" line 3 Can't set "int01.DRVH" to "9.9" Error at or before ")" in file "db/dbScalar.db" line 7 Can't set "int01.DRVL" to "-0.1" Error at or before ")" in file "db/dbScalar.db" line 8 dbLoadRecords("db/dbScalar.db","name=float01,type=float") dbLoadRecords("db/dbScalar.db","name=double01,type=ao") dbLoadRecords("db/dbArray.db","name=byteArray01,type=CHAR") dbLoadRecords("db/dbArray.db","name=shortArray01,type=SHORT") dbLoadRecords("db/dbArray.db","name=intArray01,type=LONG") dbLoadRecords("db/dbArray.db","name=floatArray01,type=FLOAT") dbLoadRecords("db/dbArray.db","name=doubleArray01,type=DOUBLE") dbLoadRecords("db/dbString.db","name=string01") dbLoadRecords("db/dbStringArray.db","name=stringArray01") dbLoadRecords("db/dbEnum.db","name=enum01") dbLoadRecords("db/dbCounter.db","name=counter01"); dbLoadRecords("db/dbScalar.db","name=byte02,type=byte") dbLoadRecords("db/dbScalar.db","name=short02,type=short") dbLoadRecords("db/dbScalar.db","name=int02,type=longout") Record "int02" does not have a field "PREC" Error at or before ")" in file "db/dbScalar.db" line 3 Can't set "int02.DRVH" to "9.9" Error at or before ")" in file "db/dbScalar.db" line 7 Can't set "int02.DRVL" to "-0.1" Error at or before ")" in file "db/dbScalar.db" line 8 dbLoadRecords("db/dbScalar.db","name=float02,type=float") dbLoadRecords("db/dbScalar.db","name=double02,type=ao") dbLoadRecords("db/dbArray.db","name=byteArray02,type=CHAR") dbLoadRecords("db/dbArray.db","name=shortArray02,type=SHORT") dbLoadRecords("db/dbArray.db","name=intArray02,type=LONG") dbLoadRecords("db/dbArray.db","name=floatArray02,type=FLOAT") dbLoadRecords("db/dbArray.db","name=doubleArray02,type=DOUBLE") dbLoadRecords("db/dbString.db","name=string02") dbLoadRecords("db/dbStringArray.db","name=stringArray02") dbLoadRecords("db/dbEnum.db","name=enum02") dbLoadRecords("db/dbCounter.db","name=counter02"); dbLoadRecords("db/dbScalar.db","name=byte03,type=byte") dbLoadRecords("db/dbScalar.db","name=short03,type=short") dbLoadRecords("db/dbScalar.db","name=int03,type=longout") Record "int03" does not have a field "PREC" Error at or before ")" in file "db/dbScalar.db" line 3 Can't set "int03.DRVH" to "9.9" Error at or before ")" in file "db/dbScalar.db" line 7 Can't set "int03.DRVL" to "-0.1" Error at or before ")" in file "db/dbScalar.db" line 8 dbLoadRecords("db/dbScalar.db","name=float03,type=float") dbLoadRecords("db/dbScalar.db","name=double03,type=ao") dbLoadRecords("db/dbArray.db","name=byteArray03,type=CHAR") dbLoadRecords("db/dbArray.db","name=shortArray03,type=SHORT") dbLoadRecords("db/dbArray.db","name=intArray03,type=LONG") dbLoadRecords("db/dbArray.db","name=floatArray03,type=FLOAT") dbLoadRecords("db/dbArray.db","name=doubleArray03,type=DOUBLE") dbLoadRecords("db/dbString.db","name=string03") dbLoadRecords("db/dbStringArray.db","name=stringArray03") dbLoadRecords("db/dbEnum.db","name=enum03") dbLoadRecords("db/dbCounter.db","name=counter03"); cd /home/scratch/korhonen/EPICSv4/testbuild/pvIOCCPP/example/example/pvIOC/iocBoot/iocexample iocInit() Starting iocInit ############################################################################ ## EPICS R<IP_ADDRESS> $Date: 2011/05/18 14:43:13 $ ## EPICS Base built Oct 18 2011 ############################################################################ iocRun: All initialization complete epicsThreadSleep(1.0) startV3Channel epicsThreadSleep(1.0) VERSION : CA Server v0.9.0 PROVIDER_NAMES : v3Channel BEACON_ADDR_LIST : AUTO_BEACON_ADDR_LIST : 1 BEACON_PERIOD : 15 BROADCAST_PORT : 5067 SERVER_PORT : 5066 RCV_BUFFER_SIZE : 16384 IGNORE_ADDR_LIST: STATE : INITIALIZED startExampleChannel exampleChannel startPVServiceChannel 2011-11-11T16:29:56.715 Using dynamically assigned TCP port 39949. VERSION : CA Server v0.9.0 PROVIDER_NAMES : pvService BEACON_ADDR_LIST : AUTO_BEACON_ADDR_LIST : 1 BEACON_PERIOD : 15 BROADCAST_PORT : 5067 SERVER_PORT : 39949 RCV_BUFFER_SIZE : 16384 IGNORE_ADDR_LIST: STATE : INITIALIZED epics> (out of the box) record list: epics> dbl double01 double02 double03 counter01 counter02 counter03 int01 int02 int03 enum01 enum02 enum03 string01 string02 string03 byteArray01 byteArray02 byteArray03 doubleArray01 doubleArray02 doubleArray03 floatArray01 floatArray02 floatArray03 intArray01 intArray02 intArray03 shortArray01 shortArray02 shortArray03 stringArray01 stringArray02 stringArray03 byte01 byte02 byte03 short01 short02 short03 float01 float02 float03 epics>Note: the errors in the above output like
Record "int03" does not have a field "PREC"are due to the way the example records are loaded. They can be safely ignored in this case.


By @astronomyblog & @LoveGraphs. Stats last updated 28 December 2017.
It seems there may have been at least 81 shows and 406 listed appearances. With 5 people per show, iPlayer and @bbcbreakthenews have 0% more appearances listed than required (and probably a similar percent of people) perhaps due to listing special guests. The host/captains/regulars have included Des Clarke (Host × 77), Susan Calman (Host × 3, Panellist × 5), Kirsty Wark (Host × 1, Panellist × 2).
Total appearances:
Guest appearances i.e. ignoring the host/captains/regulars:
All people:
Guests i.e. ignoring the host/captains/regulars:
Last updated: 2017/12/28


Credit Calculator
First Name
Last Name
Age
Home Ownership (don't check if rent, etc.)
Income (per Annum)
Loan Amount


This message was intended for {current_user.first_name}
{current_user.last_name}.
Redistribution of this e-mail is a direct violation of PowellTech
Standard Operating Procedure in which consequences are at the
discretion of PowellTech Adminstration.
Copyright © 2019 Powell Industries
All Rights Reserved.


Global Functions in Global Namespace C++
in Sourcefile socket.h
- osl_acceptConnectionOnSocket
- extern "C"
oslSocket osl_acceptConnectionOnSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Waits for an ingoing connection on the socket.
This call blocks if there is no incoming connection present.
- Parameters
| pAddr |
if pAddr is != 0, the peers address is returned.
|
- Return
- 0 if the accept-call failed, otherwise you get a socket
representing the new connection.
- osl_acquireSocket
- extern "C"
void osl_acquireSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- increases the refcount of the socket handle by one
- osl_addToSocketSet
- extern "C"
void osl_addToSocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Adds a socket to the set.
- Parameters
| Set |
the set were the socket is added.
|
| Socket |
the socket to be added.
|
- osl_bindAddrToSocket
- extern "C"
sal_Bool osl_bindAddrToSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Binds the given address to the socket.
- Parameters
-
- Return
sal_False
if the bind failed, sal_True
if successful.
- See Also
- osl_getLastSocketError()
- osl_clearSocketSet
- extern "C"
void osl_clearSocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Clears the set from all previously added sockets.
- Parameters
| Set |
the set to be cleared.
|
- osl_closeSocket
- extern "C"
void osl_closeSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Closes the socket terminating any ongoing dataflow.
- osl_connectSocketTo
- extern "C"
oslSocketResult osl_connectSocketTo(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Connects the socket to the given address.
- Parameters
| Socket |
a bound socket.
|
| Addr |
the peer address.
|
| pTimeout |
Timeout value or NULL for blocking.
|
- Return
osl_Socket_Ok
on successful connection,
osl_Socket_TimedOut
if operation timed out,
osl_Socket_Interrupted
if operation was interrupted
osl_Socket_Error
if the connection failed.
- osl_copyHostAddr
- extern "C"
oslHostAddr osl_copyHostAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Create a copy of the given Addr.
- Return
- The copied address or 0 upon failure.
- osl_copySocketAddr
- extern "C"
oslSocketAddr osl_copySocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Creates a new SocketAddress and fills it from Addr.
- osl_createEmptySocketAddr
- extern "C"
oslSocketAddr osl_createEmptySocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Creates a socket-address for the given family.
- Parameters
| family |
If family == osl_Socket_FamilyInet the address is
set to INADDR_ANY port 0.
|
- Return
- 0 if address could not be created.
- osl_createHostAddr
- extern "C"
oslHostAddr osl_createHostAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Create an oslHostAddr from given hostname and socket address.
- Parameters
| strHostname |
The hostname to be stored.
|
| Addr |
The socket address to be stored.
|
- Return
- The created address or 0 upon failure.
- osl_createHostAddrByAddr
- extern "C"
oslHostAddr osl_createHostAddrByAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Create an oslHostAddr by reverse resolution of the given Addr.
Successful name resolution should result in the fully qualified
domain name (FQDN) and it's address as hostname and socket address
members of the resulting oslHostAddr.
- Parameters
| Addr |
The socket address to be reverse resolved.
|
- Return
- The resulting address or 0 upon failure.
- osl_createHostAddrByName
- extern "C"
oslHostAddr osl_createHostAddrByName(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Create an oslHostAddr by resolving the given strHostname.
Successful name resolution should result in the fully qualified
domain name (FQDN) and it's address as hostname and socket address
members of the resulting oslHostAddr.
- Parameters
| strHostname |
The hostname to be resolved.
|
- Return
- The resulting address or 0 upon failure.
- osl_createInetBroadcastAddr
- extern "C"
oslSocketAddr osl_createInetBroadcastAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Create an internet address usable for sending broadcast datagrams.
To limit the broadcast to your subnet, pass your hosts IP address
in dotted decimal notation as first argument.
- See Also
- osl_sendToSocket()
oslSocketAddr
- Parameters
| strDottedAddr |
dotted decimal internet address, may be 0.
|
| Port |
port number in host byte order.
|
- Return
- 0 if address could not be created.
- osl_createInetSocketAddr
- extern "C"
oslSocketAddr osl_createInetSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Create an internet-address, consisting of hostaddress and port.
We interpret strDottedAddr as a dotted-decimal inet-addr
(e.g. "<IP_ADDRESS>").
- Parameters
| strDottedAddr |
String with dotted address.
|
| Port |
portnumber in host byte order.
|
- Return
- 0 if address could not be created.
- osl_createSocket
- extern "C"
oslSocket osl_createSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Create a socket of the specified Family and Type. The semantic of
the Protocol parameter depends on the given family and type.
- Return
- 0 if socket could not be created, otherwise you get a handle
to the allocated socket-datastructure.
- osl_createSocketSet
- extern "C"
oslSocketSet osl_createSocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Creates a set of sockets to be used with osl_demultiplexSocketEvents().
- Return
- A oslSocketSet or 0 if creation failed.
- osl_demultiplexSocketEvents
- extern "C"
sal_Int32 osl_demultiplexSocketEvents(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Checks multiple sockets for events.
- Parameters
| IncomingSet |
Checks the sockets in this set
for incoming events (read, accept). If the set is 0,
it is just skipped.
|
| OutgoingSet |
Checks the sockets in this set
for outgoing events (write, connect). If the set is 0,
it is just skipped.
|
| OutOfBandSet |
Checks the sockets in this set
for out-of-band events. If the set is 0, it is just skipped.
|
| msTimeout |
Number of milliseconds to wait for events. If
msTimeout is -1, the call will block until an event or an error
occurs.
|
- Return
- -1 on errors, otherwise the number of sockets with
pending events. In case of timeout, the number might be 0.
- osl_destroyHostAddr
- extern "C"
void osl_destroyHostAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Frees all resources allocated by Addr. The handle Addr must not
be used after the call anymore.
- osl_destroySocketAddr
- extern "C"
void osl_destroySocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Frees all resources allocated by Addr. The handle Addr must not
be used after the call anymore.
- osl_destroySocketSet
- extern "C"
void osl_destroySocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Destroys a oslSocketSet.
- osl_enableNonBlockingMode
- extern "C"
sal_Bool osl_enableNonBlockingMode(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Enables/disables non-blocking-mode of the socket.
- Parameters
| Socket |
Change mode for this socket.
|
| On |
sal_True enables non-blocking mode,
sal_False disables non-blocking mode.
|
- Return
sal_True
if mode could be changed.
- osl_getAddrOfSocketAddr
- extern "C"
oslSocketResult osl_getAddrOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Returns the addr field in the struct sockaddr.
- Parameters
| ppByteSeq |
out parameter. After the call, *ppByteSeq contains the ipadrress
in network byteorder. *ppByteSeq may be 0 in case of an invalid socket handle.
|
- Return
osl_Socket_Ok
or osl_Socket_Error
- osl_getDottedInetAddrOfSocketAddr
- extern "C"
oslSocketResult osl_getDottedInetAddrOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Gets the address in dotted decimal format.
- Parameters
| strDottedInetAddr |
out-parameter. Contains the dotted decimal address
(e.g. <IP_ADDRESS>) represented by the address.
If the address is invalid or not of type osl_Socket_FamilyInet ,
it returns 0.
|
- Return
osl_Socket_Ok
or osl_Socket_Error
- osl_getFamilyOfSocketAddr
- extern "C"
oslAddrFamily osl_getFamilyOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Retrieves the address-family from the Addr.
- Return
- the family of the socket-address.
In case of an unknown family you get
osl_Socket_FamilyInvalid
.
- osl_getHostnameOfHostAddr
- extern "C"
void osl_getHostnameOfHostAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Get the hostname member of Addr.
- Return
- The hostname or 0 upon failure.
- osl_getHostnameOfSocketAddr
- extern "C"
oslSocketResult osl_getHostnameOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Returns the hostname represented by Addr.
- Parameters
| strHostname |
out-parameter. The hostname represented by the address. If
there is no hostname to be found, it returns 0.
|
- osl_getInetPortOfSocketAddr
- extern "C"
sal_Int32 osl_getInetPortOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Retrieves the internet port-number of Addr.
- Return
- the port-number of the address in host-byte order. If Addr
is not an address of type
osl_Socket_FamilyInet
, it returns OSL_INVALID_PORT
- osl_getLastSocketError
- extern "C"
oslSocketError osl_getLastSocketError(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- returns a constant decribing the last error for the socket system.
- Return
osl_Socket_E_NONE
if no error occured,
osl_invalid_SocketError
if an unknown (unmapped)
error occured, otherwise an enum describing the error.
- osl_getLastSocketErrorDescription
- extern "C"
void osl_getLastSocketErrorDescription(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- returns a string which describes the last socket error.
- Parameters
| strError |
out-parameter. The string that receives the error message.
|
- osl_getLocalAddrOfSocket
- extern "C"
oslSocketAddr osl_getLocalAddrOfSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Retrieves the Address of the local end of the socket.
Note that a socket must be bound or connected before
a vaild address can be returned.
- Return
- 0 if socket-address could not be created, otherwise you get
the created Socket-Address.
- osl_getLocalHostname
- extern "C"
oslSocketResult osl_getLocalHostname(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Retrieve this machines hostname.
May not always be a fully qualified domain name (FQDN).
- Parameters
| strLocalHostname |
out-parameter. The string that receives the local host name.
|
- Return
sal_True
upon success, sal_False
otherwise.
- osl_getPeerAddrOfSocket
- extern "C"
oslSocketAddr osl_getPeerAddrOfSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Retrieves the Address of the remote end of the socket.
Note that a socket must be connected before
a vaild address can be returned.
- Return
- 0 if socket-address could not be created, otherwise you get
the created Socket-Address.
- osl_getServicePort
- extern "C"
sal_Int32 osl_getServicePort(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Looks up the port-number designated to the specified service/protocol-pair.
(e.g. "ftp" "tcp").
- Return
- OSL_INVALID_PORT if no appropriate entry was found, otherwise the port-number.
- osl_getSocketAddrOfHostAddr
- extern "C"
oslSocketAddr osl_getSocketAddrOfHostAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Get the socket address member of Addr.
- Return
- The socket address or 0 upon failure.
- osl_getSocketOption
- extern "C"
sal_Int32 osl_getSocketOption(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Retrieves attributes associated with the socket.
- Parameters
| Socket |
is the socket to query.
|
| Level |
selects the level for which an option should be queried.
Valid values are:
- osl_sol_socket: Socket Level
- osl_sol_tcp: Level of Transmission Control Protocol
|
| Option |
denotes the option to query.
Valid values (depending on the Level) are:
-
osl_Socket_Option_Debug
(sal_Bool) Socket debug flag 1 = enabled, 0 = disabled.
-
osl_Socket_OptionAcceptConn
-
osl_Socket_OptionReuseAddr
(sal_Bool) Allows the socket to be bound to an address that is
already in use.
1 = multiple bound allowed, 0 = no multiple bounds allowed
osl_Socket_OptionKeepAlive
(sal_Bool) Keepalive packets are sent by the underlying socket.
1 = enabled, 0 = disabled
osl_Socket_OptionDontRoute
(sal_Bool) Do not route: send directly to interface.
1 = do not route , 0 = routing possible
osl_Socket_OptionBroadcast
(sal_Bool) Transmission of broadcast messages are allowed on the socket.
1 = transmission allowed, 0 = transmission disallowed
osl_Socket_OptionUseLoopback
osl_Socket_OptionLinger
(sal_Int32) Linger on close if unsent data is present.
0 = linger is off, > 0 = timeout in seconds.
osl_Socket_OptionOOBinLine
osl_Socket_OptionSndBuf
(sal_Int32) Size of the send buffer in bytes. Data is sent after
SndTimeo or when the buffer is full. This allows faster writing
to the socket.
osl_Socket_OptionRcvBuf
(sal_Int32) Size of the receive buffer in bytes. Data is sent after
SndTimeo or when the buffer is full. This allows faster writing
to the socket and larger packet sizes.
osl_Socket_OptionSndLowat
osl_Socket_OptionRcvLowat
osl_Socket_OptionSndTimeo
(sal_Int32) Data is sent after this timeout. This allows gathering
of data to send larger packages but increases latency times.
osl_Socket_OptionRcvTimeo
osl_Socket_OptionError
osl_Socket_OptionType
osl_Socket_OptionTcpNoDelay
Disables the Nagle algorithm for send coalescing. (Do not
collect data until a packet is full, instead send immediatly.
This increases network traffic but might improve latency-times.)
1 = disables the algorithm, 0 = keeps it enabled.
If not above mentioned otherwise, the options are only valid for
level osl_Socket_LevelSocket .
|
| pBuffer |
Pointer to a buffer large enough to take the desired
attribute-value.
|
| BufferSize |
contains the length of the Buffer.
|
- Return
- -1 if an error occured or else the size of the data copied into
pBuffer.
- See Also
- osl_setSocketOption()
- osl_getSocketType
- extern "C"
oslSocketType osl_getSocketType(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Queries the socket for its type.
- Return
- one of:
- osl_Socket_TypeStream
- osl_Socket_TypeDgram
- osl_Socket_TypeRaw
- osl_Socket_TypeRdm
- osl_Socket_TypeSeqPacket
- osl_invalid_SocketType, if an error occured
- osl_isEqualSocketAddr
- extern "C"
sal_Bool osl_isEqualSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Compares the values of two SocketAddresses.
- Return
sal_True
if both addresses denote the same socket address,
sal_False
otherwise.
- osl_isExceptionPending
- extern "C"
sal_Bool osl_isExceptionPending(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Checks if a request for out-of-band data will block.
You can specify a timeout-value in seconds/microseconds that denotes
how long the operation will block if the Socket has no pending OOB data.
- Return
sal_True
if OOB-request operations (recv with appropriate flags)
on the Socket will NOT block; sal_False
if it would block or if an error occured.
- Parameters
| Socket |
the Socket to perfom the operation on.
|
| pTimeout |
if NULL, the operation will block without a timeout.
|
- osl_isInSocketSet
- extern "C"
sal_Bool osl_isInSocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Checks if socket is in the set.
- Parameters
| Set |
the set to be checked.
|
| Socket |
check if this socket is in the set.
|
- Return
sal_True
if socket is in the set.
- osl_isNonBlockingMode
- extern "C"
sal_Bool osl_isNonBlockingMode(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Query state of non-blocking-mode of the socket.
- Parameters
| Socket |
Query mode for this socket.
|
- Return
- True if non-blocking-mode is enabled.
- osl_isReceiveReady
- extern "C"
sal_Bool osl_isReceiveReady(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Checks if read operations will block.
- Description
- You can specify a timeout-value in seconds/microseconds that denotes
how long the operation will block if the Socket is not ready.
- Return
sal_True
if read operations (recv, recvFrom, accept) on the Socket
will NOT block; sal_False
if it would block or if an error occured.
- Parameters
| Socket |
the Socket to perfom the operation on.
|
| pTimeout |
if NULL, the operation will block without a timeout.
|
- osl_isSendReady
- extern "C"
sal_Bool osl_isSendReady(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Checks if send operations will block.
You can specify a timeout-value in seconds/microseconds that denotes
how long the operation will block if the Socket is not ready.
- Return
sal_True
if send operations (send, sendTo) on the Socket
will NOT block; sal_False
if it would block or if an error occured.
- Parameters
| Socket |
the Socket to perfom the operation on.
|
| pTimeout |
if NULL, the operation will block without a timeout. Otherwise
the time define by timeout value.
|
- osl_listenOnSocket
- extern "C"
sal_Bool osl_listenOnSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Prepares the socket to act as an acceptor of incoming connections.
You should call "listen" before you use "accept".
- Parameters
| MaxPendingConnections |
denotes the length of the queue of
pending connections for this socket. If MaxPendingConnections is
-1, the systems default value will be used (Usually 5).
|
- Return
sal_False
if the listen failed.
- osl_readSocket
- extern "C"
sal_Int32 osl_readSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Retrieves n bytes from the stream and copies them into pBuffer.
The function avoids incomplete reads due to packet boundaries.
- Parameters
| pBuffer |
receives the read data.
|
| n |
the number of bytes to read. pBuffer must be large enough
to hold the n bytes!
|
- Return
- the number of read bytes. The number will only be smaller than
n if an exceptional condition (e.g. connection closed) occurs.
- osl_receiveFromSocket
- extern "C"
sal_Int32 osl_receiveFromSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Tries to receives BufferSize data from the (usually unconnected)
(datagram-)socket, if no error occurs.
- Parameters
| Socket |
A bound socket to be used to listen for a datagram.
|
| pSenderAddr |
An pointer to a created oslSocketAddr handle
or to a null handle. After the call, it will contain the constructed
oslSocketAddr of the datagrams sender. If pSenderAddr itself is 0,
it is ignored.
|
| pBuffer |
Points to a buffer that will be filled with the received
datagram.
|
| BufferSize |
The size of pBuffer.
|
| Flag |
Modifier for the call. Valid values are:
osl_Socket_MsgNormal
osl_Socket_MsgOOB
osl_Socket_MsgPeek
osl_Socket_MsgDontRoute
osl_Socket_MsgMaxIOVLen
|
- Return
- the number of received bytes.
- osl_receiveSocket
- extern "C"
sal_Int32 osl_receiveSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Tries to receive BytesToRead data from the connected socket,
if no error occurs. Note that incomplete recvs due to
packet boundaries may occur.
- Parameters
| Socket |
A connected socket to be used to listen on.
|
| pBuffer |
Points to a buffer that will be filled with the received
data.
|
| BytesToRead |
The number of bytes to read. pBuffer must have at least
this size.
|
| Flag |
Modifier for the call. Valid values are:
osl_Socket_MsgNormal
osl_Socket_MsgOOB
osl_Socket_MsgPeek
osl_Socket_MsgDontRoute
osl_Socket_MsgMaxIOVLen
|
- Return
- the number of received bytes.
- osl_releaseSocket
- extern "C"
void osl_releaseSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- decreases the refcount of the socket handle by one.
- Description
- If the refcount drops to zero, the underlying socket handle
is destroyed and becomes invalid.
- osl_removeFromSocketSet
- extern "C"
void osl_removeFromSocketSet(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Removes a socket from the set.
- Parameters
| Set |
the set were the socket is removed from.
|
| Socket |
the socket to be removed.
|
- osl_resolveHostname
- extern "C"
oslSocketAddr osl_resolveHostname(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Uses the systems name-service interface to find an address for strHostname.
- Parameters
| strHostname |
The name for which you search for an address.
|
- Return
- The desired address if one could be found, otherwise 0.
Don't forget to destroy the address if you don't need it any longer.
- osl_sendSocket
- extern "C"
sal_Int32 osl_sendSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Tries to send BytesToSend data from the connected socket,
if no error occurs.
- Parameters
| Socket |
A connected socket.
|
| pBuffer |
Points to a buffer that contains the send-data.
|
| BytesToSend |
The number of bytes to send. pBuffer must have at least
this size.
|
| Flag |
Modifier for the call. Valid values are:
osl_Socket_MsgNormal
osl_Socket_MsgOOB
osl_Socket_MsgPeek
osl_Socket_MsgDontRoute
osl_Socket_MsgMaxIOVLen
|
- Return
- the number of transfered bytes.
- osl_sendToSocket
- extern "C"
sal_Int32 osl_sendToSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Description
- Tries to send one datagram with BytesToSend data to the given ReceiverAddr
via the (implicitly unconnected) datagram-socket.
Since there is only sent one packet, the function sends the data always complete
even with incomplete packet boundaries.
- Parameters
| Socket |
A bound or unbound socket. Socket will be bound
after a successful call.
|
| ReceiverAddr |
An initialized oslSocketAddress that contains
the destination address for this send.
|
| pBuffer |
Points to a buffer that contains the send-data.
|
| BytesToSend |
The number of bytes to send. pBuffer must have at least
this size.
|
| Flag |
Modifier for the call. Valid values are:
osl_Socket_MsgNormal
osl_Socket_MsgOOB
osl_Socket_MsgPeek
osl_Socket_MsgDontRoute
osl_Socket_MsgMaxIOVLen
|
- Return
- the number of transfered bytes.
- osl_setAddrOfSocketAddr
- extern "C"
oslSocketResult osl_setAddrOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Sets the addr field in the struct sockaddr with pByteSeq. pByteSeq must be in network byte order.
- osl_setInetPortOfSocketAddr
- extern "C"
sal_Bool osl_setInetPortOfSocketAddr(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Sets the Port of Addr.
- Parameters
| Port |
is expected in host byte-order.
|
- Return
sal_False
if Addr is not an inet-addr.
- osl_setSocketOption
- extern "C"
sal_Bool osl_setSocketOption(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Sets the sockets attributes.
- Parameters
| Socket |
is the socket to modify.
|
| Level |
selects the level for which an option should be changed.
Valid values are:
- osl_sol_socket: Socket Level
- osl_sol_tcp: Level of Transmission Control Protocol
|
| Option |
denotes the option to modify. See osl_setSocketOption() for more
details.
|
| pBuffer |
Pointer to a Buffer which contains the attribute-value.
|
| BufferSize |
contains the length of the Buffer.
|
- Return
- True if the option could be changed.
- osl_shutdownSocket
- extern "C"
sal_Bool osl_shutdownSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Shuts down communication on a connected socket.
- Parameters
| Direction |
denotes which end of the socket
should be closed:
-
osl_Socket_DirRead closes read operations.
-
osl_Socket_DirReadWrite closes write operations.
-
osl_Socket_DirWrite closes read and write operations.
|
- Return
sal_True
if the socket could be closed down.
- osl_writeSocket
- extern "C"
sal_Int32 osl_writeSocket(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
YES |
- Summary
- Writes n bytes from pBuffer to the stream. The method avoids
incomplete writes due to packet boundaries.
- Parameters
| pBuffer |
contains the data to be written.
|
| n |
the number of bytes to write.
|
- Return
- the number of written bytes. The number will only be smaller than
n if an exceptional condition (e.g. connection closed) occurs.
Top of Page
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Description
ReactiveUI is a composable, cross-platform model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming which is a paradigm that allows you to express the idea around a feature in one readable place, abstract mutable state away from your user interfaces and improve improve the testability of your application.
ReactiveUI is the father of the extremely popular ReactiveCocoa framework. Internally the team debates whether ReactiveUI is or is not a framework, as at its core the project is essentially a bunch of extension methods for the Reactive Extensions.
The team believes that code is communication between people, that also happens to run on a computer. If you optimise for humans, then over a long time your software project will end up better. Software should be understandable by other people; that is super important. We believe that only the power of the Reactive Extensions allows you to express the idea around a feature in one readable place.
There is a better way
Long ago, when computer programming first came to be, machines had to be programmed quite manually. If the technician entered the correct sequence of machine codes in the correct order, then the resulting program behavior would satisfy the business requirements. Instead of telling a computer how to do its job, which error-prone and relies too heavily on the infallibility of the programmer, why don't we just tell it what it's job is and let it figure the rest out?
Most modern programming today is basically imperative, meaning it models the traditional fetch-execute cycle of a CPU. Perform an instruction, fetch the next one. Perform that one, and so on. For decades, programmers have had to mould their brains to fit the paradigm of the CPU. It's been like this since the early 1980s. When we rely on hoping that the behavior that emerges from a program is correct, and that reliance is based on nothing more than a programmer's correctness, then we can easily find ourselves in a sticky situation. We can try and mitigate the costs of imperative programming with things like unit tests or integration tests, but why mitigate the costs when there's a better way?
Reactive programming can look scary and complex at first glance, but the best way to describe reactive programming is to think of a spreadsheet:
- Three cells, A, B, and C.
- C is defined as the sum of A and B.
- Whenever A or B changes, C reacts to update itself.
Videos
Why you should be building better mobile applications YouTube
Awaiting for Rx: A play in four acts YouTube
Function Reactive Programming: In practice YouTube
Logo & Icon
Selected Articles
-
The effort to learn Rx and ReactiveUI is worth the trouble. My claim is based on this notion that ReactiveUI shines as complexity increases, but also on my belief that most people underestimate the complexity of their app. If you disagree that most of your code is reacting to something that changed, you might be underestimating the complexity of your app.
Eric Sink, creator of SQLitePCL.raw -
It took me over 4 slow years to realize that the Reactive Extensions (RX) is a good idea. It’s never too late to start learning something new. Here’s a few reasons why I personally dived into RX. The influencers have double downed on the library, Google has moved to a RX mindset with their new Architecture Components and other languages/frameworks have implementations - Thus the knowledge is universal.
Jon Douglas, Xamarin
Team
|
Geoffrey Huntley Sydney, Australia |
Kent Boogaart Adelaide, Australia |
Anaïs Betts San Francisco, USA |
Olly Levett London, United Kingdom |
Giusepe Casagrande São Leopoldo, Brazil |
Brendan Forster Melbourne, Australia |
Oren Novotny New York, USA |
Contact
- Press & Business contact
-<EMAIL_ADDRESS>- twitter.com/reactivexui
- Web
- reactiveui.net


--- layout: post title: how to get ipv6 connection in India date: 2011-09-27 02:02:38.000000000 +02:00 categories: - ipv6 - tech tags: [] status: publish type: post published: true meta: _edit_last: '1' _oembed_4985d01503d03d6584e2116d387f054b: '{{unknown}}' _oembed_5f64b07567c57936e4a5b2015e0e72ce: '{{unknown}}' _oembed_6f55990d5dfcdf452844e369ab002c79: '{{unknown}}' author: ---
It is possible to get ipv6 connection in India using tunneling (ipv6 over ipv4). There are multiple providers, but he.net is one of the simplest ones to use and setup. And its for free! You can set upto 5 tunnels with every free account. You'll mostly need one or two maximum as each tunnel needs a valid ipv4 ip on your end.
To set a free tunnel, head over to the tunnel broker site of he.net.
Register a new account. After successful registration (and confirmation), login, click on "create a regular tunnel" under user functions, provide your ipv4 address and voila (usually its the same as "You are vieweing from" that is shown under the text box for "IPv4 endpoint (your side)" and you are ready to go!
If you want to use google services over ipv6, I suggest you use one of the US endpoints of the tunnel, as it looks like google has whitelisted the US endpoints. The Asian endpoints dont ve access to google and facebook over ipv6.
Once you ve created your tunnel, you need to setup your system. I ve tried it on linux, mac and airport extreme. The example configuration showed in the tunnel page (once created) works pretty well for all that I tried. Most of them need you to copy paste the commands given in a command line terminal.
Once you are done with all the above, comes the most important part. Adding the DNS! Even if you ve a fully functional tunnel, you wont be able to browse or use it unless you ve the DNS configured for ipv6.
In your version of OS, configure the DNS for he.net
2001:470:1f06:b8c::2
Check it up online how to configure a nameserver/dns for your OS.
If you ve a airtel connection, or other ISPs which result in you ving different ips, no worries. You can update your tunnel endpoint (i.e, your ip) in the tunnel configuration easily. Either using the web UI by logging into the tunnelbroker.net site, or using APIs available at http://ipv4.tunnelbroker.net/ipv4_end.php
Usage: https://ipv4.tunnelbroker.net/ipv4_end.php?ip=IPV4ADDR&pass=MD5PASS&apikey=USERID&tid=TUNNELID
-or-: https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID (auto-detect IP)
https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID&ip=IPV4ADDR
Let me know if you need more help with setting up your ipv6 tunnel!
My home network and my blog both are now on ipv6, thanks to the tunnels provided by he.net!


TRAVELLING PLAYERS, THE (THIASSOS, O) (director: Theo Angelopoulos; screenwriters:Theo Angelopoulos; cinematographer: Ghiorgos Arvanitis; cast: Eva Kotamanidou (Elektra), Petros Zarkadis (Orestes), Maria Vassilou (Chrysothemis), Stratos Pahis (Elektra's Father), Aliki Georgouli (Elektra's Mother), Greece-1975)
Reviewed by Dennis Schwartz
Daringly enough, this leftist sympathizing political drama was made during the remaining days of the rightist Colonels' regime. It is one of those extra long (230 minutes) and slowly paced films, that is a chore to stay tuned into. One deserves to get a C in audience 101, for just remaining awake while watching it. It doesn't help that the characters are not appealing and do not draw us into their story. The thing here is history as mixed in with the loose telling of Aeschylus' Oresteia tragedies-- characters are even named Orestes, Electra, and Chrysothemis. It's lesson in modern Greek history goes from 1936-1952, as a travelling actor troupe performs a single folk play, Golfo the Shepherdess, in different towns all over Greece. We see them in towns that appear to be shabby and depressing, as the years keep changing, as does the political climate. The times are torn with Nazis, WW11, Axis Occupation, civil war (between the Right and Left wings), British Occupation, and the impending election of Marshal Papagos, representing a military monarchist regime. He is the one who defeated the Left-Wing during the civil war. Things certainly look glum; the only cheer comes from the actors, as they are transported through the far-out regions of Greece and sing their rhythmic songs of freedom, love, and sadness with a dignity and verve that enraptures the film in a very moving mood. You can feel the pulse of the times through the music and realize that big events are happening to the people of Greece.
The film assumes a lot for a foreign audience viewing it, that they would be knowledgable about Greek political happenings and of the Greek tragedies and of its history. The modern Greek history of betrayal, revenge, and redemption are both the subtle and underlying themes of the story, as seen through the eyes of the weary acting troupe. The film begins in 1952, in the town of Aegion, where the acting troupe visited last in 1939. The actors get caught up in the political manifestations themselves, as the film traces what happened to the troupe in the past; the wife of the troupe's leader takes a Fascist lover and has a bastard child, while the husband is a leftist and goes off to fight in the war.  In the most moving scene of the film, the actors bury him and start applauding him for the life he lived as he is buried; it is as if they were saying, what a performance you gave in life.
Most of the film was unfortunately not as stimulating and was too trying a task to follow in all its different kind of historical rejoinders, even though this is a worthy film, visually bringing real life into focus, in a way that is unique and psychologically absorbing. There is no doubt about it, this is a Theo Angelopoulos film, not relying on cohesiveness of plot or dialogue to tell its story for the record of history. His camera moves around for many different and enticing angle shots but his takes go on forever, touching every little gesture and staying with them for minutes at a time without any action taking place, making the film a very difficult watch for most non-Greeks.
The highly stylized scene in a restaurant-bar, best caught the feelings of the two opposing sides in the civil war and of those who just tried to remain neutral. The leftist were unarmed, seemed jovial, and danced with their women; while the rightist all wore their hats with the brim covering their eyes and danced with the men, and fired their guns in the air. They were the menacing winners. The neutrals just tried to please those in charge at the time.
Theo Angelopoulos is a great filmmaker, but this first feature of his to achieve international recognition is not a great film as much as it is a vital telling about political intrigue. It is a film that is relevant; a good peek at modern Greece and how it is politically divided. It is a chance to see how overreaching and meddling the British and the Americans are seen by the Greek left. It is, also, the story of the Communist's failure to gain control of the country, and the implications there are for a state that stays in power by suppressing its people. My hat is off to anyone who can say they were enthralled with this entire film, not the pieces of it here and there like I was.
REVIEWED ON 8/7/99 GRADE: C+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
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


|
hcash
2.0.0
hcash
|
#include <TimeHelpers.h>
Public Member Functions | |
| Timer () | |
| void | Start () |
| double | GetTimeInMs () const |
| Timer () | |
| void | Start () |
| double | GetTimeInMs () const |
| UnitTest::Timer::Timer | ( | ) |
| UnitTest::Timer::Timer | ( | ) |
| double UnitTest::Timer::GetTimeInMs | ( | ) | const |
| double UnitTest::Timer::GetTimeInMs | ( | ) | const |
| void UnitTest::Timer::Start | ( | ) |
| void UnitTest::Timer::Start | ( | ) |


In 1978, five 12-year-olds win a CYO basketball championship. Thirty years later, they gather with their families for their coach's funeral and a weekend at a house on a lake where they used to party. By now, each is a grownup with problems and challenges: Marcus is alone and drinks too much. Rob, with three daughters he rarely sees, is always deeply in love until he turns on his next ex-wife. Eric is overweight and out of work. Kurt is a househusband, henpecked by wife and mother-in-law. Lenny is a successful Hollywood agent married to a fashion designer; their kids take privilege for granted. Can the outdoors help these grownups rediscover connections or is this chaos in the making?


One of the things Myron has taught us (mostly Mike) is that sometimes it's okay to keep things simple. So here is our simple message to you. Wishing you the happiest of holidays.
♡ Emily, Mike, Myron, and The Lightning


{% extends "layout.html" %} {% block page_title %} Contact the Ministry of Justice {% endblock %} {% block page_content %} About the Ministry of Justice What is your question? We can only respond if you write in English or Welsh {% endblock %}


Are you sure you wish to delete the OAuth credentials {{model.client.name || model.client.id}} from the configuration?
Sites already configured in Umbraco with these credentials will no longer be able to pull data from Google Analytics.


More Website Templates @ TemplateMonster.com - August11, 2014!


Book a room in a hostel
Booking a room has never been easier
Access all your student details
:( Unfortunately you are not logged in
Log in maybe?
Warning
Are you sure you want to log out?
User Profile


German Barred Crossword
This is a German crossword (following the German style of cryptic clues). As a special feature, the letters Ä, Ö, Ü, and ß are automatically replaced by their crossword versions AE, OE, UE, and SS.
This is a German crossword (following the German style of cryptic clues). As a special feature, the letters Ä, Ö, Ü, and ß are automatically replaced by their crossword versions AE, OE, UE, and SS.


Arch's Design is simple to use and many developers have liked it.
Arch has a stable custom Bytecode Transpiler, Arch is both Stable, and runs many popular scripts, like DarkHub etc.
With all of these packed feautures you would expect a big keysystem in place, but its actually keyless, what is there not love?
Arch is flagged on the Anti-Virus because it has the ability to inject to ROBLOX like how a Virus can inject to a Program, and the protections in place also alarm the Antivirus.
We dont get any profit, to deliver you the best exploiting experiences : )
At the current moment we have a few issues, those will be fixed soon!
If you find any issues while trying to use Arch, please contact #support https://discord.io/archrocks.


These topics are organized under the label attached to the call in the Sets in Motion database.
The ANYONE phrase designates some dancers. In some cases, such as for "centers" and "ends" or "leaders" and "trailers", no one may fit the designation in the current formation. If no dancers match the designation, the call fails.
You can combine multiple ANYONE designations (since ANYTHING includes another ANYONE ANYTHING), such as "heads centers". In the future the more natural "head centers" or "center heads" would be preferred, but those more complex phrases are not yet recognized. If you do combine multiple designations, then only the dancers that satisfy all of the designations perform the call.
My understanding is that when designating dancers as in this call, the call is performed as if all other dancers disappeared. Thus, when you are looking for partners, for example, for one of the designated dancers you only consider other designated dancers. It is important to realize that some calls include designating some dancers (such as "ANYONE run". In Sets in Motion there is no "run" call. So "boys run" is not an instance of ANYONE ANYTHING. It is a separate call where all dancers are potential partners for the designated runners.
If you say "centers boys run", only the center boys may run and they must run around another center (because you are saying ANYONE ANYTHING with ANYONE being "centers" and ANYTHING being "boys run"). If you say "center boys run" then you are saying ANYONE run with ANYONE being "center boys". If you called "center boys run" from lines or waves, the center boys would have to run around the nearest end dancer (their partner in the larger formation). Note that this early test version does not support a number of compound designations like "center boys", but will in the future.
In most cases, this subtle distinction won't make any difference. But, as the previous example illustrates, when it does make a difference it can be important.
Another example may be worth mentioning. If you have a wave with boys in the center and call "boys u-turn back", the boys must turn toward each other. The girls are not counted when looking for partners. If you said "u-turn back" in this situation, the boys' partners are the adjacent end dancers (the girls), and they would have to turn toward them. But once you designate anyone, that relationship no longer applies and you must look elsewhere for partners.
The Squared Set Convention says that when designating dancers, such as "heads" or "sides" to do a move from a squared set, if the move cannot be done from the formation the dancers are in, then the designated dancers move into the middle and perform the call. Then, when done, if the active dancers are still facing the same wall as they started and didn't interact with the other dancers (so they are where they started), then the active dancers back out (or step forward as their facing dictates) to squared set positions.
Sets in Motion implements the Squared Set Convention using some extra wording in this call. Since you can only trigger the Squared Set Convention by designating dancers, this is the best place to add the test. Essentially, if the basic move cannot be done, then the program tries the alternate (moving in before doing the call). Only if neither method succeeds will the overall call fail.
Also note that the program only checks whether the dancers can start the call correctly. Any problems that develop after a dancer has actually moved may cause the call to fail (such as if the call eventually reaches a point where the dancers cannot finish). This reflects the fact that real dancers will commit themselves to a particular interpretation of the call and start moving without necessarily realizing that some later stage of the call will not work. I am not aware of a call that will fail in this way, but if you find a situation and disagree with the outcome, let me know.
This is directing the named dancers to back away from the center of the set. It requires that the designated dancers must be standing on one of the center four positions of a set. They must be facing the same set of walls (side or head walls) and the home positions just outside of them (e.g. side positions when facing side walls) must be unoccupied. The designated dancers will either step forward or back one full position to occupy the vacant home positions nearest them.
This directs the named dancers, who must be standing on home positions, to move into the middle. The named dancers must be facing in and the center positions immediately in front of them must be empty.
This simply repeats the indicated call the number of times specified. It accomplishes the same thing as writing the call that many times in a row. It is provided as a convenience.
Note that the fraction can be written as an improper fraction and may include whole number parts as well as fractions. The word and must appear between the whole number and fractional part of the phrase. This call executes the indicated fraction of the ANYTHING call. This fails if the call has a number of parts that is not compatible with the given fraction. Calls with only one part can only be fractionalized if the one part consists of a single call. If so, then the embedded call is fractionalized by the given amount.
If a call contains a particular number of parts, such as 3, then any fraction that is expressed as thirds or any multiple of thirds (as in 2/6) will succeed. As an additional convenience, if the fraction is not exact to the number of parts in the call, as in using 1/2 for a three part call, then as many parts as the fraction allows will be performed and the remaining part of the fraction is then applied to the next part. For example, if you call "1/2 remake", which is a three part call, then the first part and half of the second part is performed.
Note also that if the indicated part is a primitive, some primitives may allow further fractionalization while others do not. For example, trade from a mini-wave is written as an $arc primitive. This primitive can be broken down as far as 1/4 turns only. Since a trade is written (in this formation) as an $arc 1/2, you can call "1/2 trade" since that will turn the $arc fraction from 1/2 to 1/4 and still be a valid move. If you tried to call "1/3 trade", however, your call would fail because you cannot turn 1/6 of a circle.
Primarily, this call performs the first listed call and then the second. If your first call of the pair designates some dancers, then only the active dancers perform the second call. Also, be aware that you are not re-applying the designator for the second call. A call like "leaders u-turn back and circulate" is not the same as "leaders u-turn back and leaders circulate". In the first instance, the 'leaders' designate whatever dancers apply. Even if they are no longer leaders (as u-turn back will typically turn leaders into trailers), they are still the active dancers and will perform the circulate. In the second case, only those active dancers that remained leaders will do the circulate.
 Almost all calls are counted by the program as instances of ANYTHING. The exception is any call that begins with ANYTHING itself. Calls whose phrases begin with ANYTHING, such as "ANYTHING twice" are counted as instances of ANYCALL.
When you say "as couples trade and roll", it is my understanding that the 'as couples' concept only applies to the first call, not to the roll. There are those who believe that this is not true and a call such as this means that the roll should be done 'as couples' as well. Because of this difference of opinion, some callers recommend saying "as couples trade and individually roll" versus "as couples trade and as couples roll" in every case where there might be confusion. Sets in Motion requires that you say "as couples trade and as couples roll" to get the roll done 'as couples'. In the future, this may well become a selectable preference.
From a Z, dancers move either forward or back to form a box.
From two twosomes separated by two phantoms (as might arise after a fold or cross-fold call), the twosome slide laterally together to make a box.
From a squared set, this call moves the dancers slightly and arranges them into an alamo ring. For example, the call "swing thru" is not defined from a squared set. However, I believe that it is acceptable to direct dancers in a squared set to join hands in a ring so that you can then call "swing thru". Otherwise, you would have to use the rather absurd looking "circle left 0/4" which seems far from obvious.
The phrase "those who can" should probably be considered a variation of "ANYONE". Unlike phrases like "head boys" which always name the same dancers or "leaders" which name dancers in the current formation on the floor, "those who can" depends entirely on what the call does to figure out who is designated. Therefore, it is easier to define this phrase as a separate call, rather than try and make it an ANYONE phrase.
Sets in Motion will try every combination of dancers and every possible starting formation to get the most number of dancers doing the call. It will succeed if any or all of the dancers can be grouped to do the call. It will fail if no one can do the call. It will also fail if there is more than one way to get the maximum number of dancers involved. For example, "those who can trade" in an in-facing ring of 8 will fail if the dancers are not arranged with alternating man-woman. Since a couple is any two adjacent dancers with the same facing, if the dancers are boy-boy-girl-girl, you could make same-sex pairs or boy-girl pairs and still have all 8 dancers trading.


Justice Ruth Bader Ginsburg discharged from hospital
by WABCWASHINGTON D.C. -- Supreme Court Justice Ruth Bader Ginsburg is back home after being discharged from the hospital.
The court's spokesperson released a statement saying that she was in the hospital after experiencing chills and fever.
Ginsburg was first evaluated at a hospital in Washington, but then transferred Friday to Johns Hopkins Hospital in Baltimore.
A spokesperson says she is now home and doing well.


EasyCure
Book Your Appointment
** Fill All Details given below Carefully
Full Name :
Address:
Contact No.
Email Address.
Gender:
Male
Female
Select Area:
Select from below
Borivali
Malad
Select Hospital:
Select from below
Hinduja
Asian
Select Date of appoinment:
Select Time of appoinment:
to
Basic Reason
Checkup
Treatment
2nd opnion
Admit
Enter Basic query/symptoms:


When we
GET
an annotation, what does it look like and what is the meaning of the properties?
Let us assume that:
-
a (parent) resource exists with uuid:
c3533708-61c5-11e5-9a91-87af0920e91d
-
this resource has an annotation:
When we
/annotations/$annoId
we receive
200 OK
and body
{
"annotation" : {
"id" : "$annoId",
"type" : "type",
"value" : "value",
"state" : {
"value" : "TENTATIVE",
"since" : "{date.beforeNow}"
},
"revision" : 0,
"^deprecates" : "",
"^current_version" : "https://{host}/annotations/$annoId",
"^versioned_self" : "https://{host}/annotations/$annoId/rev/0",
"^annotates" : "https://{host}/resources/$resId",
"^annotations" : [ ],
"^provenance" : "https://{host}/annotations/$annoId/provenance"
} }
id
shows the uuid of this annotation
type
shows the type (string) of this annotation
value
shows the value (string) of this annotation
state.value
is one of
- TENTATIVE
- the object has just been created, but not confirmed
- CONFIRMED
- the object has been confirmed and is in full operational order
- DELETED
- the object is marked as deleted
- DEPRECATED
- the object (usually an annotation) has been deprecated by a more recent version
state.since
is the instant at which this resource's state was set to its current value
revision
shows the revision of this annotation
this number is incremented each time this annotation is deprecated by another value
^deprecates
points to the version of this annotation which is deprecated by this revision
^current_version
always points to the most recent revision of this annotation
^versioned_self
points to this particular revision of the annotation
^annotates
points to the resource or annotation which this annotation annotates
^annotations
contains a (possibly empty) array of links to annotations on this annotation.
(as annotations can be annotated themselves)
^provenance
contains a link to the provenance object for this annotation
(who-what-when-why was this object created?)


My Thinking Style
4.26.15
Multi Modal Learning Style
As my learning style suggests, I am able to absorb the most when the ideas are presented in multiple formats. This past week, we went through the exercises of using multiple tools like wireframing and code sharing through pair programming. This pace of switching the tools that we use for learning the same concepts really helps me understand similar things from different frames of view.But, using different tools does require one to keep practicing using all of them to get comfortable and get the most value out of them. At DBC, this would mean that I need to carefully select the the few tools that I have time to understand and get the most value out of.
Learning Mindset
Growth vs. Fixed Mindset I have enjoye the mini examples so far. I thought that since I have been coding in C/C++ for a few years now, I can jump onto the big stuff right away. But, the sample problems show that it is better to take mini steps to grow my understanding one step at a time.