本文整理汇总了C++中ejsCreateNumber函数的典型用法代码示例。如果您正苦于以下问题:C++ ejsCreateNumber函数的具体用法?C++ ejsCreateNumber怎么用?C++ ejsCreateNumber使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ejsCreateNumber函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ejsThrowReferenceError
/*
Function to iterate and return the next element value.
NOTE: this is not a method of Array. Rather, it is a callback function for Iterator
*/
static EjsObj *nextValue(Ejs *ejs, EjsIterator *ip, int argc, EjsObj **argv)
{
EjsFile *fp;
fp = (EjsFile*) ip->target;
if (!ejsIs(ejs, fp, File)) {
ejsThrowReferenceError(ejs, "Wrong type");
return 0;
}
if (ip->index < fp->info.size) {
#if !ME_CC_MMU || 1
if (mprSeekFile(fp->file, SEEK_CUR, 0) != ip->index) {
if (mprSeekFile(fp->file, SEEK_SET, ip->index) != ip->index) {
ejsThrowIOError(ejs, "Cannot seek to %d", ip->index);
return 0;
}
}
ip->index++;
return (EjsObj*) ejsCreateNumber(ejs, mprGetFileChar(fp->file));
#else
return (EjsObj*) ejsCreateNumber(ejs, fp->mapped[ip->index++]);
#endif
}
#if ME_CC_MMU && FUTURE
unmapFile(fp);
fp->mapped = 0;
#endif
ejsThrowStopIteration(ejs);
return 0;
}
开发者ID:coordcn,项目名称:ejs,代码行数:37,代码来源:ejsFile.c
示例2: partition
/*
Quick sort partition
*/
static int partition(Ejs *ejs, EjsArray *array, EjsFunction *compare, int direction, int p, int r)
{
EjsString *sx, *so;
EjsNumber *result;
EjsAny *argv[3], *tmp;
EjsObj *x;
int i, j, order;
x = array->data[r];
sx = 0;
if (compare) {
if ((argv[1] = ejsCreateNumber(ejs, r)) == 0) {
return 0;
}
} else {
if ((sx = ejsToString(ejs, x)) == 0) {
return 0;
}
}
j = p - 1;
for (i = p; i < r; i++) {
if (compare) {
argv[0] = array;
argv[2] = ejsCreateNumber(ejs, i);
result = ejsRunFunction(ejs, compare, NULL, 3, argv);
if (!ejsIs(ejs, result, Number)) {
return 0;
}
order = ejsGetInt(ejs, result);
} else {
if ((so = ejsToString(ejs, array->data[i])) == 0) {
return 0;
}
order = ejsCompareString(ejs, sx, so);
}
order *= direction;
if (order > 0) {
j = j + 1;
tmp = array->data[j];
array->data[j] = array->data[i];
array->data[i] = tmp;
}
}
array->data[r] = array->data[j + 1];
array->data[j + 1] = x;
return j + 1;
}
开发者ID:leemit,项目名称:ejscript,代码行数:53,代码来源:ejsArray.c
示例3: send
/*
function send(...content): Number
*/
static EjsNumber *ws_send(Ejs *ejs, EjsWebSocket *ws, int argc, EjsObj **argv)
{
EjsArray *args;
EjsByteArray *ba;
EjsAny *arg;
ssize nbytes;
int i;
args = (EjsArray*) argv[0];
if (ws->conn->state < HTTP_STATE_PARSED && !waitForHttpState(ws, HTTP_STATE_PARSED, -1, 1)) {
return ESV(null);
}
nbytes = 0;
for (i = 0; i < args->length; i++) {
if ((arg = ejsGetProperty(ejs, args, i)) != 0) {
if (ejsIs(ejs, arg, ByteArray)) {
ba = (EjsByteArray*) arg;
nbytes = ejsGetByteArrayAvailableData(ba);
nbytes = httpSendBlock(ws->conn, WS_MSG_BINARY, (cchar*) &ba->value[ba->readPosition], nbytes, HTTP_BLOCK);
} else {
nbytes = httpSend(ws->conn, ejsToMulti(ejs, arg));
}
if (nbytes < 0) {
return ESV(null);
}
}
}
return ejsCreateNumber(ejs, (MprNumber) nbytes);
}
开发者ID:soffmodd,项目名称:ejs-2,代码行数:32,代码来源:ejsWebSocket.c
示例4: components
/*
Break a uri into components
function components(): Object
*/
static EjsObj *uri_components(Ejs *ejs, EjsUri *up, int argc, EjsObj **argv)
{
EjsObj *obj;
HttpUri *uri;
uri = up->uri;
obj = ejsCreateEmptyPot(ejs);
if (uri->scheme) {
ejsSetPropertyByName(ejs, obj, EN("scheme"), ejsCreateStringFromAsc(ejs, uri->scheme));
}
if (uri->host) {
ejsSetPropertyByName(ejs, obj, EN("host"), ejsCreateStringFromAsc(ejs, uri->host));
}
if (uri->port > 0) {
ejsSetPropertyByName(ejs, obj, EN("port"), ejsCreateNumber(ejs, uri->port));
}
if (uri->path) {
ejsSetPropertyByName(ejs, obj, EN("path"), ejsCreateStringFromAsc(ejs, uri->path));
}
if (uri->reference) {
ejsSetPropertyByName(ejs, obj, EN("reference"), ejsCreateStringFromAsc(ejs, uri->reference));
}
if (uri->query) {
ejsSetPropertyByName(ejs, obj, EN("query"), ejsCreateStringFromAsc(ejs, uri->query));
}
return obj;
}
开发者ID:monmarzia,项目名称:ejs-2,代码行数:33,代码来源:ejsUri.c
示例5: mprAssert
/*
* Search for an item using strict equality "===". This call searches from
* the end of the array for the specified element.
* @return Returns the items index into the array if found, otherwise -1.
*
* function lastIndexOf(element: Object, fromIndex: Number = -1): Number
*/
static EjsVar *lastArrayIndexOf(Ejs *ejs, EjsArray *ap, int argc, EjsVar **argv)
{
EjsVar *element;
int i, start;
mprAssert(argc == 1 || argc == 2);
element = argv[0];
start = ((argc == 2) ? (int) ((EjsNumber*) argv[1])->value : ap->length - 1);
if (start < 0) {
start += ap->length;
}
if (start >= ap->length) {
start = ap->length - 1;
}
if (start < 0) {
return (EjsVar*) ejs->minusOneValue;
}
for (i = start; i >= 0; i--) {
if (compareArrayElement(ejs, ap->data[i], element)) {
return (EjsVar*) ejsCreateNumber(ejs, i);
}
}
return (EjsVar*) ejs->minusOneValue;
}
开发者ID:embedthis,项目名称:ejs-1,代码行数:33,代码来源:ejsArray.c
示例6: indexOf
/*
Search for an item using strict equality "===". This call searches from
the start of the array for the specified element.
@return Returns the items index into the array if found, otherwise -1.
function indexOf(element: Object, startIndex: Number = 0): Number
*/
static EjsNumber *indexOfArray(Ejs *ejs, EjsArray *ap, int argc, EjsObj **argv)
{
EjsObj *element;
int i, start;
assert(argc == 1 || argc == 2);
element = argv[0];
start = (argc == 2) ? (int) ((EjsNumber*) argv[1])->value : 0;
if (start < 0) {
start += ap->length;
}
if (start >= ap->length) {
return ESV(minusOne);
}
if (start < 0) {
start = 0;
}
for (i = start; i < ap->length; i++) {
if (compareArrayElement(ejs, ap->data[i], element)) {
return ejsCreateNumber(ejs, i);
}
}
return ESV(minusOne);
}
开发者ID:leemit,项目名称:ejscript,代码行数:33,代码来源:ejsArray.c
示例7: ejsThrowReferenceError
/*
Function to iterate and return the next element name.
NOTE: this is not a method of Array. Rather, it is a callback function for Iterator
*/
static EjsNumber *nextArrayKey(Ejs *ejs, EjsIterator *ip, int argc, EjsObj **argv)
{
EjsArray *ap;
EjsObj *vp, **data;
ap = (EjsArray*) ip->target;
if (!ejsIs(ejs, ap, Array)) {
ejsThrowReferenceError(ejs, "Wrong type");
return 0;
}
data = ap->data;
if (ap->length < ip->length) {
ip->length = ap->length;
}
for (; ip->index < ip->length; ip->index++) {
vp = data[ip->index];
assert(vp);
if (ejsIs(ejs, vp, Void)) {
continue;
}
return ejsCreateNumber(ejs, ip->index++);
}
ejsThrowStopIteration(ejs);
return 0;
}
开发者ID:leemit,项目名称:ejscript,代码行数:29,代码来源:ejsArray.c
示例8: maGetHandlerQueueData
static EjsVar *getResponseVar(void *handle, int field)
{
Ejs *ejs;
MaConn *conn;
MaResponse *resp;
conn = handle;
resp = conn->response;
ejs = ((EjsWeb*) maGetHandlerQueueData(conn))->ejs;
switch (field) {
case ES_ejs_web_Response_code:
return (EjsVar*) ejsCreateNumber(ejs, resp->code);
case ES_ejs_web_Response_filename:
return (EjsVar*) createString(ejs, resp->filename);
case ES_ejs_web_Response_headers:
return (EjsVar*) createHeaders(ejs, conn->response->headers);
case ES_ejs_web_Response_mimeType:
return (EjsVar*) createString(ejs, resp->mimeType);
default:
ejsThrowOutOfBoundsError(ejs, "Bad property slot reference");
return 0;
}
}
开发者ID:jsjohnst,项目名称:appweb,代码行数:28,代码来源:ejsAppweb.c
示例9: mprGetAllocStats
/*
* native static function get redline(): Number
*/
static EjsVar *getRedline(Ejs *ejs, EjsVar *thisObj, int argc, EjsVar **argv)
{
MprAlloc *alloc;
alloc = mprGetAllocStats(ejs);
return (EjsVar*) ejsCreateNumber(ejs, (int) alloc->redLine);
}
开发者ID:embedthis,项目名称:ejs-1,代码行数:10,代码来源:ejsMemory.c
示例10: assert
EjsArray *ejsCaptureStack(Ejs *ejs, int uplevels)
{
EjsFrame *fp;
EjsState *state;
EjsArray *stack;
wchar *source;
EjsObj *frame;
char *filename;
int index, lineNumber;
assert(ejs);
stack = ejsCreateArray(ejs, 0);
index = 0;
for (state = ejs->state; state; state = state->prev) {
for (fp = state->fp; fp; fp = fp->caller) {
if (uplevels-- <= 0) {
frame = ejsCreateEmptyPot(ejs);
if (ejsGetDebugInfo(ejs, (EjsFunction*) fp, fp->pc, &filename, &lineNumber, &source) >= 0) {
ejsSetPropertyByName(ejs, frame, EN("filename"), ejsCreatePathFromAsc(ejs, filename));
ejsSetPropertyByName(ejs, frame, EN("lineno"), ejsCreateNumber(ejs, lineNumber));
ejsSetPropertyByName(ejs, frame, EN("code"), ejsCreateString(ejs, source, wlen(source)));
} else {
ejsSetPropertyByName(ejs, frame, EN("filename"), EST(undefined));
}
ejsSetPropertyByName(ejs, frame, EN("func"), fp->function.name);
ejsSetProperty(ejs, stack, index++, frame);
}
}
}
return stack;
}
开发者ID:embedthis,项目名称:ejscript,代码行数:32,代码来源:ejsException.c
示例11: uid
/*
static function get uid(): Number
*/
static EjsNumber *app_uid(Ejs *ejs, EjsObj *unused, int argc, EjsObj **argv)
{
#if ME_UNIX_LIKE
return ejsCreateNumber(ejs, getuid());
#else
return ESV(null);
#endif
}
开发者ID:leemit,项目名称:ejscript,代码行数:11,代码来源:ejsApp.c
示例12: position
/*
Get the current I/O position in the file.
function get position(): Number
*/
static EjsObj *getFilePosition(Ejs *ejs, EjsFile *fp, int argc, EjsObj **argv)
{
if (fp->file == 0) {
ejsThrowStateError(ejs, "File not opened");
return 0;
}
return (EjsObj*) ejsCreateNumber(ejs, (MprNumber) mprGetFilePosition(fp->file));
}
开发者ID:coordcn,项目名称:ejs,代码行数:12,代码来源:ejsFile.c
示例13: size
/*
Get the size of the file associated with this File object.
override function get size(): Number
*/
static EjsObj *getFileSize(Ejs *ejs, EjsFile *fp, int argc, EjsObj **argv)
{
MprPath info;
if (mprGetPathInfo(fp->path, &info) < 0) {
return (EjsObj*) ESV(minusOne);
}
return (EjsObj*) ejsCreateNumber(ejs, (MprNumber) info.size);
}
开发者ID:coordcn,项目名称:ejs,代码行数:13,代码来源:ejsFile.c
示例14: ejsCreateEmptyPot
static EjsObj *getFileOptions(Ejs *ejs, EjsFile *fp, int argc, EjsObj **argv)
{
EjsObj *options;
options = (EjsObj*) ejsCreateEmptyPot(ejs);
ejsSetPropertyByName(ejs, options, EN("mode"), ejsCreateStringFromAsc(ejs, fp->modeString));
ejsSetPropertyByName(ejs, options, EN("permissions"), ejsCreateNumber(ejs, fp->perms));
return options;
}
开发者ID:coordcn,项目名称:ejs,代码行数:9,代码来源:ejsFile.c
示例15: contentLength
/*
function get contentLength(): Number
*/
static EjsNumber *http_contentLength(Ejs *ejs, EjsHttp *hp, int argc, EjsObj **argv)
{
MprOff length;
if (!waitForResponseHeaders(hp)) {
return 0;
}
length = httpGetContentLength(hp->conn);
return ejsCreateNumber(ejs, (MprNumber) length);
}
开发者ID:soffmodd,项目名称:ejs-2,代码行数:13,代码来源:ejsHttp.c
示例16: write
/*
Write data to the file
function write(data: Object): Number
*/
PUBLIC EjsObj *writeFile(Ejs *ejs, EjsFile *fp, int argc, EjsObj **argv)
{
EjsArray *args;
EjsByteArray *ap;
EjsObj *vp;
EjsString *str;
cchar *buf;
ssize len, written;
int i;
assert(argc == 1 && ejsIs(ejs, argv[0], Array));
args = (EjsArray*) argv[0];
if (!(fp->mode & EJS_FILE_WRITE)) {
ejsThrowStateError(ejs, "File not opened for writing");
return 0;
}
written = 0;
for (i = 0; i < args->length; i++) {
vp = ejsGetProperty(ejs, (EjsObj*) args, i);
assert(vp);
switch (TYPE(vp)->sid) {
case S_ByteArray:
ap = (EjsByteArray*) vp;
// TODO UNICODE ENCODING
buf = (cchar*) &ap->value[ap->readPosition];
len = ap->writePosition - ap->readPosition;
break;
case S_String: // UNICODE
#if UNICODE && FUTURE
buf = awtom(((EjsString*) vp)->value, &len);
#else
buf = ((EjsString*) vp)->value;
len = ((EjsString*) vp)->length;
#endif
break;
default:
str = ejsToString(ejs, vp);
buf = awtom(((EjsString*) str)->value, &len);
break;
}
if (mprWriteFile(fp->file, buf, len) != len) {
ejsThrowIOError(ejs, "Cannot write to %s", fp->path);
return 0;
}
written += len;
/* Use GC to free buf as it may not be allocated */
}
return (EjsObj*) ejsCreateNumber(ejs, (MprNumber) written);
}
开发者ID:coordcn,项目名称:ejs,代码行数:58,代码来源:ejsFile.c
示例17: port
/*
Get the port portion
static function get port(): Number?
*/
static EjsNumber *uri_port(Ejs *ejs, EjsUri *up, int argc, EjsObj **argv)
{
HttpUri *uri;
uri = up->uri;
if (uri->port <= 0) {
return ESV(null);
#if UNUSED
if (uri->host == 0) {
return ESV(null);
}
if (uri->scheme == 0 || strcmp(uri->scheme, "http") == 0) {
return ejsCreateNumber(ejs, 80);
} else if (uri->scheme && strcmp(uri->scheme, "https") == 0) {
return ejsCreateNumber(ejs, 443);
}
#endif
}
return ejsCreateNumber(ejs, up->uri->port);
}
开发者ID:monmarzia,项目名称:ejs-2,代码行数:24,代码来源:ejsUri.c
示例18: round
/*
function round(value: Number): Number
*/
static EjsNumber *math_round(Ejs *ejs, EjsObj *unused, int argc, EjsObj **argv)
{
MprNumber n;
n = ejsGetNumber(ejs, argv[0]);
if (-0.5 <= n && n < 0) {
n = -0.0;
} else {
n += 0.5;
}
return ejsCreateNumber(ejs, floor(n));
}
开发者ID:embedthis,项目名称:ejscript,代码行数:15,代码来源:ejsMath.c
示例19: status
/*
function get status(): Number
*/
static EjsNumber *http_status(Ejs *ejs, EjsHttp *hp, int argc, EjsObj **argv)
{
int code;
if (!waitForResponseHeaders(hp)) {
return 0;
}
code = httpGetStatus(hp->conn);
if (code <= 0) {
return ESV(null);
}
return ejsCreateNumber(ejs, code);
}
开发者ID:soffmodd,项目名称:ejs-2,代码行数:16,代码来源:ejsHttp.c
示例20: mprAssert
/*
Get a property from the object
@param ejs VM handle.
@param sp is set to the object instance.
@param slotNum Slot number of the property to retrieve. The VM maps the property names to slots.
@return the property value
*/
static EjsObj *getProperty(Ejs *ejs, Shape *sp, int slotNum)
{
mprAssert(sp);
switch (slotNum) {
case ES_nclass_Shape_x:
return (EjsObj*) ejsCreateNumber(ejs, sp->x);
case ES_nclass_Shape_y:
return (EjsObj*) ejsCreateNumber(ejs, sp->x);
case ES_nclass_Shape_height:
return (EjsObj*) ejsCreateNumber(ejs, sp->height);
case ES_nclass_Shape_width:
return (EjsObj*) ejsCreateNumber(ejs, sp->width);
default:
ejsThrowReferenceError(ejs, "Bad slot reference");
}
return 0;
}
开发者ID:varphone,项目名称:ejs-2,代码行数:30,代码来源:shape.c
注:本文中的ejsCreateNumber函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论