OSDN Git Service

Add toppers-jsp/ in nxtOSEK_v205b0.zip. They are licensed under TOPPERS license.
[nxt-jsp/etrobo-atk.git] / nxtOSEK / toppers_jsp / windev / watcher / kernellogcontrol.cpp
1 /*
2  *  TOPPERS/JSP Kernel
3  *      Toyohashi Open Platform for Embedded Real-Time Systems/
4  *      Just Standard Profile Kernel
5  * 
6  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7  *                              Toyohashi Univ. of Technology, JAPAN
8  * 
9  *  ¾åµ­Ãøºî¸¢¼Ô¤Ï¡¤°Ê²¼¤Î (1)¡Á(4) ¤Î¾ò·ï¤«¡¤Free Software Foundation 
10  *  ¤Ë¤è¤Ã¤Æ¸øɽ¤µ¤ì¤Æ¤¤¤ë GNU General Public License ¤Î Version 2 ¤Ëµ­
11  *  ½Ò¤µ¤ì¤Æ¤¤¤ë¾ò·ï¤òËþ¤¿¤¹¾ì¹ç¤Ë¸Â¤ê¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¡ÊËÜ¥½¥Õ¥È¥¦¥§¥¢
12  *  ¤ò²þÊѤ·¤¿¤â¤Î¤ò´Þ¤à¡¥°Ê²¼Æ±¤¸¡Ë¤ò»ÈÍÑ¡¦Ê£À½¡¦²þÊÑ¡¦ºÆÇÛÉۡʰʲ¼¡¤
13  *  ÍøÍѤȸƤ֡ˤ¹¤ë¤³¤È¤ò̵½þ¤ÇµöÂú¤¹¤ë¡¥
14  *  (1) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¥½¡¼¥¹¥³¡¼¥É¤Î·Á¤ÇÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¤¾åµ­¤ÎÃøºî
15  *      ¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­¤Î̵Êݾڵ¬Ä꤬¡¤¤½¤Î¤Þ¤Þ¤Î·Á¤Ç¥½¡¼
16  *      ¥¹¥³¡¼¥ÉÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¡¥
17  *  (2) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤¥é¥¤¥Ö¥é¥ê·Á¼°¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
18  *      ÍѤǤ­¤ë·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
19  *      ¼Ô¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ­¤ÎÃøºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­
20  *      ¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
21  *  (3) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤µ¡´ï¤ËÁȤ߹þ¤à¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
22  *      ÍѤǤ­¤Ê¤¤·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¤¤¤º¤ì¤«¤Î¾ò·ï¤òËþ¤¿¤¹¤³
23  *      ¤È¡¥
24  *    (a) ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥­¥å¥á¥ó¥È¡ÊÍøÍѼԥޥ˥奢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ­¤ÎÃø
25  *        ºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
26  *    (b) ºÆÇÛÉۤηÁÂÖ¤ò¡¤Ê̤ËÄê¤á¤ëÊýË¡¤Ë¤è¤Ã¤Æ¡¤TOPPERS¥×¥í¥¸¥§¥¯¥È¤Ë
27  *        Êó¹ð¤¹¤ë¤³¤È¡¥
28  *  (4) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤ë¤¤¤«¤Ê¤ë»
29  *      ³²¤«¤é¤â¡¤¾åµ­Ãøºî¸¢¼Ô¤ª¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤òÌÈÀÕ¤¹¤ë¤³¤È¡¥
30  * 
31  *  ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¤ÌµÊݾڤÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡¥¾åµ­Ãøºî¸¢¼Ô¤ª
32  *  ¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤Ï¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ë´Ø¤·¤Æ¡¤¤½¤ÎŬÍѲÄǽÀ­¤â
33  *  ´Þ¤á¤Æ¡¤¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤ï¤Ê¤¤¡¥¤Þ¤¿¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľ
34  *  ÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤¿¤¤¤«¤Ê¤ë»³²¤Ë´Ø¤·¤Æ¤â¡¤¤½¤ÎÀÕǤ¤òÉé¤ï¤Ê¤¤¡¥
35  * 
36  *  @(#) $Id: kernellogcontrol.cpp,v 1.2 2003/06/30 15:58:39 takayuki Exp $
37  */
38
39 // KernelLogControl.cpp : CKernelLogControl ¤Î¥¤¥ó¥×¥ê¥á¥ó¥Æ¡¼¥·¥ç¥ó
40
41 #include "stdafx.h"
42 #include "Watcher.h"
43 #include "KernelLogControl.h"
44
45 /////////////////////////////////////////////////////////////////////////////
46 // CKernelLogControl
47
48
49 STDMETHODIMP CKernelLogControl::Open()
50 {
51         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
52         if(!FAILED(manager.CoCreateInstance(CLSID_KernelLog)) && !FAILED(manager.Advise((_IKernelLogEvents *)this,__uuidof(_IKernelLogEvents),&cookie)))
53                 return S_OK;
54         if(!!manager)
55                 manager.Release();
56         return E_FAIL;
57 }
58
59 STDMETHODIMP CKernelLogControl::Close()
60 {
61         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
62         if(!manager)
63                 return E_FAIL;
64
65         AtlUnadvise(manager, __uuidof(_IKernelLogEvents),cookie);
66         manager.Release();
67         cookie = 0;
68         return S_OK;
69 }
70
71 STDMETHODIMP CKernelLogControl::get_Type(long *pVal)
72 {
73         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
74         if(log != NULL)
75         {
76                 *pVal = (long)log->header.logtype;
77         }else
78                 *pVal = 0;
79
80         return S_OK;
81 }
82
83 STDMETHODIMP CKernelLogControl::get_Logtim(long *pVal)
84 {
85         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
86         if(log != NULL)
87         {
88                 *pVal = (long)log->header.logtim;
89         }else
90                 *pVal = 0;
91         return S_OK;
92 }
93
94 STDMETHODIMP CKernelLogControl::get_isValid(BOOL *pVal)
95 {
96         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
97         if(log != NULL)
98                 *pVal = TRUE;
99         else
100                 *pVal = FALSE;
101         return S_OK;
102 }
103
104 STDMETHODIMP CKernelLogControl::get_Param(long index, long *pVal)
105 {
106         // TODO: ¤³¤Î°ÌÃ֤˥¤¥ó¥×¥ê¥á¥ó¥ÈÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¯¤À¤µ¤¤
107         *pVal = *((long *)&log->body + index);
108
109         return S_OK;
110 }