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

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

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

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

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

示例1: IsIPV6Address

int IsIPV6Address(char *name){    if (!name)    {        return false;    }    Buffer *buffer = BufferNewFrom(name, strlen(name));    if (!buffer)    {        return false;    }    IPAddress *ip_address = NULL;    bool is_ip = false;    is_ip = IPAddressIsIPAddress(buffer, &ip_address);    if (!is_ip)    {        BufferDestroy(buffer);        return false;    }    if (IPAddressType(ip_address) != IP_ADDRESS_TYPE_IPV6)    {        BufferDestroy(buffer);        IPAddressDestroy(&ip_address);        return false;    }    BufferDestroy(buffer);    IPAddressDestroy(&ip_address);    return true;}
开发者ID:grimm26,项目名称:core,代码行数:29,


示例2: 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,


示例3: 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,


示例4: 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,


示例5: 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,


示例6: 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,


示例7: 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,


示例8: ShowContextsFormatted

static void ShowContextsFormatted(EvalContext *ctx){    ClassTableIterator *iter = EvalContextClassTableIteratorNewGlobal(ctx, NULL, true, true);    Class *cls = NULL;    Seq *seq = SeqNew(1000, free);    while ((cls = ClassTableIteratorNext(iter)))    {        char *class_name = ClassRefToString(cls->ns, cls->name);        StringSet *tagset = EvalContextClassTags(ctx, cls->ns, cls->name);        Buffer *tagbuf = StringSetToBuffer(tagset, ',');        char *line;        xasprintf(&line, "%-60s %-40s", class_name, BufferData(tagbuf));        SeqAppend(seq, line);        BufferDestroy(tagbuf);        free(class_name);    }    SeqSort(seq, (SeqItemComparator)strcmp, NULL);    printf("%-60s %-40s/n", "Class name", "Meta tags");    for (size_t i = 0; i < SeqLength(seq); i++)    {        const char *context = SeqAt(seq, i);        printf("%s/n", context);    }    SeqDestroy(seq);    ClassTableIteratorDestroy(iter);}
开发者ID:tzz,项目名称:core,代码行数:35,


示例9: ShowVariablesFormatted

static void ShowVariablesFormatted(EvalContext *ctx){    VariableTableIterator *iter = EvalContextVariableTableIteratorNew(ctx, NULL, NULL, NULL);    Variable *v = NULL;    Seq *seq = SeqNew(2000, free);    while ((v = VariableTableIteratorNext(iter)))    {        char *varname = VarRefToString(v->ref, true);        Writer *w = StringWriter();        switch (DataTypeToRvalType(v->type))        {        case RVAL_TYPE_CONTAINER:            JsonWriteCompact(w, RvalContainerValue(v->rval));            break;        default:            RvalWrite(w, v->rval);        }        const char *var_value;        if (StringIsPrintable(StringWriterData(w)))        {            var_value = StringWriterData(w);        }        else        {            var_value = "<non-printable>";        }        StringSet *tagset = EvalContextVariableTags(ctx, v->ref);        Buffer *tagbuf = StringSetToBuffer(tagset, ',');        char *line;        xasprintf(&line, "%-40s %-60s %-40s", varname, var_value, BufferData(tagbuf));        SeqAppend(seq, line);        BufferDestroy(tagbuf);        WriterClose(w);        free(varname);    }    SeqSort(seq, (SeqItemComparator)strcmp, NULL);    printf("%-40s %-60s %-40s/n", "Variable name", "Variable value", "Meta tags");    for (size_t i = 0; i < SeqLength(seq); i++)    {        const char *variable = SeqAt(seq, i);        printf("%s/n", variable);    }    SeqDestroy(seq);    VariableTableIteratorDestroy(iter);}
开发者ID:cstroe,项目名称:core,代码行数:60,


示例10: BufferRewrite

void BufferRewrite(Buffer *buffer, BufferFilterFn filter, const bool invert){    assert(buffer);    Buffer *rewrite = BufferFilter(buffer, filter, invert);    BufferSet(buffer, BufferData(rewrite), BufferSize(rewrite));    BufferDestroy(rewrite);}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:8,


