#include <stdlib.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
#define OPEN_API_BUFFER_SIZE 128
static void printAppMenu(char *name)
{
printf("Usage: %s <test#> <arg1> <arg2> ... \n", name);
printf("Test 1: Convert hh:mm string to int values: %s 1 <bufd>\n", name);
printf("Test 2: Convert minute offset into hour and minutes: %s 2 <minutes>\n", name);
printf("Test 3: Convert month name to number value: %s 3 <name>\n", name);
printf("Test 4: Set the time zone acronym parameter: %s 4 <acronym>\n", name);
printf("Test 5: Get the time zone acronym parameter: %s 5 \n", name);
printf("Test 6: Get non-recurring summertime parameters: %s 6 <parameter>\n", name);
printf("Test 7: Get recurring summertime parameters: %s 7 <parameter>\n", name);
printf("Test 8: Set recurring summertime parameters: %s 8 <parameter><bufd>\n", name);
printf("Test 9: Set non-recurring summertime parameters: %s 9 <parameter><bufd>\n", name);
printf("Test 10: Get the summer-time mode: %s 10 \n", name);
printf("Test 11: Set the summer-time mode: %s 11 <mode>\n", name);
printf("Test 12: Gets the timezone acronym string: %s 12 <zoneName>\n", name);
printf("Test 13: Get the current synchronized UTC time since the Unix Epoch: %s 13 <>\n", name);
printf("Test 14: Get the current UTC time since the Unix Epoch: %s 14 <unit>\n", name);
printf("Test 15: know whether the summer-time is in effect or not: %s 15 <>\n", name);
printf("Test 16: Adjusts current time for timezone and summer time: %s 16 <year><month><day><hour><minutes><seconds>\n", name);
printf("Test 17: Converts the given Raw time to UTC and then adds the timezone and summer time offsets if configured: %s 17 <rawTime>\n", name);
printf("Test 18: Run API sanity checks: %s 18 \n", name);
return;
}
{
uint32_t hour;
uint32_t seconds;
uint32_t minutes;
uint32_t year;
uint32_t number;
uint32_t pMin;
uint32_t pHour;
uint32_t month;
uint32_t day;
char buffer[128];
badBufdescPointer.
pstart = (
void *) NULL;
badBufdescPointer.
size =
sizeof(buffer);
bufd.pstart = buffer;
bufd.size = sizeof(buffer);
zeroLenBuf.pstart = buffer;
zeroLenBuf.size = 0;
printf("Testing OpEN APIs sanity:\n");
printf("Testing openapiTimeConvert():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 4:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 4:(result = %d)\n", result);
printf("buffdesc 0 length size argument 4:(result = %d)\n", result);
printf("NULL argument 4:(result = %d)\n", result);
printf("NULL argument 4:(result = %d)\n", result);
printf("Testing openapiMinutesOffsetConvert():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 4:(result = %d)\n", result);
printf("NULL argument 4:(result = %d)\n", result);
printf("Testing openapiWeekNumberGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 3:(result = %d)\n", result);
printf("buffdesc 0 length size argument 3:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("Testing openapixTimeZoneAcronymSet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 2:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 2:(result = %d)\n", result);
printf("buffdesc 0 length size argument 2:(result = %d)\n", result);
printf("Testing openapiTimeZoneAcronymGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 2:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 2:(result = %d)\n", result);
printf("buffdesc 0 length size argument 2:(result = %d)\n", result);
printf("Testing openapiStNonRecurringGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 3:(result = %d)\n", result);
printf("buffdesc 0 length size argument 3:(result = %d)\n", result);
printf("Testing openapiStRecurringGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 3:(result = %d)\n", result);
printf("buffdesc 0 length size argument 3:(result = %d)\n", result);
printf("Testing openapiStRecurringSet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 3:(result = %d)\n", result);
printf("buffdesc 0 length size argument 3:(result = %d)\n", result);
printf("Testing openapiStNonRecurringSet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 3:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 3:(result = %d)\n", result);
printf("buffdesc 0 length size argument 3:(result = %d)\n", result);
printf("Testing openapiStModeGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 2:(result = %d)\n", result);
printf("Testing openapiSystemTimeZoneAcronymGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 2:(result = %d)\n", result);
printf("NULL buffdesc pstart argument 2:(result = %d)\n", result);
printf("buffdesc 0 length size argument 2:(result = %d)\n", result);
printf("Testing openapiUTCTimeGet():\n");
printf("NULL argument 1:(result = %d)\n", result);
printf("Testing openapiAdjustedTimeGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
printf("NULL argument 7:(result = %d)\n", result);
return;
}
{
{
printf("Bad return code trying to convert hh:mm string to int values. (result = %d)\n", result);
}
else
{
printf("Converted Time into Hour:%d Minutes :%d\n",*pHour,*pMin);
}
return;
}
void minutesOffsetConvert(
openapiClientHandle_t *client_handle, int32_t minutes, uint32_t *pHour, uint32_t *pMin)
{
{
printf("Bad return code trying to convert minute offset into hour and minutes (result = %d)\n", result);
}
else
{
printf("Converted minutes offset to Hour:%d Minutes :%d\n",*pHour,*pMin);
}
return;
}
{
{
printf("Bad return code trying to convert month name to number value (result = %d)\n", result);
}
else
{
printf("Converted month name to calender weeknumber CW :%d\n",*number);
}
return;
}
{
{
printf("Bad return code trying to set the time zone acronym parameter(result = %d)\n", result);
}
else
{
printf("TIme Zone acronym is set %s \n",(char*)acronym->pstart);
}
return;
}
{
{
printf("Bad return code trying to get the time zone acronym parameter(result = %d)\n", result);
}
else
{
printf("Get the TImeZone Acronym :%s \n",(char*)acronym->pstart);
}
return;
}
{
{
printf("Bad return code trying to get non-recurring summertime parameters. (result = %d)\n", result);
}
else
{
printf("Get the non-recurring summertime :%s\n",(char*)bufd->pstart);
}
return;
}
{
{
printf("Bad return code trying to get non-recurring summertime parameters. (result = %d)\n", result);
}
else
{
printf("Get the recurring summertime :%s\n",(char*)bufd->pstart);
}
return;
}
{
{
printf("Bad return code trying to set recurring summertime parameters. (result = %d)\n", result);
}
else
{
printf("Set the recurring summertime :%s\n",(char*)bufd->pstart);
}
return;
}
{
{
printf("Bad return code trying to set non-recurring summertime parameters. (result = %d)\n", result);
}
else
{
printf("Set the non-recurring summertime :%s\n",(char*)bufd->pstart);
}
return;
}
{
{
printf("Bad return code trying to get the summer-time mode (result = %d)\n", result);
}
else
{
printf("Get Summer Time Mode :%d\n", *mode);
}
return;
}
{
{
printf("Bad return code trying to set the summer-time mode (result = %d)\n", result);
}
else
{
printf("Set Summer Time Mode :%d\n",mode);
}
return;
}
{
{
printf("Bad return code trying to gets the timezone acronym string (result = %d)\n", result);
}
else
{
printf("Gets the timezone acronym string %s\n",(char*)zoneName->pstart);
}
return;
}
{
printf("Get the current synchronized UTC time since the Unix Epoch %d \n",result);
return;
}
{
{
printf("Bad return code trying to get the current UTC time since the Unix Epoch. (result = %d)\n", result);
}
else
{
printf(
"Get the current UTC time since the Unix Epoch Seconds:%d nanoseconds :%d\n",(
int)unit->
seconds, (
int)unit->
nanoseconds);
}
return;
}
{
{
printf("Summer time is not in effect");
}
else
{
printf("Summer-time is in effect\n");
}
return;
}
void AdjustedTimeGet(
openapiClientHandle_t *client_handle, uint32_t *year, uint32_t *month, uint32_t * day, uint32_t * hour, uint32_t * minutes, uint32_t * seconds)
{
{
printf("Bad return code trying to adjusts current time for timezone and summer time. (result = %d)\n", result);
}
else
{
printf("Adjusts current time for timezone and summer time year:%d ,month :%d ,day :%d , hour:%d , minutes:%d ,Seconds:%d\n",*year,*month,*day,*hour,*minutes,*seconds);
}
return;
}
{
uint32_t result;
printf("Converted the given Raw time to UTC and then adds the timezone and summer time offsets if configured :%d\n",result);
return;
}
int main(int argc, char **argv)
{
uint32_t testNum;
char buffer[128] = {0};
char switch_os_revision_string[100];
int show_help = 1;
if (argc < 2)
{
printAppMenu(argv[0]);
return -1;
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
return -1;
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting API example application");
printf("\n");
switch_os_revision.pstart = switch_os_revision_string;
switch_os_revision.size = sizeof(switch_os_revision_string);
printf("Network OS version = %s\n", switch_os_revision_string);
else
printf("Network OS version retrieve error\n");
printf("\n");
switch (testNum)
{
case 1:
if (argc == 3)
{
uint32_t pMin;
uint32_t pHour;
bufd.pstart = buffer;
strncpy(bufd.pstart,argv[2],strlen(argv[2])+1);
bufd.size = strlen(bufd.pstart)+1;
timeConvert(&clientHandle, &bufd, &pHour, &pMin);
show_help = 0;
}
break;
case 2:
if (argc == 3)
{
uint32_t pMin;
uint32_t pHour;
int32_t minutes = atoi(argv[2]);
minutesOffsetConvert(&clientHandle, minutes, &pHour, &pMin);
show_help = 0;
}
break;
case 3:
if (argc == 3)
{
uint32_t number;
name.pstart = buffer;
strncpy(name.pstart,argv[2],strlen(argv[2])+1);
name.size = strlen(name.pstart)+1;
weekNumberGet(&clientHandle, &name, &number);
show_help = 0;
}
break;
case 4:
if (argc == 3)
{
acronym.pstart = buffer;
strncpy(acronym.pstart,argv[2],strlen(argv[2]));
acronym.size = strlen(acronym.pstart)+1;
TimeZoneAcronymSet(&clientHandle, &acronym);
show_help = 0;
}
break;
case 5:
if (argc == 2)
{
acronym.pstart = buffer;
acronym.size = sizeof(buffer);
TimeZoneAcronymGet(&clientHandle, &acronym);
show_help = 0;
}
break;
case 6:
if (argc == 3)
{
nonRecurringParam = atoi(argv[2]);
bufd.pstart = buffer;
bufd.size = sizeof(buffer);
StNonRecurringGet(&clientHandle, nonRecurringParam, &bufd);
show_help = 0;
}
break;
case 7:
if (argc == 3)
{
recurringParam = atoi(argv[2]);
bufd.pstart = buffer;
bufd.size = sizeof(buffer);
StRecurringGet(&clientHandle, recurringParam, &bufd);
show_help = 0;
}
break;
case 8:
if (argc == 4)
{
recurringParam = atoi(argv[2]);
ptr.pstart = buffer;
strncpy(ptr.pstart,argv[3],strlen(argv[3]));
ptr.size = strlen(ptr.pstart);
StRecurringSet(&clientHandle, recurringParam, &ptr);
show_help = 0;
}
break;
case 9:
if (argc == 4)
{
nonRecurringParam = atoi(argv[2]);
bufd.pstart = buffer;
strncpy(bufd.pstart,argv[3],strlen(argv[3]));
bufd.size = strlen(bufd.pstart);
StNonRecurringSet(&clientHandle, nonRecurringParam, &bufd);
show_help = 0;
}
break;
case 10:
if (argc == 2)
{
stModeGet(&clientHandle, &mode);
show_help = 0;
}
break;
case 11:
if (argc == 3)
{
mode = atoi(argv[2]);
stModeSet(&clientHandle, mode);
show_help = 0;
}
break;
case 12:
if (argc == 2)
{
zoneName.pstart = buffer;
zoneName.size = sizeof(buffer);
SystemTimeZoneAcronymGet(&clientHandle, &zoneName);
show_help = 0;
}
break;
case 13:
if (argc == 2)
{
uTCTimeNow(&clientHandle);
show_help = 0;
}
break;
case 14:
if (argc == 2)
{
uTCTimeGet(&clientHandle, &unit);
show_help = 0;
}
break;
case 15:
if (argc == 2)
{
summerTimeIsInEffect(&clientHandle);
show_help = 0;
}
break;
case 16:
if (argc == 2)
{
uint32_t hour;
uint32_t seconds;
uint32_t minutes;
uint32_t year;
uint32_t day;
uint32_t month;
AdjustedTimeGet(&clientHandle, &year, &month, &day, &hour, &minutes, &seconds);
show_help = 0;
}
break;
case 17:
if (argc == 3)
{
uint32_t rawTime = atoi(argv[2]);
rawAdjustedTimeGet(&clientHandle, rawTime);
show_help = 0;
}
break;
case 18:
if (argc == 2)
{
runSanity(&clientHandle);
show_help = 0;
}
break;
default:
break;
}
if (show_help == 1)
{
printAppMenu(argv[0]);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping API example application");
return 0;
}