blob: bb1222ef08fd3fdee6a829347e32945eb58dad21 [file] [log] [blame]
Wentao Shangbd63e462012-12-03 16:19:33 -08001/**
Jeff Thompson146d7de2012-11-17 16:15:28 -08002 * @author: Meki Cheraoui
Jeff Thompson745026e2012-10-13 12:49:20 -07003 * See COPYING for copyright and distribution information.
Meki Cherkaouif441d3a2012-04-22 15:17:52 -07004 * This class represents CCNTime Objects
5 */
6
Jeff Thompson2b14c7e2013-07-29 15:09:56 -07007/**
8 * @constructor
9 */
10var CCNTime = function CCNTime(input) {
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070011 this.NANOS_MAX = 999877929;
12
Jeff Thompson2b14c7e2013-07-29 15:09:56 -070013 if(typeof input =='number')
Meki Cherkaoui8f173612012-06-06 01:05:40 -070014 this.msec = input;
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070015 else{
16 if(LOG>1) console.log('UNRECOGNIZED TYPE FOR TIME');
17 }
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070018};
19
20
Meki Cherkaoui8f173612012-06-06 01:05:40 -070021CCNTime.prototype.getJavascriptDate = function(){
22 var d = new Date();
23 d.setTime( this.msec );
24 return d
25};
26
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070027 /**
28 * Create a CCNTime
29 * @param timestamp source timestamp to initialize from, some precision will be lost
30 */
31
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070032
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070033 /**
34 * Create a CCNTime from its binary encoding
35 * @param binaryTime12 the binary representation of a CCNTime
36 */
Meki Cherkaoui8f173612012-06-06 01:05:40 -070037/*CCNTime.prototype.setDateBinary = function(
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070038 //byte []
39 binaryTime12) {
40
41
42 if ((null == binaryTime12) || (binaryTime12.length == 0)) {
43 throw new IllegalArgumentException("Invalid binary time!");
44 }
45
46
47 value = 0;
48 for(i = 0; i < binaryTime12.length; i++) {
49 value = value << 8;
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070050 b = (binaryTime12[i]) & 0xFF;
51 value |= b;
52 }
Meki Cherkaoui8f173612012-06-06 01:05:40 -070053
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070054 //this.date = new Date(value);
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070055
56};
57
58//byte[]
59CCNTime.prototype.toBinaryTime = function() {
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070060
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070061 return this.msec; //unsignedLongToByteArray(this.date.getTime());
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070062
Meki Cherkaoui8f173612012-06-06 01:05:40 -070063}*/
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070064/*
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070065unsignedLongToByteArray= function( value) {
66 if( 0 == value )
67 return [0];
68
69 if( 0 <= value && value <= 0x00FF ) {
70 //byte []
71 bb = new Array[1];
72 bb[0] = (value & 0x00FF);
73 return bb;
74 }
75
76
77 //byte []
78 out = null;
79 //int
80 offset = -1;
81 for(var i = 7; i >=0; --i) {
82 //byte
83 b = ((value >> (i * 8)) & 0xFF);
84 if( out == null && b != 0 ) {
85 out = new Array(i+1);//byte[i+1];
86 offset = i;
87 }
88 if( out != null )
89 out[ offset - i ] = b;
90 }
91 return out;
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070092}*/
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070093