示例11: TestCreateBuffer

void TestCreateBuffer(CuTest* tc){    buffer_t *buf = BufferCreate();    CuAssertTrue(tc, buf != NULL);    CuAssertIntEquals(tc, 0, BufferGetSize(buf));    BufferDestroy(&buf);    CuAssertPtrEquals(tc, 0, buf);}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:9,


示例12: assert

Rlist *RlistFromSplitRegex(const char *string, const char *regex, size_t max_entries, bool allow_blanks){    assert(string);    if (!string)    {        return NULL;    }    const char *sp = string;    size_t entry_count = 0;    int start = 0;    int end = 0;    Rlist *result = NULL;    Buffer *buffer = BufferNewWithCapacity(CF_MAXVARSIZE);    pcre *rx = CompileRegex(regex);    if (rx)    {        while ((entry_count < max_entries) &&               StringMatchWithPrecompiledRegex(rx, sp, &start, &end))        {            if (end == 0)            {                break;            }            BufferClear(buffer);            BufferAppend(buffer, sp, start);            if (allow_blanks || BufferSize(buffer) > 0)            {                RlistAppendScalar(&result, BufferData(buffer));                entry_count++;            }            sp += end;        }        pcre_free(rx);    }    if (entry_count < max_entries)    {        BufferClear(buffer);        size_t remaining = strlen(sp);        BufferAppend(buffer, sp, remaining);        if ((allow_blanks && sp != string) || BufferSize(buffer) > 0)        {            RlistAppendScalar(&result, BufferData(buffer));        }    }    BufferDestroy(buffer);    return result;}
开发者ID:bahamat,项目名称:cfengine-core,代码行数:57,


示例13: 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,


示例14: 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,


示例15: TestAppend

void TestAppend(CuTest* tc){    buffer_t *buf = BufferCreate();    uint8_t data[2] = { 1, 2 };    BufferAppend(buf, data, sizeof(data));    CuAssertIntEquals(tc, 2, BufferGetSize(buf));    CuAssertIntEquals(tc, 1, BufferGetByte(buf, 0));    CuAssertIntEquals(tc, 2, BufferGetByte(buf, 1));    BufferDestroy(&buf);}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:10,


示例16: ZmtpReaderDestroy

void ZmtpReaderDestroy(zmtpreader_t **self){    assert(self);    zmtpreader_t *reader = *self;    if (reader != NULL) {        free((void*) reader->id);        BufferDestroy(&reader->buffer);        free(reader);    }    *self = NULL;}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:11,


示例17: LineDestroy

voidLineDestroy(Line l){	Line aux = NULL;	while (l) {		BufferDestroy(l->b);		aux = l->next;			free(l);		l = aux;	}}
开发者ID:pharus,项目名称:ed,代码行数:11,


示例18: 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,


示例19: RlistItemIPLess

