Wiki

Clone wiki

mobilityfirst / Network_Service_API_Design_and_Usage

MobilityFirst Network Service API Design and Usage

1. Design

1.1 Basic Operations

1.2 Content Operations

1.3 Service Operations

2. Usage

2.1 Discussion

2.2 Examples

The following code snippet shows a simple C program written using the API that sends a message to another GUID identified endpoint and receives the corresponding response:

  #include <stdio.h>
  #include <stdlib.h>
  #include <mfapi.h>

  int main(int argc, char *argv[]) {
    struct Handle handle;
    //Choosing GUIDs 1 and 2 as reference
    int mine = 1, other = 2, sent = 0, received = 0, size = 65*1024;

    //Buffer to send and receive messages; I don't care about the content
    u_char buf[size];

    //Requesting basic transport. Listening for GUID mine
    ret = mfopen(&handle, "basic\0", NULL, mine);
    if(ret) {
        fprintf(stderr, "receiver: mfopen error\n");
        return (EXIT_FAILURE);
    }

    //Send message to other. No additional services requested
    sent = mfsend(&handle, buf, size, other, NULL);
    if (sent < 0) {
        fprintf (stderr,"mfsendmsg error\n");
        return EXIT_FAILURE;
    }

    //Wait to receive new message
    received = mfrecv_blk(&handle, buf, size, NULL, 0);
    if (received < 0) {
        fprintf (stderr,"mfrecv_blk error\n");
        return EXIT_FAILURE;
    }

    printf("Intended to send %d bytes, sent %d bytes, received %d bytes\n", size, sent, received);

    mfclose(&handle);
    return EXIT_SUCCESS;
  }

Updated