您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BufferNew函数代码示例

51自学网 2021-06-01 19:55:54
  C++
这篇教程C++ BufferNew函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BufferNew函数的典型用法代码示例。如果您正苦于以下问题:C++ BufferNew函数的具体用法?C++ BufferNew怎么用?C++ BufferNew使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BufferNew函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: test_copyEqualBuffer

static void test_copyEqualBuffer(void **state){    char element0[] = "element0";    unsigned int element0size = strlen(element0);    char element1[] = "element1";    unsigned int element1size = strlen(element1);    Buffer *buffer0 = NULL;    Buffer *buffer1 = NULL;    Buffer *buffer2 = NULL;    // Empty buffers, all empty buffers are the same    assert_int_equal(0, BufferNew(&buffer0));    assert_int_equal(0, BufferNew(&buffer1));    assert_true(BufferEqual(buffer0, buffer0));    assert_true(BufferEqual(buffer0, buffer1));    assert_int_equal(0, BufferCopy(buffer0, &buffer2));    assert_true(BufferEqual(buffer0, buffer2));    // Add some flavour    assert_int_equal(0, BufferDestroy(&buffer2));    assert_int_equal(element0size, BufferSet(buffer0, element0, element0size));    assert_int_equal(element1size, BufferSet(buffer1, element1, element1size));    assert_true(BufferEqual(buffer0, buffer0));    assert_false(BufferEqual(buffer0, buffer1));    assert_int_equal(0, BufferCopy(buffer0, &buffer2));    assert_true(BufferEqual(buffer0, buffer2));    // Destroy the buffers    assert_int_equal(0, BufferDestroy(&buffer0));    assert_int_equal(0, BufferDestroy(&buffer1));    assert_int_equal(0, BufferDestroy(&buffer2));}
开发者ID:cyphermaster,项目名称:core,代码行数:33,


示例2: BufferNew

Buffer *IPAddressGetAddress(IPAddress *address){    if (!address)    {        return NULL;    }    Buffer *buffer = NULL;    int result = 0;    if (address->type == IP_ADDRESS_TYPE_IPV4)    {        struct IPV4Address *ipv4 = (struct IPV4Address *)address->address;        buffer = BufferNew();#if BIG_ENDIAN        result = BufferPrintf(buffer, "%u.%u.%u.%u", ipv4->octets[0], ipv4->octets[1], ipv4->octets[2], ipv4->octets[3]);#elif LITTLE_ENDIAN        result = BufferPrintf(buffer, "%u.%u.%u.%u", ipv4->octets[3], ipv4->octets[2], ipv4->octets[1], ipv4->octets[0]);#else#warning "Unrecognized endianness, assuming big endian"        result = BufferPrintf(buffer, "%u.%u.%u.%u", ipv4->octets[0], ipv4->octets[1], ipv4->octets[2], ipv4->octets[3]);#endif    }    else if (address->type == IP_ADDRESS_TYPE_IPV6)    {        struct IPV6Address *ipv6 = (struct IPV6Address *)address->address;        buffer = BufferNew();#if BIG_ENDIAN        result = BufferPrintf(buffer, "%x:%x:%x:%x:%x:%x:%x:%x", ipv6->sixteen[0], ipv6->sixteen[1], ipv6->sixteen[2],                              ipv6->sixteen[3], ipv6->sixteen[4], ipv6->sixteen[5], ipv6->sixteen[6], ipv6->sixteen[7]);#elif LITTLE_ENDIAN        result = BufferPrintf(buffer, "%x:%x:%x:%x:%x:%x:%x:%x", ipv6->sixteen[7], ipv6->sixteen[6], ipv6->sixteen[5],                              ipv6->sixteen[4], ipv6->sixteen[3], ipv6->sixteen[2], ipv6->sixteen[1], ipv6->sixteen[0]);#else#warning "Unrecognized endianness, assuming big endian"        result = BufferPrintf(buffer, "%x:%x:%x:%x:%x:%x:%x:%x", ipv6->sixteen[0], ipv6->sixteen[1], ipv6->sixteen[2],                              ipv6->sixteen[3], ipv6->sixteen[4], ipv6->sixteen[5], ipv6->sixteen[6], ipv6->sixteen[7]);#endif    }    else    {        buffer = NULL;    }    if (result < 0)    {        BufferDestroy(buffer);        return NULL;    }    return buffer;}
开发者ID:dstam,项目名称:core,代码行数:49,


示例3: test_createBuffer

static void test_createBuffer(void **state){    Buffer *buffer = NULL;    assert_int_equal(0, BufferNew(&buffer));    assert_true(buffer != NULL);    assert_true(buffer->buffer != NULL);    assert_int_equal(buffer->mode, BUFFER_BEHAVIOR_CSTRING);    assert_int_equal(buffer->capacity, DEFAULT_BUFFER_SIZE);    assert_int_equal(buffer->used, 0);    assert_int_equal(buffer->beginning, 0);    assert_int_equal(buffer->end, 0);    assert_true(buffer->ref_count != NULL);    assert_int_equal(buffer->ref_count->user_count, 1);    assert_int_equal(-1, BufferNew(NULL));}
开发者ID:cyphermaster,项目名称:core,代码行数:15,


示例4: assert

char *VarRefToString(const VarRef *ref, bool qualified){    assert(ref->lval);    Buffer *buf = BufferNew();    if (qualified && VarRefIsQualified(ref))    {        const char *ns = ref->ns ? ref->ns : "default";        BufferAppend(buf, ns, strlen(ns));        BufferAppend(buf, ":", sizeof(char));        BufferAppend(buf, ref->scope, strlen(ref->scope));        BufferAppend(buf, ".", sizeof(char));    }    BufferAppend(buf, ref->lval, strlen(ref->lval));    for (size_t i = 0; i < ref->num_indices; i++)    {        BufferAppend(buf, "[", sizeof(char));        BufferAppend(buf, ref->indices[i], strlen(ref->indices[i]));        BufferAppend(buf, "]", sizeof(char));    }    char *var_string = xstrdup(BufferData(buf));    BufferDestroy(&buf);    return var_string;}
开发者ID:nperron,项目名称:core,代码行数:28,


示例5: test_zeroBuffer

static void test_zeroBuffer(void){    char *element0 = xstrdup("element0");    unsigned int element0size = strlen(element0);    const char *element0pointer = NULL;    Buffer *buffer = BufferNew();    assert_int_equal(element0size, BufferSet(buffer, element0, element0size));    element0pointer = buffer->buffer;    assert_int_equal(element0size, buffer->used);    assert_int_equal(element0size, BufferSize(buffer));    BufferZero(buffer);    assert_int_equal(DEFAULT_BUFFER_SIZE, buffer->capacity);    assert_int_equal(0, buffer->used);    assert_int_equal(0, BufferSize(buffer));	const char *data = BufferData(buffer);	assert_string_equal(data, "");    assert_true(element0pointer == buffer->buffer);    BufferZero(NULL);    assert_int_equal(0, BufferDestroy(&buffer));    /*     * Release the resources     */    BufferDestroy(&buffer);    free (element0);}
开发者ID:lpefferkorn,项目名称:core,代码行数:26,


示例6: BufferNew

Buffer *StringSetToBuffer(StringSet *set, const char delimiter){    Buffer *buf = BufferNew();    StringSetIterator it = StringSetIteratorInit(set);    const char *element = NULL;    int pos = 0;    int size = StringSetSize(set);    char minibuf[2];    minibuf[0] = delimiter;    minibuf[1] = '/0';    while ((element = StringSetIteratorNext(&it)))    {        BufferAppend(buf, element, strlen(element));        if (pos < size-1)        {            BufferAppend(buf, minibuf, sizeof(char));        }        pos++;    }    return buf;}
开发者ID:ajlill,项目名称:core,代码行数:26,


示例7: test_destroyBuffer

static void test_destroyBuffer(void){    Buffer *buffer = BufferNew();    assert_int_equal(0, BufferDestroy(&buffer));    assert_true(buffer == NULL);    assert_int_equal(0, BufferDestroy(NULL));}
开发者ID:lpefferkorn,项目名称:core,代码行数:7,


示例8: DoExtDiskSpace

void DoExtDiskSpace(tBuffer *bIn, tBuffer *bOut, u_int32_t id){	struct STATFS stfs;	tFSPath	*realPath;	char *path;	path = convertFromUtf8(BufferGetString(bIn), 1);	realPath = FSCheckPath(path);	DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH]Path: %s", path));	if (realPath != NULL && !HAS_BIT(gl_var->flagsDisable, SFTP_DISABLE_STATSFS))	{		DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH]Realpath: %s", realPath->realPath));		if (STATFS(realPath->realPath, &stfs) == 0)		{			tBuffer *b;			b = BufferNew();			BufferPutInt8(b, SSH2_FXP_EXTENDED_REPLY);			BufferPutInt32(b, id);			BufferPutInt64(b, (u_int64_t) stfs.f_blocks * (u_int64_t) stfs.f_bsize);			BufferPutInt64(b, (u_int64_t) stfs.f_bfree * (u_int64_t) stfs.f_bsize);			BufferPutInt64(b, 0);			BufferPutInt64(b, (u_int64_t) stfs.f_bavail * (u_int64_t) stfs.f_bsize);			BufferPutInt32(b, stfs.f_bsize);			BufferPutPacket(bOut, b);		}		else			SendStatus(bOut, id, errnoToPortable(errno));	}	else		SendStatus(bOut, id, SSH2_FX_PERMISSION_DENIED);	FSDestroyPath(realPath);	free(path);}
开发者ID:Orea1234,项目名称:mysecureshell,代码行数:34,


