X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Fsamples%2Flinux%2FSimpleClientServer%2Focserver.cpp;h=13cf61bee86eb44519a16bbc8810b43d17c6b642;hb=5b285e73548cac989ef00461e1a96bc60b613ae1;hp=018d34d43a630299970d2840277e356744d68ec4;hpb=45c364268c4f5d575d98f4cd88b571b536c6cb17;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp b/resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp index 018d34d..13cf61b 100644 --- a/resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp +++ b/resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp @@ -23,14 +23,24 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef HAVE_WINDOWS_H +#include +#endif #include +#ifdef HAVE_PTHREAD_H #include +#endif #include +#include #include "ocstack.h" #include "logger.h" #include "ocpayload.h" #include "ocserver.h" +#include "common.h" +#include "platform_features.h" //string length of "/a/light/" + std::numeric_limits::digits10 + '\0'" // 9 + 9 + 1 = 19 @@ -74,6 +84,8 @@ const char *platformVersion = "myPlatformVersion"; const char *supportUrl = "mySupportUrl"; const char *version = "myVersion"; const char *systemTime = "2015-05-15T11.04"; +const char *specVersion = "myDeviceSpecVersion"; +const char* dataModleVersion = "myDeviceModleVersion"; // Entity handler should check for resourceTypeName and ResourceInterface in order to GET // the existence of a known resource @@ -662,8 +674,7 @@ void *ChangeLightRepresentation (void *param) OCStackResult result = OC_STACK_ERROR; uint8_t j = 0; - uint8_t numNotifies = (SAMPLE_MAX_NUM_OBSERVATIONS)/2; - OCObservationId obsNotify[numNotifies]; + OCObservationId obsNotify[(SAMPLE_MAX_NUM_OBSERVATIONS)/2]; while (!gQuitFlag) { @@ -814,6 +825,8 @@ void DeletePlatformInfo() void DeleteDeviceInfo() { free (deviceInfo.deviceName); + free (deviceInfo.specVersion); + free (deviceInfo.dataModleVersion); } bool DuplicateString(char** targetString, const char* sourceString) @@ -917,12 +930,20 @@ OCStackResult SetPlatformInfo(const char* platformID, const char *manufacturerNa return OC_STACK_ERROR; } -OCStackResult SetDeviceInfo(const char* deviceName) +OCStackResult SetDeviceInfo(const char* deviceName, const char* specVersion, const char* dataModleVersion) { if(!DuplicateString(&deviceInfo.deviceName, deviceName)) { return OC_STACK_ERROR; } + if(!DuplicateString(&deviceInfo.specVersion, specVersion)) + { + return OC_STACK_ERROR; + } + if(!DuplicateString(&deviceInfo.dataModleVersion, dataModleVersion)) + { + return OC_STACK_ERROR; + } return OC_STACK_OK; } @@ -1043,7 +1064,7 @@ int main(int argc, char* argv[]) exit (EXIT_FAILURE); } - registrationResult = SetDeviceInfo(deviceName); + registrationResult = SetDeviceInfo(deviceName, specVersion, dataModleVersion); if (registrationResult != OC_STACK_OK) { @@ -1051,6 +1072,8 @@ int main(int argc, char* argv[]) exit (EXIT_FAILURE); } + OCResourcePayloadAddStringLL(&deviceInfo.types, "oic.d.tv"); + registrationResult = OCSetDeviceInfo(deviceInfo); if (registrationResult != OC_STACK_OK) @@ -1099,12 +1122,16 @@ int main(int argc, char* argv[]) if (observeThreadStarted) { +#ifdef HAVE_PTHREAD_H pthread_cancel(threadId_observe); pthread_join(threadId_observe, NULL); +#endif } +#ifdef HAVE_PTHREAD_H pthread_cancel(threadId_presence); pthread_join(threadId_presence, NULL); +#endif OIC_LOG(INFO, TAG, "Exiting ocserver main loop...");