4 * Copyright (File::*c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
8 * Jaewon Lim <jaewon81.lim@samsung.com>
9 * Woojin Jung <woojin2.jung@samsung.com>
10 * Juyoung Kim <j0.kim@samsung.com>
12 * This library is free software; you can redistribute it and/or modify it under
13 * the terms of the GNU Lesser General Public License as published by the
14 * Free Software Foundation; either version 2.1 of the License, or (at your option)
17 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
18 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20 * License for more details.
22 * You should have received a copy of the GNU Lesser General Public License
23 * along with this library; if not, write to the Free Software Foundation, Inc., 51
24 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 #include "probeinfo.h"
36 static enum DaOptions _sopt = OPT_FILE;
41 result File::Construct(const Tizen::Base::String& filePath,
42 const Tizen::Base::String& openMode, bool createParentDirectories) {
43 typedef result (File::*methodType)(const Tizen::Base::String& filePath,
44 const Tizen::Base::String& openMode, bool createParentDirectories);
45 static methodType Constructp = 0;
47 probeInfo_t probeInfo;
50 bool bfiltering = true;
57 void *tmpPtr = dlsym(RTLD_NEXT,
58 "_ZN5Tizen2Io4File9ConstructERKNS_4Base6StringES5_b");
60 if (tmpPtr == NULL || dlerror() != NULL) {
61 perror("dlsym failed : Tizen::Io::File::Construct");
65 memcpy(&Constructp, &tmpPtr, sizeof(tmpPtr));
69 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
70 setProbePoint(&probeInfo);
74 ret = (this->*Constructp)(filePath, openMode, createParentDirectories);
76 if(postBlockBegin(blockresult)) {
80 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
81 LC_RESOURCE, probeInfo.eventIndex, "File::Construct",
82 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
84 WcharToChar(temp,filePath.GetPointer());
85 log.length += sprintf(log.data + log.length,"`,%s",temp);
86 WcharToChar(temp,openMode.GetPointer());
87 log.length += sprintf(log.data + log.length,", %s",temp);
88 log.length += sprintf(log.data + log.length,", %s`,%ld",(createParentDirectories == 0 ? "false" : "true"),ret);
89 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
90 if(ret == E_SUCCESS && E_SUCCESS == File::GetAttributes(this->GetName(),attr))
91 size = attr.GetFileSize();
92 WcharToChar(temp,filePath.GetPointer());
93 // WcharToChar(temp,this->GetName().GetPointer());
94 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OPEN,size,temp);
97 // if(E_SUCCESS != ret || blockresult == 2) {
98 // log.length += sprintf(log.data + log.length,
99 // "`,\ncallstack_start`,`,callstack_end");
101 log.length += sprintf(log.data + log.length,
102 "`,\ncallstack_start`,");
103 getBacktraceString(&log, 4096 - log.length - 17);
104 log.length += sprintf(log.data + log.length, "`,callstack_end");
107 printLog(&log, MSG_LOG);
114 result File::Construct(const Tizen::Base::String& filePath,
115 const Tizen::Base::String& openMode) {
116 typedef result (File::*methodType)(const Tizen::Base::String& filePath,
117 const Tizen::Base::String& openMode);
118 static methodType Constructp = 0;
120 probeInfo_t probeInfo;
123 bool bfiltering = true;
130 void *tmpPtr = dlsym(RTLD_NEXT,
131 "_ZN5Tizen2Io4File9ConstructERKNS_4Base6StringES5_");
133 if(tmpPtr == NULL || dlerror() != NULL) {
134 perror("dlsym failed : Tizen::Io::File::Construct");
138 memcpy(&Constructp, &tmpPtr, sizeof(tmpPtr));
142 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
143 setProbePoint(&probeInfo);
147 ret = (this->*Constructp)(filePath, openMode);
149 if(postBlockBegin(blockresult)) {
153 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
154 LC_RESOURCE, probeInfo.eventIndex, "File::Construct",
155 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
157 WcharToChar(temp,filePath.GetPointer());
158 log.length += sprintf(log.data + log.length,"`,%s",temp);
159 WcharToChar(temp,openMode.GetPointer());
160 log.length += sprintf(log.data + log.length,", %s`,%ld",temp,ret);
161 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
162 if(ret == E_SUCCESS && E_SUCCESS == File::GetAttributes(this->GetName(),attr))
163 size = attr.GetFileSize();
164 WcharToChar(temp,filePath.GetPointer());
165 // WcharToChar(temp,this->GetName().GetPointer());
166 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OPEN,size,temp);
169 // if(E_SUCCESS != ret || blockresult == 2) {
170 // log.length += sprintf(log.data + log.length,
171 // "`,\ncallstack_start`,`,callstack_end");
173 log.length += sprintf(log.data + log.length,
174 "`,\ncallstack_start`,");
175 getBacktraceString(&log, 4096 - log.length - 17);
176 log.length += sprintf(log.data + log.length, "`,callstack_end");
179 printLog(&log, MSG_LOG);
186 result File::Construct(const Tizen::Base::String& filePath,
187 const char *pOpenMode) {
188 typedef result (File::*methodType)(const Tizen::Base::String& filePath,
189 const char *pOpenMode);
190 static methodType Constructp = 0;
192 probeInfo_t probeInfo;
195 bool bfiltering = true;
202 void *tmpPtr = dlsym(RTLD_NEXT,
203 "_ZN5Tizen2Io4File9ConstructERKNS_4Base6StringEPKc");
205 if(tmpPtr == NULL || dlerror() != NULL) {
206 perror("dlsym failed : Tizen::Io::File::Construct");
210 memcpy(&Constructp, &tmpPtr, sizeof(tmpPtr));
214 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
215 setProbePoint(&probeInfo);
219 ret = (this->*Constructp)(filePath, pOpenMode);
221 if(postBlockBegin(blockresult)) {
225 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
226 LC_RESOURCE, probeInfo.eventIndex, "File::Construct",
227 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
229 WcharToChar(temp,filePath.GetPointer());
230 log.length += sprintf(log.data + log.length,"`,%s",temp);
231 log.length += sprintf(log.data + log.length,", %s`,%ld",pOpenMode,ret);
232 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
233 if(ret == E_SUCCESS && E_SUCCESS == File::GetAttributes(this->GetName(),attr))
234 size = attr.GetFileSize();
235 WcharToChar(temp,filePath.GetPointer());
236 // WcharToChar(temp,this->GetName().GetPointer());
237 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OPEN,size,temp);
240 // if(E_SUCCESS != ret || blockresult == 2) {
241 // log.length += sprintf(log.data + log.length,
242 // "`,\ncallstack_start`,`,callstack_end");
244 log.length += sprintf(log.data + log.length,
245 "`,\ncallstack_start`,");
246 getBacktraceString(&log, 4096 - log.length - 17);
247 log.length += sprintf(log.data + log.length, "`,callstack_end");
250 printLog(&log, MSG_LOG);
257 result File::Construct(const Tizen::Base::String& filePath,
258 const char *pOpenMode,
259 const Tizen::Base::ByteBuffer& secretKey) {
260 typedef result (File::*methodType)(const Tizen::Base::String& filePath,
261 const char *pOpenMode,
262 const Tizen::Base::ByteBuffer& secretKey);
263 static methodType Constructp = 0;
265 probeInfo_t probeInfo;
268 bool bfiltering = true;
276 void *tmpPtr = dlsym(RTLD_NEXT,
277 "_ZN5Tizen2Io4File9ConstructERKNS_4Base6StringEPKcRKNS2_10ByteBufferE");
279 if(tmpPtr == NULL || dlerror() != NULL) {
280 perror("dlsym failed : Tizen::Io::File::Construct");
284 memcpy(&Constructp, &tmpPtr, sizeof(tmpPtr));
288 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
289 setProbePoint(&probeInfo);
293 ret = (this->*Constructp)(filePath, pOpenMode, secretKey);
295 if(postBlockBegin(blockresult)) {
299 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
300 LC_RESOURCE, probeInfo.eventIndex, "File::Construct",
301 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
303 WcharToChar(temp,filePath.GetPointer());
304 log.length += sprintf(log.data + log.length,"`,%s",temp);
305 log.length += sprintf(log.data + log.length,", %s",pOpenMode);
306 log.length += sprintf(log.data + log.length,", 0x%x`,%ld",(unsigned int)&secretKey,ret);
307 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
308 if(ret == E_SUCCESS && E_SUCCESS == File::GetAttributes(this->GetName(),attr))
309 size = attr.GetFileSize();
310 WcharToChar(temp,filePath.GetPointer());
311 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OPEN,size,temp);
314 // if(E_SUCCESS != ret || blockresult == 2) {
315 // log.length += sprintf(log.data + log.length,
316 // "`,\ncallstack_start`,`,callstack_end");
318 log.length += sprintf(log.data + log.length,
319 "`,\ncallstack_start`,");
320 getBacktraceString(&log, 4096 - log.length - 17);
321 log.length += sprintf(log.data + log.length, "`,callstack_end");
324 printLog(&log, MSG_LOG);
331 result File::Flush(void) {
332 typedef result (File::*methodType)(void);
333 static methodType Flushp = 0;
335 probeInfo_t probeInfo;
338 bool bfiltering = true;
346 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File5FlushEv");
348 if (tmpPtr == NULL || dlerror() != NULL) {
349 perror("dlsym failed : Tizen::Io::File::Flush");
353 memcpy(&Flushp, &tmpPtr, sizeof(tmpPtr));
357 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
358 setProbePoint(&probeInfo);
362 ret = (this->*Flushp)();
364 if(postBlockBegin(blockresult)) {
368 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
369 LC_RESOURCE, probeInfo.eventIndex, "File::Flush",
370 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
372 log.length += sprintf(log.data + log.length,"`,`,%ld",ret);
373 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
374 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
375 size = attr.GetFileSize();
376 WcharToChar(temp,this->GetName().GetPointer());
377 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OTHER,size,temp);
380 // if(E_SUCCESS != ret || blockresult == 2) {
381 // log.length += sprintf(log.data + log.length,
382 // "`,\ncallstack_start`,`,callstack_end");
384 log.length += sprintf(log.data + log.length,
385 "`,\ncallstack_start`,");
386 getBacktraceString(&log, 4096 - log.length - 17);
387 log.length += sprintf(log.data + log.length, "`,callstack_end");
390 printLog(&log, MSG_LOG);
397 Tizen::Base::String File::GetName(void) const{
398 typedef Tizen::Base::String (File::*methodType)(void) const;
399 static methodType GetNamep = 0;
400 Tizen::Base::String ret;
401 probeInfo_t probeInfo;
404 bool bfiltering = true;
412 void *tmpPtr = dlsym(RTLD_NEXT, "_ZNK5Tizen2Io4File7GetNameEv");
414 if (tmpPtr == NULL || dlerror() != NULL) {
415 perror("dlsym failed : Tizen::Io::File::GetName");
419 memcpy(&GetNamep, &tmpPtr, sizeof(tmpPtr));
423 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
424 setProbePoint(&probeInfo);
428 ret = (this->*GetNamep)();
429 result res = GetLastResult();
431 if(postBlockBegin(blockresult)) {
435 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
436 LC_RESOURCE, probeInfo.eventIndex, "File::GetName",
437 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
439 WcharToChar(temp,ret.GetPointer());
440 log.length += sprintf(log.data + log.length,"`,`,%s",temp);
441 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
442 if(E_SUCCESS == File::GetAttributes(ret,attr))
443 size = attr.GetFileSize();
444 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",res,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OTHER,size,temp);
447 // if(E_SUCCESS != res || blockresult == 2) {
448 // log.length += sprintf(log.data + log.length,
449 // "`,\ncallstack_start`,`,callstack_end");
451 log.length += sprintf(log.data + log.length,
452 "`,\ncallstack_start`,");
453 getBacktraceString(&log, 4096 - log.length - 17);
454 log.length += sprintf(log.data + log.length, "`,callstack_end");
457 printLog(&log, MSG_LOG);
464 result File::Read(Tizen::Base::String& buffer) {
465 typedef result (File::*methodType)(Tizen::Base::String & buffer);
466 static methodType Readp = 0;
468 probeInfo_t probeInfo;
471 bool bfiltering = true;
480 void *tmpPtr = dlsym(RTLD_NEXT,
481 "_ZN5Tizen2Io4File4ReadERNS_4Base6StringE");
483 if (tmpPtr == NULL || dlerror() != NULL) {
484 perror("dlsym failed : Tizen::Io::File::Read");
488 memcpy(&Readp, &tmpPtr, sizeof(tmpPtr));
492 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
493 setProbePoint(&probeInfo);
497 ret = (this->*Readp)(buffer);
499 if(postBlockBegin(blockresult)) {
503 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
504 LC_RESOURCE, probeInfo.eventIndex, "File::Read",
505 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
507 log.length += sprintf(log.data + log.length,"`,0x%x`,%ld",(unsigned int)&buffer,ret);
508 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
509 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
510 size = attr.GetFileSize();
511 WcharToChar(temp,this->GetName().GetPointer());
512 nRead = buffer.GetLength();
513 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,nRead,(unsigned int)this,FD_FILE,FD_API_READ,size,temp);
516 // if(E_SUCCESS != ret || blockresult == 2) {
517 // log.length += sprintf(log.data + log.length,
518 // "`,\ncallstack_start`,`,callstack_end");
520 log.length += sprintf(log.data + log.length,
521 "`,\ncallstack_start`,");
522 getBacktraceString(&log, 4096 - log.length - 17);
523 log.length += sprintf(log.data + log.length, "`,callstack_end");
526 printLog(&log, MSG_LOG);
533 result File::Read(Tizen::Base::ByteBuffer& buffer) {
534 typedef result (File::*methodType)(Tizen::Base::ByteBuffer & buffer);
535 static methodType Readp = 0;
537 probeInfo_t probeInfo;
540 bool bfiltering = true;
549 void *tmpPtr = dlsym(RTLD_NEXT,
550 "_ZN5Tizen2Io4File4ReadERNS_4Base10ByteBufferE");
552 if (tmpPtr == NULL || dlerror() != NULL) {
553 perror("dlsym failed : Tizen::Io::File::Read");
557 memcpy(&Readp, &tmpPtr, sizeof(tmpPtr));
561 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
562 setProbePoint(&probeInfo);
566 ret = (this->*Readp)(buffer);
568 if(postBlockBegin(blockresult)) {
572 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
573 LC_RESOURCE, probeInfo.eventIndex, "File::Read",
574 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
576 log.length += sprintf(log.data + log.length,"`,0x%x`,%ld",(unsigned int)&buffer,ret);
577 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
578 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
579 size = attr.GetFileSize();
580 WcharToChar(temp,this->GetName().GetPointer());
581 buffer.GetInt(nRead);
582 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,nRead,(unsigned int)this,FD_FILE,FD_API_READ,size,temp);
585 // if(E_SUCCESS != ret || blockresult == 2) {
586 // log.length += sprintf(log.data + log.length,
587 // "`,\ncallstack_start`,`,callstack_end");
589 log.length += sprintf(log.data + log.length,
590 "`,\ncallstack_start`,");
591 getBacktraceString(&log, 4096 - log.length - 17);
592 log.length += sprintf(log.data + log.length, "`,callstack_end");
595 printLog(&log, MSG_LOG);
602 int File::Read(void *buffer, int length) {
603 typedef int (File::*methodType)(void *buffer, int length);
604 static methodType Readp = 0;
606 probeInfo_t probeInfo;
609 bool bfiltering = true;
618 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File4ReadEPvi");
620 if (tmpPtr == NULL || dlerror() != NULL) {
621 perror("dlsym failed : Tizen::Io::File::Read");
625 memcpy(&Readp, &tmpPtr, sizeof(tmpPtr));
629 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
630 setProbePoint(&probeInfo);
635 ret = (this->*Readp)(buffer, length);
636 result res = GetLastResult();
638 if(postBlockBegin(blockresult)) {
642 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
643 LC_RESOURCE, probeInfo.eventIndex, "File::Read",
644 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
646 log.length += sprintf(log.data + log.length,"`,0x%x, %d`,%d",(unsigned int)buffer,length,ret);
647 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
648 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
649 size = attr.GetFileSize();
650 WcharToChar(temp,this->GetName().GetPointer());
651 nRead = Tell() - nRead;
652 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",res,blockresult,(unsigned int)CALLER_ADDRESS,nRead,(unsigned int)this,FD_FILE,FD_API_READ,size,temp);
655 // if(E_SUCCESS != ret || blockresult == 2) {
656 // log.length += sprintf(log.data + log.length,
657 // "`,\ncallstack_start`,`,callstack_end");
659 log.length += sprintf(log.data + log.length,
660 "`,\ncallstack_start`,");
661 getBacktraceString(&log, 4096 - log.length - 17);
662 log.length += sprintf(log.data + log.length, "`,callstack_end");
665 printLog(&log, MSG_LOG);
672 result File::Seek(FileSeekPosition position, long offset) {
673 typedef result (File::*methodType)(FileSeekPosition position, long offset);
674 static methodType Seekp = 0;
676 probeInfo_t probeInfo;
679 bool bfiltering = true;
687 void *tmpPtr = dlsym(RTLD_NEXT,
688 "_ZN5Tizen2Io4File4SeekENS0_16FileSeekPositionEl");
690 if (tmpPtr == NULL || dlerror() != NULL) {
691 perror("dlsym failed : Tizen::Io::File::Seek");
695 memcpy(&Seekp, &tmpPtr, sizeof(tmpPtr));
700 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
701 setProbePoint(&probeInfo);
705 ret = (this->*Seekp)(position, offset);
707 if(postBlockBegin(blockresult)) {
711 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
712 LC_RESOURCE, probeInfo.eventIndex, "File::Seek",
713 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
715 if(FILESEEKPOSITION_BEGIN == position)
716 log.length += sprintf(log.data + log.length,"`,FILESEEKPOSITION_BEGIN");
717 else if(FILESEEKPOSITION_CURRENT == position)
718 log.length += sprintf(log.data + log.length,"`,FILESEEKPOSITION_CURRENT");
719 else if(FILESEEKPOSITION_END == position)
720 log.length += sprintf(log.data + log.length,"`,FILESEEKPOSITION_END");
722 log.length += sprintf(log.data + log.length,"`,%d",position);
723 log.length += sprintf(log.data + log.length,", %ld`,%ld",offset,ret);
724 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
725 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
726 size = attr.GetFileSize();
727 WcharToChar(temp,this->GetName().GetPointer());
728 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OTHER,size,temp);
731 // if(E_SUCCESS != ret || blockresult == 2) {
732 // log.length += sprintf(log.data + log.length,
733 // "`,\ncallstack_start`,`,callstack_end");
735 log.length += sprintf(log.data + log.length,
736 "`,\ncallstack_start`,");
737 getBacktraceString(&log, 4096 - log.length - 17);
738 log.length += sprintf(log.data + log.length, "`,callstack_end");
741 printLog(&log, MSG_LOG);
748 int File::Tell(void) const {
749 typedef int (File::*methodType)(void) const;
750 static methodType Tellp = 0;
752 probeInfo_t probeInfo;
755 bool bfiltering = true;
763 void *tmpPtr = dlsym(RTLD_NEXT, "_ZNK5Tizen2Io4File4TellEv");
765 if (tmpPtr == NULL || dlerror() != NULL) {
766 perror("dlsym failed : Tizen::Io::File::Tell");
770 memcpy(&Tellp, &tmpPtr, sizeof(tmpPtr));
775 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
776 setProbePoint(&probeInfo);
780 ret = (this->*Tellp)();
781 result res = GetLastResult();
783 if(postBlockBegin(blockresult)) {
787 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
788 LC_RESOURCE, probeInfo.eventIndex, "File::Tell",
789 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
791 log.length += sprintf(log.data + log.length,"`,`,%d",ret);
792 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
793 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
794 size = attr.GetFileSize();
795 WcharToChar(temp,this->GetName().GetPointer());
796 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",res,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OTHER,size,temp);
799 // if(E_SUCCESS != ret || blockresult == 2) {
800 // log.length += sprintf(log.data + log.length,
801 // "`,\ncallstack_start`,`,callstack_end");
803 log.length += sprintf(log.data + log.length,
804 "`,\ncallstack_start`,");
805 getBacktraceString(&log, 4096 - log.length - 17);
806 log.length += sprintf(log.data + log.length, "`,callstack_end");
809 printLog(&log, MSG_LOG);
816 result File::Truncate(int length) {
817 typedef result (File::*methodType)(int length);
818 static methodType Truncatep = 0;
820 probeInfo_t probeInfo;
823 bool bfiltering = true;
831 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File8TruncateEi");
833 if (tmpPtr == NULL || dlerror() != NULL) {
834 perror("dlsym failed : Tizen::Io::File::Truncate");
838 memcpy(&Truncatep, &tmpPtr, sizeof(tmpPtr));
842 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
843 setProbePoint(&probeInfo);
847 ret = (this->*Truncatep)(length);
849 if(postBlockBegin(blockresult)) {
853 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
854 LC_RESOURCE, probeInfo.eventIndex, "File::Truncate",
855 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
857 log.length += sprintf(log.data + log.length,"`,%d`,%ld",length,ret);
858 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
859 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
860 size = attr.GetFileSize();
861 WcharToChar(temp,this->GetName().GetPointer());
862 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_OTHER,size,temp);
865 // if(E_SUCCESS != ret || blockresult == 2) {
866 // log.length += sprintf(log.data + log.length,
867 // "`,\ncallstack_start`,`,callstack_end");
869 log.length += sprintf(log.data + log.length,
870 "`,\ncallstack_start`,");
871 getBacktraceString(&log, 4096 - log.length - 17);
872 log.length += sprintf(log.data + log.length, "`,callstack_end");
875 printLog(&log, MSG_LOG);
882 result File::Write(const void *buffer, int length) {
883 typedef result (File::*methodType)(const void *buffer, int length);
884 static methodType Writep = 0;
886 probeInfo_t probeInfo;
889 bool bfiltering = true;
898 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File5WriteEPKvi");
900 if (tmpPtr == NULL || dlerror() != NULL) {
901 perror("dlsym failed : Tizen::Io::File::Write");
905 memcpy(&Writep, &tmpPtr, sizeof(tmpPtr));
909 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
910 setProbePoint(&probeInfo);
915 ret = (this->*Writep)(buffer, length);
917 if(postBlockBegin(blockresult)) {
921 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
922 LC_RESOURCE, probeInfo.eventIndex, "File::Write",
923 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
925 log.length += sprintf(log.data + log.length,"`,0x%x, %d`,%ld",(unsigned int)buffer,length,ret);
926 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
927 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
928 size = attr.GetFileSize();
929 WcharToChar(temp,this->GetName().GetPointer());
930 nWritten = Tell() - nWritten;
931 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,nWritten,(unsigned int)this,FD_FILE,FD_API_WRITE,size,temp);
934 // if(E_SUCCESS != ret || blockresult == 2) {
935 // log.length += sprintf(log.data + log.length,
936 // "`,\ncallstack_start`,`,callstack_end");
938 log.length += sprintf(log.data + log.length,
939 "`,\ncallstack_start`,");
940 getBacktraceString(&log, 4096 - log.length - 17);
941 log.length += sprintf(log.data + log.length, "`,callstack_end");
944 printLog(&log, MSG_LOG);
951 result File::Write(const Tizen::Base::ByteBuffer& buffer) {
952 typedef result (File::*methodType)(const Tizen::Base::ByteBuffer& buffer);
953 static methodType Writep = 0;
955 probeInfo_t probeInfo;
958 bool bfiltering = true;
967 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File5WriteERKNS_4Base10ByteBufferE");
969 if (tmpPtr == NULL || dlerror() != NULL) {
970 perror("dlsym failed : Tizen::Io::File::Write");
974 memcpy(&Writep, &tmpPtr, sizeof(tmpPtr));
978 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
979 setProbePoint(&probeInfo);
984 ret = (this->*Writep)(buffer);
986 if(postBlockBegin(blockresult)) {
990 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
991 LC_RESOURCE, probeInfo.eventIndex, "File::Write",
992 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
994 log.length += sprintf(log.data + log.length,"`,0x%x`,%ld",(unsigned int)&buffer,ret);
995 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
996 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
997 size = attr.GetFileSize();
998 WcharToChar(temp,this->GetName().GetPointer());
999 nWritten = Tell() - nWritten;
1000 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,nWritten,(unsigned int)this,FD_FILE,FD_API_WRITE,size,temp);
1003 // if(E_SUCCESS != ret || blockresult == 2) {
1004 // log.length += sprintf(log.data + log.length,
1005 // "`,\ncallstack_start`,`,callstack_end");
1007 log.length += sprintf(log.data + log.length,
1008 "`,\ncallstack_start`,");
1009 getBacktraceString(&log, 4096 - log.length - 17);
1010 log.length += sprintf(log.data + log.length, "`,callstack_end");
1013 printLog(&log, MSG_LOG);
1020 result File::Write(const Tizen::Base::String& buffer) {
1021 typedef result (File::*methodType)(const Tizen::Base::String& buffer);
1022 static methodType Writep = 0;
1024 probeInfo_t probeInfo;
1027 bool bfiltering = true;
1030 FileAttributes attr;
1031 long long size = 0L;
1036 void *tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4File5WriteERKNS_4Base6StringE");
1038 if (tmpPtr == NULL || dlerror() != NULL) {
1039 perror("dlsym failed : Tizen::Io::File::Write");
1043 memcpy(&Writep, &tmpPtr, sizeof(tmpPtr));
1047 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
1048 setProbePoint(&probeInfo);
1053 ret = (this->*Writep)(buffer);
1055 if(postBlockBegin(blockresult)) {
1059 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
1060 LC_RESOURCE, probeInfo.eventIndex, "File::Write",
1061 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
1063 WcharToChar(temp,buffer.GetPointer());
1064 log.length += sprintf(log.data + log.length,"`,%s`,%ld",temp,ret);
1065 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
1066 if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
1067 size = attr.GetFileSize();
1068 WcharToChar(temp,this->GetName().GetPointer());
1069 nWritten = Tell() - nWritten;
1070 log.length += sprintf(log.data + log.length,"`,0`,%lu`,%d`,%u`,%d`,0x%x`,%d`,%d`,%lld`,%s",ret,blockresult,(unsigned int)CALLER_ADDRESS,nWritten,(unsigned int)this,FD_FILE,FD_API_WRITE,size,temp);
1073 // if(E_SUCCESS != ret || blockresult == 2) {
1074 // log.length += sprintf(log.data + log.length,
1075 // "`,\ncallstack_start`,`,callstack_end");
1077 log.length += sprintf(log.data + log.length,
1078 "`,\ncallstack_start`,");
1079 getBacktraceString(&log, 4096 - log.length - 17);
1080 log.length += sprintf(log.data + log.length, "`,callstack_end");
1083 printLog(&log, MSG_LOG);
1090 typedef void (File::*methodType)();
1091 static methodType FileDp = 0;
1092 probeInfo_t probeInfo;
1095 bool bfiltering = true;
1097 // FileAttributes attr;
1098 long long size = 0L;
1103 tmpPtr = dlsym(RTLD_NEXT, "_ZN5Tizen2Io4FileD1Ev");
1105 if (tmpPtr == NULL || dlerror() != NULL) {
1106 perror("dlsym failed : Tizen::Io::File::~File");
1110 memcpy(&FileDp, &tmpPtr, sizeof(tmpPtr));
1114 if((blockresult = preBlockBegin(CALLER_ADDRESS, bfiltering, _sopt)) != 0) {
1115 setProbePoint(&probeInfo);
1116 // error occur if File class was failed to contruct
1117 // if(E_SUCCESS == File::GetAttributes(this->GetName(),attr))
1118 // size = attr.GetFileSize();
1124 if(postBlockBegin(blockresult)) {
1128 log.length = sprintf(log.data, "%d`,%d`,%s`,%lu`,%d`,%d",
1129 LC_RESOURCE, probeInfo.eventIndex, "File::~File",
1130 probeInfo.currentTime, probeInfo.pID, probeInfo.tID);
1132 log.length += sprintf(log.data + log.length,"`,`,");
1133 //PCAddr,errno,InternalCall,size,FD,FDType,FDApiType,FileSize,FilePath
1134 log.length += sprintf(log.data + log.length,"`,0`,0`,%d`,%u`,0`,0x%x`,%d`,%d`,%lld`,",blockresult,(unsigned int)CALLER_ADDRESS,(unsigned int)this,FD_FILE,FD_API_CLOSE,size);
1137 // if(E_SUCCESS != ret || blockresult == 2) {
1138 // log.length += sprintf(log.data + log.length,
1139 // "`,\ncallstack_start`,`,callstack_end");
1141 log.length += sprintf(log.data + log.length,
1142 "`,\ncallstack_start`,");
1143 getBacktraceString(&log, 4096 - log.length - 17);
1144 log.length += sprintf(log.data + log.length, "`,callstack_end");
1147 printLog(&log, MSG_LOG);
1154 //static result File::ConvertToSecureFile(const Tizen::Base::String &plainFilePath,
1155 // const Tizen::Base::String &secureFilePath) {
1156 // typedef result (File::*methodType)(
1157 // const Tizen::Base::String &plainFilePath,
1158 // const Tizen::Base::String &secureFilePath);
1159 // static methodType ConvertToSecureFilep = 0;
1162 //static result File::ConvertToSecureFile(const Tizen::Base::String &plainFilePath,
1163 // const Tizen::Base::String &secureFilePath,
1164 // const Tizen::Base::ByteBuffer& key) {
1165 // typedef result (File::*methodType)(
1166 // const Tizen::Base::String &plainFilePath,
1167 // const Tizen::Base::String &secureFilePath,
1168 // const Tizen::Base::ByteBuffer& key);
1169 // static methodType ConvertToSecureFilep = 0;
1172 //static result File::Copy(const Tizen::Base::String& srcFilePath,
1173 // const Tizen::Base::String& destFilePath, bool failIfExist) {
1174 // typedef result (File::*methodType)(const Tizen::Base::String& srcFilePath,
1175 // const Tizen::Base::String& destFilePath, bool failIfExist);
1176 // static methodType Copyp = 0;
1179 //static result File::GetAttributes(const Tizen::Base::String& filePath,
1180 // FileAttributes& attribute) {
1181 // typedef result (File::*methodType)(const Tizen::Base::String& filePath,
1182 // FileAttributes& attribute);
1183 // static methodType GetAttributesp = 0;
1186 //static const Tizen::Base::String File::GetFileExtension(
1187 // const Tizen::Base::String& filePath) {
1188 // typedef const Tizen::Base::String (File::*methodType)(
1189 // const Tizen::Base::String& filePath);
1190 // static methodType GetFileExtensionp = 0;
1193 //const Tizen::Base::String File::GetFileName(
1194 // const Tizen::Base::String& filePath) {
1195 // typedef const Tizen::Base::String (File::*methodType)(
1196 // const Tizen::Base::String& filePath);
1197 // static methodType GetFileNamep = 0;
1198 // Tizen::Base::String ret;
1200 // if (!GetFileNamep) {
1201 // probeBlockStart();
1202 // void *tmpPtr = dlsym(RTLD_NEXT,
1203 // "_ZN5Tizen2Io4File11GetFileNameERKNS_4Base6StringE");
1205 // if (tmpPtr == NULL || dlerror() != NULL) {
1206 // perror("dlsym failed : Tizen::Io::File::GetFileName");
1210 // memcpy(&GetFileNamep, &tmpPtr, sizeof(tmpPtr));
1213 // ret = (File::(*GetFileNamep))(filePath);
1217 //static bool File::IsEncrypted(const Tizen::Base::String &filePath) {
1218 // typedef bool (File::*methodType)(const Tizen::Base::String &filePath);
1219 // static methodType IsEncryptedp = 0;
1222 //static bool File::IsFileExist(const Tizen::Base::String& filePath) {
1223 // typedef bool (File::*methodType)(const Tizen::Base::String& filePath);
1224 // static methodType IsFileExistp = 0;
1227 //static result File::Move(const Tizen::Base::String& oldFilePath,
1228 // const Tizen::Base::String& newFilePath) {
1229 // typedef result (File::*methodType)(const Tizen::Base::String& oldFilePath,
1230 // const Tizen::Base::String& newFilePath);
1231 // static methodType Movep = 0;
1234 //static result File::Remove(const Tizen::Base::String& filePath) {
1235 // typedef result (File::*methodType)(const Tizen::Base::String& filePath);
1236 // static methodType Removep = 0;