示例9: ExpandBundleReference

Rval ExpandBundleReference(EvalContext *ctx,                           const char *ns, const char *scope,                           Rval rval){    // Allocates new memory for the copy    switch (rval.type)    {    case RVAL_TYPE_SCALAR:        {            Buffer *buffer = BufferNew();            ExpandScalar(ctx, ns, scope, RvalScalarValue(rval), buffer);            return (Rval) { BufferClose(buffer), RVAL_TYPE_SCALAR };        }    case RVAL_TYPE_FNCALL:        return (Rval) {ExpandFnCall(ctx, ns, scope, RvalFnCallValue(rval)), RVAL_TYPE_FNCALL};    case RVAL_TYPE_CONTAINER:    case RVAL_TYPE_LIST:    case RVAL_TYPE_NOPROMISEE:         return RvalNew(NULL, RVAL_TYPE_NOPROMISEE);    }    assert(false);    return RvalNew(NULL, RVAL_TYPE_NOPROMISEE);}
开发者ID:rcorrieri,项目名称:core,代码行数:26,


示例10: WindowGetattr

    static PyObject *WindowGetattr(PyObject *self, char *name){    WindowObject *this = (WindowObject *)(self);    if (CheckWindow(this))	return NULL;    if (strcmp(name, "buffer") == 0)	return (PyObject *)BufferNew(this->win->w_buffer);    else if (strcmp(name, "cursor") == 0)    {	pos_T *pos = &this->win->w_cursor;	return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col));    }    else if (strcmp(name, "height") == 0)	return Py_BuildValue("l", (long)(this->win->w_height));#ifdef FEAT_VERTSPLIT    else if (strcmp(name, "width") == 0)	return Py_BuildValue("l", (long)(W_WIDTH(this->win)));#endif    else if (strcmp(name,"__members__") == 0)	return Py_BuildValue("[sss]", "buffer", "cursor", "height");    else	return Py_FindMethod(WindowMethods, self, name);}
