diff options
author | Varun Gudisena <vg411h@att.com> | 2017-08-30 20:49:32 -0500 |
---|---|---|
committer | Varun Gudisena <vg411h@att.com> | 2017-08-30 20:50:47 -0500 |
commit | cc9de9bc6803212f0233e0e1bf06aa63fe8b7a6a (patch) | |
tree | 7425883592f6cfe97c415f17ca80a0ba13041ce2 /src/main/cpp/cambria.h | |
parent | ffc0ccd5ab1ad5e6a5db2d674a4a6c30a31bc732 (diff) |
Add Initial Code Import
Intial Code import for dmaapClient
Issue-id: DMAAP-82
Change-Id: Ib627672d37e233b796619f93dd91f5caaf1592e4
Signed-off-by: Varun Gudisena <vg411h@att.com>
Diffstat (limited to 'src/main/cpp/cambria.h')
-rw-r--r-- | src/main/cpp/cambria.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/main/cpp/cambria.h b/src/main/cpp/cambria.h new file mode 100644 index 0000000..68e9ca9 --- /dev/null +++ b/src/main/cpp/cambria.h @@ -0,0 +1,114 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +#ifndef _CABMRIA_H_ +#define _CABMRIA_H_ + +/* + * This is a client library for the AT&T Cambria Event Routing Service. + * + * Cambria clients post string messages to the broker on a topic, optionally + * with a partition name. + */ + +/* An opaque type for the client instance. */ +typedef void* CAMBRIA_CLIENT; + +/* Cambria has two formats. CAMBRIA_NATIVE_FORMAT is preferred. */ +#define CAMBRIA_NATIVE_FORMAT "application/cambria" +#define CAMBRIA_JSON_FORMAT "application/json" + +/* pseudo-HTTP client-side status codes */ +#define CAMBRIA_NO_HOST 470 +#define CAMBRIA_CANT_CONNECT 471 +#define CAMBRIA_UNRECOGNIZED_FORMAT 472 +#define CAMBRIA_BAD_RESPONSE 570 + +/* + * Send response structure. Be sure to call cambriaDestroySendResponse() after receiving this. + */ +struct cambriaSendResponse +{ + int statusCode; + char* statusMessage; + char* responseBody; +}; + +/* + * Get response structure. Be sure to call cambriaDestroyGetResponse() after receiving this. + */ +struct cambriaGetResponse +{ + int statusCode; + char* statusMessage; + + int messageCount; + char** messageSet; +}; + +/* + * Send a message in a single call. Returns the number sent (1 or 0). + */ +extern "C" int cambriaSimpleSend ( const char* host, int port, const char* topic, const char* streamName, const char* msg ); + +/* + * Send multiple messages in a single call. Returns the number sent. + */ +extern "C" int cambriaSimpleSendMultiple ( const char* host, int port, const char* topic, const char* streamName, const char** messages, unsigned int msgCount ); + +/* + * Create a client instance to post messages to the given host:port, topic, and + * either the CAMBRIA_NATIVE_FORMAT or CAMBRIA_JSON_FORMAT. + */ +extern "C" CAMBRIA_CLIENT cambriaCreateClient ( const char* host, int port, const char* topic, const char* format ); + +/* + * Cleanup a client instance. + */ +extern "C" void cambriaDestroyClient ( CAMBRIA_CLIENT client ); + +/* + * Send a single message to the broker using the stream name provided. (If null, no stream name is used.) + */ +extern "C" cambriaSendResponse* cambriaSendMessage ( CAMBRIA_CLIENT client, const char* streamName, const char* message ); + +/* + * Send a batch of messages to the broker using the stream name provided. (If null, no stream name is used.) + */ +extern "C" cambriaSendResponse* cambriaSendMessages ( CAMBRIA_CLIENT client, const char* streamName, const char** messages, unsigned int count ); + +/* + * Retrieve messages from the broker. If a timeout value is 0 (or lower), the broker returns a response + * immediately. Otherwise, the server holds the connection open up to the given timeout. Likewise, if limit + * is 0 (or lower), the server sends as many messages as it cares to. Otherwise, at most 'limit' messages are + * returned. + */ +extern "C" cambriaGetResponse* cambriaGetMessages ( CAMBRIA_CLIENT client, unsigned long timeoutMs, unsigned int limit ); + +/* + * After processing a response, pass it back to the library for cleanup. + */ +extern "C" void cambriaDestroySendResponse ( CAMBRIA_CLIENT client, const cambriaSendResponse* response ); + +extern "C" void cambriaDestroyGetResponse ( CAMBRIA_CLIENT client, const cambriaGetResponse* response ); + +#endif |