static bool RlistItemIPLess(void *lhs, void *rhs, ARG_UNUSED void *ctx){    const char *left_item = RlistScalarValue((Rlist*)lhs);    const char *right_item = RlistScalarValue((Rlist*)rhs);    Buffer *left_buffer = BufferNewFrom(left_item, strlen(left_item));    Buffer *right_buffer = BufferNewFrom(right_item, strlen(right_item));    IPAddress *left = IPAddressNew(left_buffer);    IPAddress *right = IPAddressNew(right_buffer);    bool matched_left = left != NULL;    bool matched_right = right != NULL;    BufferDestroy(&left_buffer);    BufferDestroy(&right_buffer);    if (matched_left && matched_right)    {        int less = IPAddressCompareLess(left, right);        IPAddressDestroy(&left);        IPAddressDestroy(&right);        return less;    }    IPAddressDestroy(&left);    IPAddressDestroy(&right);    if (matched_left)    {        return false;    }    if (matched_right)    {        return true;    }    // neither item matched    return RlistItemLess(lhs, rhs, ctx);}
开发者ID:cduclos,项目名称:core,代码行数:41,


示例20: Destroy

/***************************************************************************** * Destroy: destroy adjust video thread output method ***************************************************************************** * Terminate an output method created by adjustCreateOutputMethod *****************************************************************************/static void Destroy( vlc_object_t *p_this ){    filter_t *p_filter = (filter_t *)p_this;    filter_sys_t *p_sys = p_filter->p_sys;    BufferDestroy( &p_sys->input );    BufferDestroy( &p_sys->output );    QueueDestroy( &p_sys->atomic );    QueueDestroy( &p_sys->pending );    QueueDestroy( &p_sys->processed );    do_ListDestroy( &p_sys->overlays );    UnregisterCommand( p_filter );    var_DelCallback( p_filter, "overlay-input", AdjustCallback, p_sys );    var_DelCallback( p_filter, "overlay-output", AdjustCallback, p_sys );    vlc_mutex_destroy( &p_sys->lock );    free( p_sys->psz_inputfile );    free( p_sys->psz_outputfile );    free( p_sys );}
开发者ID:12307,项目名称:VLC-for-VS2010,代码行数:26,


示例21: TestCopyBuffer

void TestCopyBuffer(CuTest* tc){    buffer_t *buf = BufferCreate();    uint8_t data[4] = { 1, 2, 3, 4 };    BufferAppend(buf, data, sizeof(data));    uint8_t *data_out;    size_t size_out;    BufferCopy(buf, 2, &data_out, &size_out);    CuAssertIntEquals(tc, 2, size_out);    CuAssertIntEquals(tc, 0, memcmp(data, data_out, 2));    free(data_out);    BufferDestroy(&buf);}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:13,


示例22: 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,


示例23: TestAccessBufferData

void TestAccessBufferData(CuTest* tc){    buffer_t *buf = BufferCreate();    uint8_t data1[4] = { 1, 2, 3, 4 };    BufferAppend(buf, data1, sizeof(data1));    uint8_t *buffer_data;    size_t buffer_size;    BufferGetData(buf, &buffer_data, &buffer_size);    CuAssertTrue(tc, buffer_data != NULL);    CuAssertIntEquals(tc, 4, buffer_size);    BufferDestroy(&buf);}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:13,


示例24: test_createBuffer

static void test_createBuffer(void){    Buffer *buffer = BufferNew();    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(0, BufferDestroy(&buffer));}
开发者ID:lpefferkorn,项目名称:core,代码行数:14,


示例25: 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,


示例26: 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,


示例27: TestExtractBuffer

void TestExtractBuffer(CuTest* tc){    buffer_t *buf = BufferCreate();    uint8_t data[4] = { 1, 2, 3, 4 };    BufferAppend(buf, data, sizeof(data));    uint8_t *data_out;    size_t size_out;    BufferExtract(buf, 2, &data_out, &size_out);    CuAssertIntEquals(tc, 2, size_out);    CuAssertIntEquals(tc, 0, memcmp(data, data_out, 2));    free(data_out);    CuAssertIntEquals(tc, 2, BufferGetSize(buf));    CuAssertIntEquals(tc, 3, BufferGetByte(buf, 0));    CuAssertIntEquals(tc, 4, BufferGetByte(buf, 1));    BufferDestroy(&buf);}
开发者ID:b-cuts,项目名称:zmtpdump,代码行数:16,


示例28: 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,


示例29: 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,


示例30: test_createBufferFrom

static void test_createBufferFrom(void){    char *data = xstrdup("this is some data");    unsigned int dataLength = strlen(data);    Buffer *buffer = BufferNewFrom(data, dataLength);    assert_true(buffer != NULL);    assert_true(buffer->buffer != NULL);    assert_string_equal(data, buffer->buffer);    assert_int_equal(buffer->mode, BUFFER_BEHAVIOR_CSTRING);    assert_int_equal(buffer->capacity, DEFAULT_BUFFER_SIZE);    assert_int_equal(buffer->used, dataLength);    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(0, BufferDestroy(&buffer));    free (data);}
开发者ID:lpefferkorn,项目名称:core,代码行数:18,



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


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