开发者ID:aosm,项目名称:vim,代码行数:27,


示例11: Epimenides

static bool Epimenides(EvalContext *ctx, const char *ns, const char *scope, const char *var, Rval rval, int level){    switch (rval.type)    {    case RVAL_TYPE_SCALAR:        if (StringContainsVar(RvalScalarValue(rval), var))        {            Log(LOG_LEVEL_ERR, "Scalar variable '%s' contains itself (non-convergent) '%s'", var, RvalScalarValue(rval));            return true;        }        if (IsCf3VarString(RvalScalarValue(rval)))        {            Buffer *exp = BufferNew();            ExpandScalar(ctx, ns, scope, RvalScalarValue(rval), exp);            if (strcmp(BufferData(exp), RvalScalarValue(rval)) == 0)            {                BufferDestroy(exp);                return false;            }            if (level > 3)            {                BufferDestroy(exp);                return false;            }            if (Epimenides(ctx, ns, scope, var, (Rval) { BufferGet(exp), RVAL_TYPE_SCALAR}, level + 1))            {                BufferDestroy(exp);                return true;            }            BufferDestroy(exp);        }        break;    case RVAL_TYPE_LIST:        for (const Rlist *rp = RvalRlistValue(rval); rp != NULL; rp = rp->next)        {            if (Epimenides(ctx, ns, scope, var, rp->val, level))            {                return true;            }        }        break;    case RVAL_TYPE_CONTAINER:    case RVAL_TYPE_FNCALL:    case RVAL_TYPE_NOPROMISEE:        return false;    }    return false;}
开发者ID:awsiv,项目名称:core,代码行数:58,


示例12: test_expand_scalar_undefined

static void test_expand_scalar_undefined(void **state){    EvalContext *ctx = *state;    Buffer *res = BufferNew();    ExpandScalar(ctx, "default", "bundle", "a$(undefined)b", res);    assert_string_equal("a$(undefined)b", BufferData(res));    BufferDestroy(res);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:10,


示例13: CreateHardClassesFromFeatures

void CreateHardClassesFromFeatures(EvalContext *ctx, char *tags){    Buffer *buffer = BufferNew();    for(int i=0 ; features[i]!=NULL ; i++) {        BufferPrintf(buffer, "feature_%s", features[i]);        CreateHardClassesFromCanonification(ctx, BufferData(buffer), tags);    }    BufferDestroy(buffer);}
开发者ID:bahamat,项目名称:cfengine-core,代码行数:10,


示例14: ExpandPromiseAndDo

static PromiseResult ExpandPromiseAndDo(EvalContext *ctx, const Promise *pp,                                        Rlist *lists, Rlist *containers,                                        PromiseActuator *ActOnPromise, void *param){    const char *handle = PromiseGetHandle(pp);    EvalContextStackPushPromiseFrame(ctx, pp, true);    PromiseIterator *iter_ctx = NULL;    size_t i = 0;    PromiseResult result = PROMISE_RESULT_NOOP;    Buffer *expbuf = BufferNew();    for (iter_ctx = PromiseIteratorNew(ctx, pp, lists, containers); PromiseIteratorHasMore(iter_ctx); i++, PromiseIteratorNext(iter_ctx))    {        if (handle)        {            // This ordering is necessary to get automated canonification            BufferClear(expbuf);            ExpandScalar(ctx, NULL, "this", handle, expbuf);            CanonifyNameInPlace(BufferGet(expbuf));            EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_THIS, "handle", BufferData(expbuf), CF_DATA_TYPE_STRING, "source=promise");        }        else        {            EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_THIS, "handle", PromiseID(pp), CF_DATA_TYPE_STRING, "source=promise");        }        const Promise *pexp = EvalContextStackPushPromiseIterationFrame(ctx, i, iter_ctx);        if (!pexp)        {            // excluded            result = PromiseResultUpdate(result, PROMISE_RESULT_SKIPPED);            continue;        }        PromiseResult iteration_result = ActOnPromise(ctx, pexp, param);        NotifyDependantPromises(ctx, pexp, iteration_result);        result = PromiseResultUpdate(result, iteration_result);        if (strcmp(pp->parent_promise_type->name, "vars") == 0 || strcmp(pp->parent_promise_type->name, "meta") == 0)        {            VerifyVarPromise(ctx, pexp, true);        }        EvalContextStackPopFrame(ctx);    }    BufferDestroy(expbuf);    PromiseIteratorDestroy(iter_ctx);    EvalContextStackPopFrame(ctx);    return result;}
开发者ID:awsiv,项目名称:core,代码行数:54,


示例15: test_copyCompareBuffer

static void test_copyCompareBuffer(void){    char *element0 = xstrdup("element0");    unsigned int element0size = strlen(element0);    char *element1 = xstrdup("element1");    unsigned int element1size = strlen(element1);    Buffer *buffer0 = NULL;    Buffer *buffer1 = NULL;    Buffer *buffer2 = NULL;    assert_int_equal(0, BufferCompare(buffer0, buffer1));    buffer0 = BufferNew();    assert_int_equal(-1, BufferCompare(NULL, buffer0));    assert_int_equal(1, BufferCompare(buffer0, NULL));    buffer1 = BufferNew();    assert_int_equal(0, BufferCompare(buffer0, buffer0));    assert_int_equal(0, BufferCompare(buffer0, buffer1));    assert_int_equal(0, BufferCopy(buffer0, &buffer2));    assert_int_equal(0, BufferCompare(buffer0, buffer2));    // Add some flavour    assert_int_equal(0, BufferDestroy(&buffer2));    assert_int_equal(element0size, BufferSet(buffer0, element0, element0size));    assert_int_equal(element1size, BufferSet(buffer1, element1, element1size));    assert_int_equal(0, BufferCompare(buffer0, buffer0));    assert_int_equal(-1, BufferCompare(buffer0, buffer1));    assert_int_equal(1, BufferCompare(buffer1, buffer0));    assert_int_equal(0, BufferCopy(buffer0, &buffer2));    assert_int_equal(0, BufferCompare(buffer0, buffer2));    // Destroy the buffers    assert_int_equal(0, BufferDestroy(&buffer0));    assert_int_equal(0, BufferDestroy(&buffer1));    assert_int_equal(0, BufferDestroy(&buffer2));    free (element0);    free (element1);}
开发者ID:lpefferkorn,项目名称:core,代码行数:39,


示例16: DoAdminStats

void    DoAdminStats(tStats *stats){  u_int32_t	lastRefresh;  tBuffer	*b;  lastRefresh = BufferGetInt32(bIn);  b = BufferNew();  BufferPutInt8FAST(b, SSH_ADMIN_STATS_REPLY);  StatsSend(stats, lastRefresh, b);  BufferPutPacket(bOut, b);  DEBUG((MYLOG_DEBUG, "[DoAdminStats]Last refresh :%u", lastRefresh));  BufferDelete(b);}
开发者ID:Orea1234,项目名称:mysecureshell,代码行数:13,


示例17: SendAttributes

void SendAttributes(tBuffer *bOut, u_int32_t id, const tAttributes *a, const char *file){	tBuffer *b;	b = BufferNew();	if (b != NULL)	{		BufferPutInt8FAST(b, SSH2_FXP_ATTRS);		BufferPutInt32(b, id);		EncodeAttributes(b, a, file);		BufferPutPacket(bOut, b);		BufferDelete(b);	}}
开发者ID:Orea1234,项目名称:mysecureshell,代码行数:14,


示例18: test_expand_scalar_nested_inner_undefined

static void test_expand_scalar_nested_inner_undefined(void **state){    EvalContext *ctx = *state;    {        VarRef *lval = VarRefParse("default:bundle.foo[one]");        EvalContextVariablePut(ctx, lval, "first", CF_DATA_TYPE_STRING, NULL);        VarRefDestroy(lval);    }    Buffer *res = BufferNew();    ExpandScalar(ctx, "default", "bundle", "a$(foo[$(undefined)])b", res);    assert_string_equal("a$(foo[$(undefined)])b", BufferData(res));    BufferDestroy(res);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:15,


示例19: RunCmpCommand

static VersionCmpResult RunCmpCommand(EvalContext *ctx, const char *command, const char *v1, const char *v2, Attributes a,                                      const Promise *pp, PromiseResult *result){    Buffer *expanded_command = BufferNew();    {        VarRef *ref_v1 = VarRefParseFromScope("v1", PACKAGES_CONTEXT);        EvalContextVariablePut(ctx, ref_v1, v1, CF_DATA_TYPE_STRING, "source=promise");        VarRef *ref_v2 = VarRefParseFromScope("v2", PACKAGES_CONTEXT);        EvalContextVariablePut(ctx, ref_v2, v2, CF_DATA_TYPE_STRING, "source=promise");        ExpandScalar(ctx, NULL, PACKAGES_CONTEXT, command, expanded_command);        EvalContextVariableRemove(ctx, ref_v1);        VarRefDestroy(ref_v1);        EvalContextVariableRemove(ctx, ref_v2);        VarRefDestroy(ref_v2);    }    FILE *pfp = a.packages.package_commands_useshell ? cf_popen_sh(BufferData(expanded_command), "w") : cf_popen(BufferData(expanded_command), "w", true);    if (pfp == NULL)    {        cfPS(ctx, LOG_LEVEL_ERR, PROMISE_RESULT_FAIL, pp, a, "Can not start package version comparison command '%s'. (cf_popen: %s)",             BufferData(expanded_command), GetErrorStr());        *result = PromiseResultUpdate(*result, PROMISE_RESULT_FAIL);        BufferDestroy(expanded_command);        return VERCMP_ERROR;    }    Log(LOG_LEVEL_VERBOSE, "Executing '%s'", BufferData(expanded_command));    int retcode = cf_pclose(pfp);    if (retcode == -1)    {        cfPS(ctx, LOG_LEVEL_ERR, PROMISE_RESULT_FAIL, pp, a, "Error during package version comparison command execution '%s'. (cf_pclose: %s)",             BufferData(expanded_command), GetErrorStr());        *result = PromiseResultUpdate(*result, PROMISE_RESULT_FAIL);        BufferDestroy(expanded_command);        return VERCMP_ERROR;    }    BufferDestroy(expanded_command);    return retcode == 0;}
开发者ID:ddurieux,项目名称:core,代码行数:48,


示例20: test_extract_reference_

static void test_extract_reference_(const char *scalar, bool expect_success, const char *outer, const char *inner){    Buffer *b = BufferNew();    size_t len = strlen(scalar);    bool success = ExtractScalarReference(b, scalar, len, false);    assert_true(success == expect_success);    assert_string_equal(outer, BufferData(b));    BufferClear(b);    success = ExtractScalarReference(b, scalar, len, true);    assert_true(success == expect_success);    assert_string_equal(inner, BufferData(b));    BufferDestroy(b);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:16,


示例21: test_generic_interface

static void test_generic_interface(void){    /*     * This test might seem short, but it is intentional.     * All the parsing tests should be implemented directly     * on the corresponding parser test. Keep this test as     * lean as possible.     */    IPAddress *address = NULL;    Buffer *buffer = NULL;    buffer = BufferNew();    assert_true(buffer != NULL);    BufferSet(buffer, "127.0.0.1", strlen("127.0.0.1"));    address = IPAddressNew(buffer);    assert_true(address != NULL);    assert_int_equal(IP_ADDRESS_TYPE_IPV4, IPAddressType(address));    assert_string_equal("127.0.0.1", BufferData(IPAddressGetAddress(address)));    assert_int_equal(0, IPAddressGetPort(address));    assert_int_equal(0, IPAddressDestroy(&address));    BufferSet(buffer, "127.0.0.1:8080", strlen("127.0.0.1:8080"));    address = IPAddressNew(buffer);    assert_true(address != NULL);    assert_int_equal(IP_ADDRESS_TYPE_IPV4, IPAddressType(address));    assert_string_equal("127.0.0.1", BufferData(IPAddressGetAddress(address)));    assert_int_equal(8080, IPAddressGetPort(address));    assert_int_equal(0, IPAddressDestroy(&address));    BufferSet(buffer, "0:1:2:3:4:5:6:7", strlen("0:1:2:3:4:5:6:7"));    address = IPAddressNew(buffer);    assert_true(address != NULL);    assert_int_equal(IP_ADDRESS_TYPE_IPV6, IPAddressType(address));    assert_string_equal("0:1:2:3:4:5:6:7", BufferData(IPAddressGetAddress(address)));    assert_int_equal(0, IPAddressGetPort(address));    assert_int_equal(0, IPAddressDestroy(&address));    BufferSet(buffer, "[0:1:2:3:4:5:6:7]:9090", strlen("[0:1:2:3:4:5:6:7]:9090"));    address = IPAddressNew(buffer);    assert_true(address != NULL);    assert_int_equal(IP_ADDRESS_TYPE_IPV6, IPAddressType(address));    assert_string_equal("0:1:2:3:4:5:6:7", BufferData(IPAddressGetAddress(address)));    assert_int_equal(9090, IPAddressGetPort(address));    assert_int_equal(0, IPAddressDestroy(&address));    BufferDestroy(buffer);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:47,


示例22: DoAdminServerGetStatus

void	DoAdminServerGetStatus(){  struct stat	st;  tBuffer		*b;  char		state;    b = BufferNew();  BufferPutInt8FAST(b, SSH_ADMIN_SERVER_GET_STATUS_REPLY);  if (stat(SHUTDOWN_FILE, &st) == -1)    state = 1;  else    state = 0;  BufferPutInt8(b, state);  BufferPutPacket(bOut, b);  BufferDelete(b);  DEBUG((MYLOG_DEBUG, "[DoAdminServerGetStatus]state:'%i'", state));}
开发者ID:Orea1234,项目名称:mysecureshell,代码行数:17,


示例23: DoExtDiskSpaceOpenSSH_Path

static void DoExtDiskSpaceOpenSSH_Path(tBuffer *bOut, u_int32_t id, const char *path){	struct STATFS stfs;	tFSPath	*realPath;	DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH_Path]Path: %s", path));	realPath = FSCheckPath(path);	if (realPath != NULL && !HAS_BIT(gl_var->flagsDisable, SFTP_DISABLE_STATSFS))	{		DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH_Path]Realpath: %s", realPath->realPath));		if (STATFS(realPath->realPath, &stfs) == 0)		{			tBuffer *b;			b = BufferNew();			BufferPutInt8(b, SSH2_FXP_EXTENDED_REPLY);			BufferPutInt32(b, id);			BufferPutInt64(b, stfs.f_bsize); /* file system block size */			BufferPutInt64(b, stfs.f_frsize); /* fundamental fs block size */			BufferPutInt64(b, stfs.f_blocks); /* number of blocks (unit f_frsize) */			BufferPutInt64(b, stfs.f_bfree); /* free blocks in file system */			BufferPutInt64(b, stfs.f_bavail); /* free blocks for non-root */			BufferPutInt64(b, stfs.f_files); /* total file inodes */			BufferPutInt64(b, stfs.f_ffree); /* free file inodes */			BufferPutInt64(b, stfs.f_favail); /* free file inodes for to non-root */			BufferPutInt64(b, stfs.f_fsid); /* file system id */			BufferPutInt64(b, stfs.f_flag); /* bit mask of f_flag values */			BufferPutInt64(b, stfs.f_namemax); /* maximum filename length */			BufferPutPacket(bOut, b);			BufferDelete(b);		}		else		{			DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH_Path]error: %s", strerror(errno)));			SendStatus(bOut, id, errnoToPortable(errno));		}	}	else	{		DEBUG((MYLOG_DEBUG, "[DoExtDiskSpaceOpenSSH_Path]FSCheckPath failed"));		SendStatus(bOut, id, SSH2_FX_PERMISSION_DENIED);	}	FSDestroyPath(realPath);}
开发者ID:mysecureshell,项目名称:mysecureshell,代码行数:44,


示例24: DoAdminConfigGet

void	DoAdminConfigGet(){	struct stat	st;	u_int32_t	status = SSH2_FX_FAILURE;	int			fd;	if (stat(CONFIG_FILE, &st) != -1 && (fd = open(CONFIG_FILE, O_RDONLY)) >= 0)	{		u_int32_t	r;		tBuffer		*b = BufferNew();		char		*buffer;		BufferPutInt8FAST(b, SSH2_FXP_DATA);		BufferPutInt32(b, 0);		if ((buffer = malloc(st.st_size)) != NULL)		{			r = read(fd, buffer, st.st_size);			BufferPutData(b, buffer, r);			free(buffer);			status = SSH2_FX_OK;		}		xclose(fd);		if (stat("/etc/shells", &st) != -1 && (fd = open("/etc/shells", O_RDONLY)) >= 0)		{			if ((buffer = malloc(st.st_size)) != NULL)			{				r = read(fd, buffer, st.st_size);				BufferPutData(b, buffer, r);				free(buffer);			}			else				BufferPutInt32(b, 0);			xclose(fd);		}		if (status == SSH2_FX_OK)			BufferPutPacket(bOut, b);		BufferDelete(b);	}	else		status = errnoToPortable(errno);	DEBUG((MYLOG_DEBUG, "[DoAdminConfigGet]status: %i", status));	if (status != SSH2_FX_OK)		SendStatus(bOut, 0, status);}
开发者ID:Orea1234,项目名称:mysecureshell,代码行数:44,


示例25: test_expand_scalar_two_scalars_nested

static void test_expand_scalar_two_scalars_nested(void **state){    EvalContext *ctx = *state;    {        VarRef *lval = VarRefParse("default:bundle.one");        EvalContextVariablePut(ctx, lval, "first", CF_DATA_TYPE_STRING, NULL);        VarRefDestroy(lval);    }    {        VarRef *lval = VarRefParse("default:bundle.two");        EvalContextVariablePut(ctx, lval, "one", CF_DATA_TYPE_STRING, NULL);        VarRefDestroy(lval);    }    Buffer *res = BufferNew();    ExpandScalar(ctx, "default", "bundle", "a $($(two))b", res);    assert_string_equal("a firstb", BufferData(res));    BufferDestroy(res);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:20,


示例26: test_expand_scalar_array_concat

static void test_expand_scalar_array_concat(void **state){    EvalContext *ctx = *state;    {        VarRef *lval = VarRefParse("default:bundle.foo[one]");        EvalContextVariablePut(ctx, lval, "first", CF_DATA_TYPE_STRING, NULL);        VarRefDestroy(lval);    }    {        VarRef *lval = VarRefParse("default:bundle.foo[two]");        EvalContextVariablePut(ctx, lval, "second", CF_DATA_TYPE_STRING, NULL);        VarRefDestroy(lval);    }    Buffer *res = BufferNew();    ExpandScalar(ctx, "default", "bundle", "a $(foo[one]) b $(foo[two])c", res);    assert_string_equal("a first b secondc", BufferData(res));    BufferDestroy(res);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:20,


示例27: test_zeroBuffer

static void test_zeroBuffer(void **state){    char element0[] = "element0";    unsigned int element0size = strlen(element0);    const char *element0pointer = NULL;    Buffer *buffer = NULL;    assert_int_equal(0, BufferNew(&buffer));    assert_int_equal(element0size, BufferSet(buffer, element0, element0size));    element0pointer = buffer->buffer;    assert_int_equal(element0size, buffer->used);    assert_int_equal(element0size, BufferSize(buffer));    BufferZero(buffer);    assert_int_equal(DEFAULT_BUFFER_SIZE, buffer->capacity);    assert_int_equal(0, buffer->used);    assert_int_equal(0, BufferSize(buffer));    assert_true(element0pointer == buffer->buffer);    BufferZero(NULL);    assert_int_equal(0, BufferDestroy(&buffer));}
开发者ID:cyphermaster,项目名称:core,代码行数:20,


示例28: test_extract_scalar_prefix

static void test_extract_scalar_prefix(){    Buffer *b = BufferNew();    assert_int_equal(sizeof("hello ") - 1, ExtractScalarPrefix(b, "hello $(world) xy", sizeof("hello $(world) xy") -1));    assert_string_equal("hello ", BufferData(b));    BufferClear(b);    assert_int_equal(sizeof("hello (world) xy") -1, ExtractScalarPrefix(b, "hello (world) xy", sizeof("hello (world) xy") -1));    assert_string_equal("hello (world) xy", BufferData(b));    BufferClear(b);    assert_int_equal(sizeof("hello$)") -1, ExtractScalarPrefix(b, "hello$)$(world)xy", sizeof("hello$)$(world)xy") -1));    assert_string_equal("hello$)", BufferData(b));    BufferClear(b);    assert_int_equal(0, ExtractScalarPrefix(b, "", 0));    assert_string_equal("", BufferData(b));    BufferDestroy(b);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:20,


示例29: BufferFilter

Buffer* BufferFilter(Buffer *buffer, BufferFilterFn filter, const bool invert){    assert(buffer);    Buffer *filtered = BufferNew();    for (unsigned int i = 0; i < buffer->used; ++i)    {        bool test = (*filter)(buffer->buffer[i]);        if (invert)        {            test = !test;        }        if (test)        {            BufferAppendChar(filtered, buffer->buffer[i]);        }    }    return filtered;}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:21,



注:本文中的BufferNew函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ Buffercmp函数代码示例
C++ BufferIsValid函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。